Announcement!

Only Lecture 7,8 and the first 15 slides of lecture 9 are included in Hourly 3.
Please find them at Downloads link.

Tuesday, September 29, 2009

An Agile Process

1 comments
LECTURE 2

History – the Agile Manifesto

2001 – Kent Beck and 16 other noted software developers, writers and consultants (referred to as “Agile Alliance”) signed the “Manifesto for Agile Software Development.”


Agile methods –developed to overcome perceived and actual weaknesses in conventional software engineering.

It can provide important benefits, but is not applicable to all projects, product, people, and situations.

 
Manifesto Defined
 
MANIFESTO. A solemn declaration, by the constituted authorities of a nation, which contains the reasons for its public acts towards another.


-Dictionary.net
 
  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

What is Agility?
 
Agility has become today’s buzzword when describing a modern software process. An agile team is a team able to appropriately respond to changes.

Changes:
  • Software being built
  • Team members
  • New technology
All kinds that have an impact on the product built, or project that creates the product.

 
What is an Agile Software Process?

Characterized by 3 Key Assumptions about the majority of software projects:

It is difficult to predict in advance which software requirements will persist and which will change. It is equally difficult to predict how customer priorities will change as project proceeds.

For many types of software, design and construction are interleaved. That is, both activities should be performed in tandem so that design models are proven as they are created. It is difficult to predict how much design is necessary before construction is used to prove the design.

Analysis, design, construction and testing are not as predictable (from a planning point of view) as we might like.

How do we create a process that can manage unpredictability?

Process adaptability (to rapidly changing project and technical conditions)

An Agile process must be adaptable.

 It must adapt incrementally.

  • Requires feedback – incremental development strategy should be instituted
  • Software increments must be delivered in short time periods for adaptation to keep pace with change.
  • This iterative approach enables the customer to
                          evaluate the software increment regularly, provide necessary feedback to the software team and influence the process adaptations that are made to accommodate the feedback.


Human Factors Needed in Agile Process

  • Competence
  • Common Focus
  • Collaboration
  • Decision-making ability
  • Fuzzy problem-solving ability
  • Mutual trust and respect
  • Self-organization

Competence


Innate talent, specific software related skills & overall knowledge of the process that the team has chosen to apply.

Skills and knowledge of the process can and should be taught to all member of the team


Common Focus

Members of the team should be focused on one goal even if they are performing different tasks and bringing different skills to the project.

Goal: To deliver a working software increment to the customer within the time promised


Collaboration
 
Team members must collaborate with one another, with the customer and with business managers


Decision-making Ability

The team is given autonomy –decision-making authority for both technical and project issues.


Fuzzy Problem-Solving Ability

Agile team will continually have to deal with ambiguity and change

They have to accept that the problem they are solving today may not be the problem that needs to be solved tomorrow.


Mutual Trust and Respect
 
Should exhibit trust and respect that are necessary to make them “so strongly knit that the whole is greater than the sum of the parts” - DeMarco
 

Self-Organization
 
Implies three things:  
  1. Organizes itself for the work to be done.
  2. Organizes the process to best accommodate it local environment
  3. Organizes the work schedule to best achieve delivery of the software increment.


1 comments:

Unknown says:
August 30, 2010 at 2:43 AM

Thank you for the info. It sounds pretty user friendly. I guess I’ll pick one up for fun. thank u
Agile Process

Post a Comment