before agile methods - Center for Systems Integration

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

8. Collective code ownersh

3. Small releases

9. Continuous integration

4. Continuous testing

10. Coding standards

5. System metaphor

11. 40-hour week

6. Simple design

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
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, crossfunctional 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?