16
Chris Scofield Agile Development

Agile Development

Embed Size (px)

Citation preview

Chris Scofield

Agile Development

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

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