Agile Development
In 2001, a group called the Agile Alliance signed a manifesto that stated:
Individuals and Interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation.
Responding to change over following a plan
Agile Development
Agile Development was a revolution that attacked the old guard.
Agile Development was developed to overcome real and perceived weaknesses in conventional SE.
It is not applicable to all projects, products, people and situations.
But it can be applied as an overriding philosophy for all software
Agile Development
It is often difficult or impossible to predict how a system will evolve.
Market conditions, end-user needs, new competitive threats, new technology all evolve without warning.
SE must be agile enough to respond to a fluid environment.
But it does not mean that we discard SE principles, concepts, methods, and tools.
The old SE must adapt to the challenges that demand agility.
Agile Development: What is it?
Combines a philosophy and a set of development guidelines
Encourages customer satisfaction
Early incremental delivery of SW
Small, highly-motivated teams
Informal methods and development simplicity
Stress delivery of analysis and design
Active and continuous communication with customers
Agile Development: Who does it?
Software engineers and project stakeholders work together.
An agile team that is self-organizing and in control of it’ s destiny
Team fosters communication and collaboration among all members
Agile Development: Why important?
Current environment is fast-paced and changing.
Offers an alternative to conventional software engineering for many (most?) projects.
It has demonstrated it can deliver successful systems quickly.

Agile Development: What are Steps?
Agile Dev. Could be called software engineering lite?
Keeps basic steps: communication, planning, modeling, construction, delivery and evaluation.
But basic steps morph into a minimal task set that pushes the project team toward construction and delivery.
Agile Development: What is work product?
There is only one really important work product is an operational software increment delivered to customer on commitment date.
Agile Development: How to ensure it is done right?
If the team agrees that the process works.
If the team produces deliverable software increments on time.
If the SW satisfies the customers
Then it is done right!
Agile Development: pros and cons
SW is done by people. People are different and show great variation in working styles.
People are different in
skill levels

Agile Development: pros and cons
May not impose the discipline in communication, planning, modeling, construction, delivery and evaluation that is needed.
It is not license to hack out solutions.
Agility is dynamic, content specific, aggressively change embracing, and growth oriented.
12 Principles of Agile Development
Highest priority is to satisfy customer
Welcome changing requirements, even late changes.
Deliver working SW frequently
Stakeholders and SW team must work together continuously.
Build around motivated individuals. Give them support and resources then trust them to get it done.
Most efficient info exchange: face-to-face
12 Principles of Agile Development
7. Working SW is primary measure of progress
8. The process promotes sustainable development.
9. Continuous attention to technical excellence and good design.
10. Simplicity -the art of maximizing the amount of work NOT done.
11. Best results emerge from self-organizing teams.
12. Teams regularly review their team to become more effective.
Politics of Agile Development
There is considerable debate about benefits of Agile Development and more traditional software engineering. The two sides say:
Traditional SE Methodologists are anal retentive and would rather have flawless documentation than a good system.
Agile Developers are glorified hackers who will have big problems when they try to scale up their toys into enterprise strength SW.

Agile Development: Human Factors
The SW process molds to the needs of the people and team
Competence -Innate talent, SW skills, knowledge of process used to develop SW
Common focus -all members of a team must have a common understanding of the goal(s).
Collaboration -with members of the team, with customers and with management.
Decision-making ability -team can control it’ s destiny and has the autonomy for technical and project issues
Agile Development: Human Factors
Fuzzy and ambiguous problem solving -Have to deal with vague estimates, guesses, uncertainty, etc.
Mutual trust and respect -team members must have this so the whole is greater than the sum of the parts.
Self-Organizing -1) organizes the team, 2) team organizes the processes to be used, and 3) team organizes the work schedule.

Categories: News