agile development
TRANSCRIPT
By standardizing a methodology, processes, and documentation, the development process can be streamlined; thus creating a more efficient, transparent and traceable development process that creates self-organized teams and promotes innovation.
Approach
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
•• That is, while there is value in
the items on the right, we value the items on the left more.
Agile Manifesto
What is Agile Methodology? A software development process based on
iterative and incremental development called sprints, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
Greater emphasis on Test Automation Agile promotes automated testing, such as Unit
Tests, which create a leaner development process.
Testing/Development are accomplished in Parallel, saving time and effort
Provides safety net so to speak Stable Test Scripts- even if the GUI changes,
scripts remain the same
Agile
What is a Scrum? Scrum is an iterative, incremental approach to
managing software projects and development. It focuses on project management where it is difficult to plan ahead, in the case of Rho, Inc.
What is Lean Production? Simply, “Preserving value with less work”. A
practice that considers expenditure of resources for any goal other than the creation of value for the end user to be wasteful, and thus a target for elimination from the development process.
Agile
Putting Scrum into practice: Implementing Scrum would focus on each
project having a lead, or “Scrum Master”. Scrum meetings would occur as decided upon by
the development team (the standard is typically daily)
Short, 15-20 minute status update and goal meeting
Putting Lean into practice: Decisions are made as late as possible (allows
for adaptation to changing user requirements) Offers Developers direct link to end users Test Driven Development oriented
Agile
What is Kanban? In our case at Rho, Kanban is a visual process
management system that tells what to produce, when, and the life cycle of that development.
Characterized by a Kanban Board, or visual representation of “swim lanes”, wherein each object of a project moves independently through the development process until completed.
Kanban Board in practice: The Kanban Board can be implemented in any
Methodology to great success, by breaking each component out, creating transparency, and identifying bottlenecks
Kanban
Adopting a validated software tool provides: Easy project management Requirements and functional testing
documentation Manage risk based on functional specification Trace Requirements to Testing Change control including bug tracking Easy project reporting Transparency
Standard documentation templates Validation/Project Plans Validation Reports
Process documentation to use across agile software development projects
Agile Tool Set
Confirmation by examination and provision of objective evidence that software specifications conform to user needs and intended uses, and that the particular requirements implemented through software can be consistently fulfilled.
Highly dependent upon comprehensive software testing, inspections, analyses, and other verification tasks performed at EACH stage of the software development life cycle.
Includes evidence that all software requirements have been implemented correctly and completely and are traceable to system requirements.
Validation
Agile development has been slowly adopted in a regulated environment because of a fear that documented evidence will not be easy to produce
Our research shows the following: Evidence of validation is easy with agile tools Recording functional testing results in the agile
software tool allows for fewer and less intensive user acceptance testing
Maintaining development documentation during the project creates more comprehensive documentation
Change control and issue tracking is easier
Agile & Validation
Agile tools allow for easy documentation of functional testing.
Functional testing is the most comprehensive testing. It includes range checks and negative testing.
The test cases are smaller in length than UAT. The software engineer testers are faster at
testing specifications than actual users. When comprehensive functional testing is
documented, the UAT are shorter.
Document Functional Testing
Requirement: EDC text fields allow numbers, letters, and special characters. The field may be configured for up to 1024 characters.
Documented Functional Testing vs UAT
Traditional UAT Agile UAT1. Enter less than 1024 characters of numeric
text into the Text field and select submit.2. Enter 1024 characters of numeric text into
the field and select submit.3. Enter 1025 characters of numeric text into
the field and select submit4. Enter less than 1024 alpha characters of
text into the Text Field and select submit.5. Enter 1024 characters of alpha text into the
text field and select submit.6. Enter 1025 characters of alpha text into the
text field and select submit.7. Enter less than 1024 characters of
alphanumeric text including special characters and select submit.
8. Enter 1024 characters of alphanumeric text including special characters and select submit.
9. Enter 1025 alphanumeric characters including special characters into the text field.
1.Enter 1024 alphanumeric characters including special characters into the text field and select submit.
2.Enter 1025 alphanumeric characters including special characters into the text field and select submit.
Controlled software development process Agile software tool produces validation
evidence and reporting data Validating the agile software tool reduces
need for review and approval cycles Save time and money by reducing the amount
of user acceptance testing User acceptance testing not as taxing on
users and does not eat up operational time
Benefits
Key points of Agile Methodology: constant communication with our customers,
users, and stakeholders code quality, unit tests, and disciplined
development constant improvement and working to get
better delivering value for our customers and
business delivering working software that meets our
customer's needs and not just their wants
Agile Recap
http://www.zdnet.com/10-rules-for-keeping-agile-development-well-agile-7000004076/
LinkedIn has several extremely beneficial groups, that even helped me answer these questions, including: Agile Agile and Lean Software Development
Additional Reading