Chris Scofield
And Kevyn Matijevich
Agile Development
The clunky, inefficient and opaque systems we have in place for software development are antiquated and slow the process down. With no standardization of processes, there is a general inconsistency between each application developed.
Problem
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
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 AutomationAgile 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 speakStable Test Scripts- even if the GUI changes,
scripts remain the same
Agile
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 usersTest 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 managementRequirements and functional testing documentationManage risk based on functional specificationTrace Requirements to TestingChange control including bug trackingEasy project reportingTransparency
Standard documentation templatesValidation/Project PlansValidation Reports
Process documentation to use across agile software development projectsMaster Agile Validation Plan (I:\SHARE\USERS\
kmatijev\FedEx Days\Validation Documentation)
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 toolsRecording 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 processAgile software tool produces validation
evidence and reporting dataValidating the agile software tool reduces
need for review and approval cyclesSave time and money by reducing the amount
of user acceptance testingUser acceptance testing not as taxing on
users and does not eat up operational time
Benefits
Defect Tracking/Project Management Tool:We specifically looked at Jira for this study.Below are screenshots of various aspects
within Jira, such as the Dashboard, reports, and the stock Kanban Board.
Specific Tools
Would Agile Development benefit Rho, Inc.? Yes, this project was successful in determining that agile development
will streamline our development process greatly. What did you learn during this process?
The benefits of moving to an agile development process outweigh the regulated environment fears.
Agile adoption saves time and money. How can you apply the work done during the FedEx day to future
projects? Documentation templates can be used for any validation project.
How can you or others build off your FedEx Day experience? • Each Developer/Project Lead can implement this, total buy in is necessary
for success. It must be an entire software team effort. If other people want to find out more about your project, how can
they contact you? [email protected] [email protected]
Conclusion
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
Key points of Agile Methodology (i.e. what it can provide Rho): constant communication with our customers,
users, and stakeholders code quality, unit tests, and disciplined
developmentconstant 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
How Does Agile Relate to Rho?
We operate in teams as small as 3 per project. These team members operate on 3+ projects
most often times simultaneouslyAttention to any one specific project is limited
at bestNobody likes needless meetings
But we have a less than Optimal Environment here at Rho…
For starters, we are currently implementing Agile on the WebApp Project (RhoPortal)
By implementing principles, not necessarily existing methods
CustomizationThe minimum member participation as set by
Agile leaders is 2, so we have met that requirement
Our best example of Agile development is RhoRandRhoRand is a highly adaptable and well made
AppWas developed using XP (Extreme Programing)
methods
So how can Agile work here?
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:AgileAgile and Lean Software Development
Additional Reading
Top Related