BEFORE AGILE METHODS

Download Report

Transcript BEFORE AGILE METHODS

BEFORE AGILE METHODS

Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually done Pros: Great documentation and works well with other engineering fields Cons: Increases man hour costs which are the most expensive part of software development

BETTER METHODOLOGY NEEDED

 1. Lots of dead time when creating specifications.

 2. Not reuse oriented.

 3. Software may be obsolete or have no market by the time its released.

 4. 80% of software projects failed

LOOK TO TOYOTA

 Toyota Production System 3 Principles:  1. Build only what is needed.

 2. Eliminate anything that doesn't add value.

 3. Stop if something goes wrong.

LEAN THINKING

 5 principles derived from Toyota's model, book published 1996:  1. Specify value.

 2. Identify the value stream.

 3. Create the conditions for value to flow smoothly through the stream.

 4. Have the customer pull value from the stream.

 5. Pursue perfection.

SCRUM

 1. First agile method where work is done iteratively in sprints.

 2. Sprints are typically 2 to 4 weeks.

 3. Customer can change requirements during project.

AGILE MANIFESTO 2001

 We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:  1. Individuals and interactions over processes and tools.

 2. Working software over comprehensive documentation.

 3. Customer collaboration over contract negotiation.

 4. Responding to change over following a plan.

 5. That is, while there is value in the items on the right, we value the items on the left more.

Fundamentals of Extreme Programming

 1. Pair programming  7. Re-factoring  2. Planning game  3. Small releases  4. Continuous testing  10. Coding standards  5. System metaphor   9. Continuous integration 11. 40-hour week  6. Simple design   8. Collective code ownership 11. On-site customer

Extreme Programming

 1. Requirements are described as scenarios that read like a story. Diagrams may be used to make it easier to understand.

 2. Story boarding- Interactions are drawn using UML.

 3. Class diagrams are made from the UML.

 4. Behavior between classes needs described in pseudocode.

 5. Code everything.

 6. Testing.

RELEVANCE OF NEW PRINCIPLES

The web as a platform

 UGCThe value of web software is dependent on user-generated content.

 Self-sustainabilityAs a user network is built, more services are added to the software, creating a direct correlation between traffic and quality.

"Harnessing collective intelligence"

 Let a playa playThe role of the host is to create an environment optimized for user input and exchange.

 GPL Collective intelligence is a byproduct of a growing developer community.

 Viral marketing Meeting the needs of users creates a self-perpuating growth rate.

 Crowdsourcing Funding has gone viral.

The end of software cycles

 Sorftware as a service:  The role of the host is to create an environment optimized for user input and exchange.

RELEVANCE OF NEW PRINCIPLES

 Technical issues are not often the major contribution to the failure of the system development project. It is people issues that mainly cause the project failure.

 1. People being inflexible and insisting on creating a detailed, up front to do architecture.

 2. People not realize that you need to invest a bit of time up front to do architecture envisioning.

 3. People not understanding the need to prove the architecture early in the project with working code.

PEOPLE’S PERSPECTIVES ON AGILE METHODOLOGIES

 Lightweight programming models  Simplicity breeds adoptionSoftware development techniques that are more loose and less corporate are more likely to spread.

 Innovation in assemblyReusable and highly accessible tools will challenge the proprietary standards.

 Cross-functional teamsNo more compartmentalizing your developers. Teams and projects, like ideas, should flow freely.

Agile in the Industry

PROS & CONS  What are some of the disadvantages of Agile?

 1. Active user involvement and close collaboration are required throughout the development cycle.

 2. Requirements are revealed and evolve over time.

 3. Agile requirements are intentionally minimal.

 4. Testing is integrated throughout the lifecycle.

 5. Feature sign off’s are required.

 6. Agile development can be intense for developers.

IS AGILE FOR US?

 Vital questions:  1. Do companies have to just choose either Waterfall or Agile or are there hybrid options?

 2. What questions should be asked? How can a company decide whether to implement Agile methodologies?

Is the project suitable for Agile?

 1. Does the project have a lot of ambiguity and uncertainty?

 2. Does the product already exist or is this project starting from scratch?

 3. How critical are the operations of the final product?

Is the team suitable for Agile?

 1. Does the Product Owner have the right level of authority and influence?

 2. Is there a dedicated, persistent, cross functional team?

 3. Is the team co-located?

 4. Do you have an Uber Product Owner and Uber ScrumMaster?

 5. Is there a controlled build environment?