Agile Contract Types

What are Agile Contract Types?

When it comes to agile methodology, both the vendor and the customer have to come for an agreed agile contract type prior to the execution of the project. Since agile is defined to be embracing changes, it’s difficult to establish a contract. Both parties are supposed to cooperate with each other in order to deliver value adding features throughout the entire project life-cycle. (The relationship between the customer and the vendor in agile methodology has been defined and stated under ‘Agile Manifesto Principles‘ and ‘Agile Manifesto Values‘) There are few agile contract types defined to be used based on few factors such as the relationship strength between the customer and vendor, etc…

Even though embracing changes has made it difficult for both parties to sign an agreement, there are few contract types that still both parties can agree upon prior to the project execution.

Fixed price, Fixed scope (Fixed time is also preferred)

Under this contract, an agreed budget with a fixed scope is provided (Just like in waterfall). By using agile techniques, project efficiency can be enhanced in order to gain maximum benefits out of the agreed price. This contract is good to use when requirements are stable and the relationship between the customer and the vendor is not stable (Not trusting each other).

Fixed price, Fixed scope (Fixed time is also preferred, but scope can be altered by collaborating with the customer)

The project team works closely with the customer from the beginning to identify the project requirements and priorities. Once the project is started, the project management team has to work on a prioritized list and at the end of a delivery, both parties can discuss whether to change the project direction based on the user needs.

Time and Material

According to this contract, customer has to pay for the work being done. This method / type works better when requirements are not stable / volatile. This is the simplest contract to be signed off if both parties trust each other.

Not To Exceed with Fixed Fee (NTE/FF)

Here, the vendor team is promised with a guaranteed profit margin. Both parties protect each other with the speed of project work being executed (Faster or Slower) and work on unexpected events to drive the project towards success.

Fixed price per function / story point

Initially both parties must agree on the unit of delivery (story points / functions / function points). A fixed price per unit is agreed and a certified functional point auditor is selected and advised to observe the number of units delivered at the end of the project. The customer has the freedom to change the requirement throughout the project and the vendor is encouraged to work efficiently.

 

 

 

Continue Reading

Product Backlog

Product Backlog

Product Backlog is a list of requirements needed to complete a particular project. Under agile terms, this list will be prioritized based on few factors such as business value, risk, etc… by the Product Owner / Client. Once its prioritized, the project can be built based on the priority and the list will be completed sprint-wise. You can download the Product Backlog template using the following URL.

Product Backlog

 

Product Backlog
Product Backlog
Continue Reading

Agile Manifesto Principles

Agile Manifesto Principles

Apart from the values stated under Agile manifesto, there are 12 principles identified to be explained under the same agile manifesto concept. Those 12 Agile Manifesto Principles are as follows;

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

This principle explains that the project team’s primary focus should be to satisfy the customer as early as possible by producing a valuable product using continuous delivery. (Not documents or project plans)

Welcome changing requirements even late in development. Agile processes harness change for the customer’s competitive advantage

It’s understood that the customer’s market is dynamic, hence requirements change is always dynamic based on the competition. There cannot be any integrated change control system to be followed under agile methodologies.

Deliver working software frequently from a couple of weeks to a couple of months, with a preference to other shorter timescale

It’s recommended to receive an early feedback without continuously working on the project and ultimately producing a wrong product. The project team has to make changes where necessary.

Business people and developers must work together daily throughout the project

Both the customer and the team must share the same vision and goal. Both parties need to have face to face conversations more frequently. The product owner must work closely with the project team and advise them accordingly. Both parties can negotiate on requirements and produce frequent demos of the product.

Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done

It’s always advised not to tell the team how to build the product, but what to build. The team should be empowered, recognized and delegated. The team has to facilitate team work and collaboration. “Knowledge worker” cannot be micro managed.

The most efficient and effective method of conveying information to and within a development team is face-to-face conversation

The ‘face-to-face’ method has been identified as the best communication method so far. Written documents are slow and maybe producing wrong info: / details on the project.

Working software is the primary focus of progress

The team should add value to the customer. Therefore, it can be achieved only by producing a working product / software. The team has to switch from plan driven to value driven. Other activities such as planning and documentation can be considered supporting activities.

Agile processes promote sustainable development. The sponsors, developers and users should be able to maintain a constant pace indefinitely

The team is advised to follow a good work life balance, no long hours working. Short iterations can be repeated to produce the final product. Effort needs to be distributed more consistently.

Continuous attention to technical excellence and good design enhances agility

The team should focus and pay more attention towards balancing the high value and flexible design. Processes such as refactoring, automated testing, continuous integration can lead the project towards technical excellence.

Simplicity – The art of maximizing the amount of work not done is essential

It’s recommended to build what’s only necessary for today. Team should not build anything based on their own assumptions. Only the simplest thing that could possibly function according to the client’s requirement needs to be built.

The best architectures, requirement and designs emerge from self-organizing teams

Team must be cross functional, self organized and self managed. Team has to decide how to do and who should do what. Everyone has to have a sense of ownership of the product and should increase the commitment towards work.

At regular intervals, the team reflects on how to become more effective, then tunes and adjust its behavior accordingly

Team should continuously improve their processes in order to be more efficient and effective. They need to have retrospective sessions to see what needs to be stopped, what needs to be started and what should be continued.

Continue Reading

Agile Project Management

What is Agile Project Management

The term ‘agile’ comes from the phrase ‘Agility’ which defines the ‘ability to quickly adjust and respond to changing business needs’. Managing projects using the agile methodologies is knows as the Agile Project Management. Agile is a mix of both iterative as well as incremental development.

Agile = Iterative + Incremental

Iterative

The project life cycle is composed of several iterations in order. Each iteration is considered a mini project and after several iterations, a release happens which builds a stable, tested, partially completed system

Incremental

System grows partially in each iteration adding new features to the project, hence the system is built incrementally.

In order to follow basic approach of agile, there are 4 general steps to follow.

  1. Make a list of features (Product Backlog) that need to be included
  2. Prioritize the list according to the value and the size of the feature
  3. Build the features from top to bottom until the fixed time is run out
  4. Repeat the process until the entire list is completed

Sometimes certain organizations feel that adapting to 100% agile project management is risky, hence they come up with a hybrid model that combines a part of waterfall methodology as well. This is a smart move since it doesn’t over-compromise both methodologies.

Agile Hybrid Model
Agile Hybrid Model

Agile projects are executed in several stages which include sprintsĀ  and releases. (Refer below image for further details)

Agile Project Stages
Agile Project Stages

Agile Paradigm Shift

Agile methods are ready to welcome / embrace changes to the project (unlike waterfall methodology). Hence, instead of making the ‘Requirements’ a constraint, it works with fixed cost and time and allows the team to build as much as possible during the period of fixed time. And with few iterations and releases, the entire project is built.

Waterfall Methodology Agile Methodology
Requirement is a constraint Schedule and Cost are constraints
Cost and Schedule vary Requirements can vary
Plan Driven Value Driven
Continue Reading