Key points
This article explains the differences between the two project modes : fixed price and agility, as well as the difficulties that can arise when trying to set up an agile project in a flat rate framework, it is crucial to take into account the specific aspects to consider when approaching fixed price projects in this context.
The hard points between fixed price and agility
Reminder: the fixed price
It defines in advance 3 constraints to be respected
The perimeter
- Agility is the promise made to the customer to be able to change their mind freely
- At the beginning of the project, you don’t know in advance what software you will have at the end
- Problem: Perimeter Constraint Is a Moving Target
- However, the barter system should reassure customers. We start with an initial contractual Backog and evolve it with a mechanism of requirements bartering.
- Yes, but:
- The client does not necessarily have the competence to challenge the costing
- Without competition, the supplier could increase the cost
- Having to remove requirements is stressful for a customer
- The functional scope cannot be reduced to a number of Effort Points
Collaboration
This is one of the 4 values of the Agile Manifesto
- Doing an Agile project involves a number of risks for the vendor:
- Just-in-time specifications => can create a deficit of inputs for the development team
- Agility is a certain culture of orality. In the event of a dispute, the written record may not be able to trace all decisions.
- Starting a project with a low expression of need and without detailed specifications can open the door to all kinds of abuses in the event of dishonesty on the part of one of the Parties.
Before embarking on an Agile project, it is necessary to ensure the client’s ability to collaborate honestly, and to go beyond the archetypes of the fixed price contract in which all responsibilities are transferred to the supplier
- Trouble:
- How do you define “collaboration” in a contract?
- How do you identify a breach of the duty to cooperate?
- Does it make sense to force people to collaborate?
Advanced Level:
Get the project off to a good start
Customers’ Agile maturity level is often low. Also, special attention should be paid to the start-up phase:
- To set the rules of the game that will prevail throughout the project
- Share a common vision of the project’s scope
Choosing the Product Owner
The choice of the Product Owner is the most important decision of the project.
The Customer and the service provider must agree on the choice of the product owner. Don’t hesitate to be “heavy” with the customer if we are not convinced of the choice.
- Product Owner qualities:
- Is one and only one person
- Is the same person throughout the project
- Has a strong interest in the success of the project
- Knows and knows how to explain the management rules involved in the project
- Is dedicated to the project – is available to the project team at any time
- Is able to arbitrate, decide in a short time (< 1 day on average)
- Accepts the principle of requirements bartering (knows how to relinquish demands)
- Is the ultimate decision-maker on the functional and technical aspects of the software
- while possibly being assisted by business and technical experts
- Its decisions are binding on the entire company, including the payer
- Is an employee of the company.
The vision of the project
- The client doesn’t have specifications, but they need to have a vision of their project
- The client’s vision is the only fixed point of reference for the project. The rest will change all the time. This information is therefore essential!
- The vision should specify (must fit on 1 page on one side)
- A summarized list of the app’s key features
- A vision of the ROI of the application
- Goals and motivations to achieve them
- Risks
Template:
+Expectations: Ergo, performance, quality, project management, techniques, etc.
+Objectives: Issue of deadlines, issues of scope, etc.
+Risks: Risks as seen by the client
+Out of scope: What the customer or service provider decides to exclude from the scope
” Deriving scope from goals :
In the future, this will be one of the most important software development topics, and I want to raise awareness about it. “
Specification by Example – How Successful Teams Deliver the Right Software – G. Adzic (Manning, 2011)
The Flexibility Lever
- A project is governed by 3 main constraints: a budget, a deadline, a scope
- To succeed in a project of this type, do not let your client believe that he can demand scrupulous compliance with these 3 constraints
- Ask your client to indicate which constraint is:
- Non-negotiable
- Important
- Negotiable
This type of discussion with a customer is rich in information about their ability to accept the benefits and constraints of Agility. If he’s totally hostile to your speech, don’t do Agility
Decide as late as possible
There are 2 strategies in problem solving:
- Width: funnel approach
- In depth: tunnel approach
Often, people prefer the in-depth approach because it allows you to quickly reduce complexity
Disadvantages of the In-Depth Approach:
- It forces structuring decisions to be made at an early stage
Width Approach:
The feature is fully implemented in a single iteration
In-depth approach:
The feature is implemented over several iterations
Advantages of the width approach:
- Allows you to have all the major features (in simplified version) very quickly => acceptance + interesting
- Allows you to de-risk projects that are heavily driven by deadlines
- Adapts better to changes of mind. Helps avoid code rework
Disadvantages of the width approach:
- Unnatural approach
- Never Make a Choice => Block Developers
Redo the Backlog
The Backog is the most important + driving instrument!
In response to a tender, the one submitted to the client is often
- Riddled with errors
- Not read by the customer
That’s why itis necessary to do it again with the client at the beginning of the project:
- List the requirements
- Estimate requirements => yes with the customer!
- Prioritizing requirements
Advantages of redoing the backlog and costing with the client:
- Be sure to have a shared initial vision of the software
- Putting the customer at ease during requirements bartering
- Have a prioritization that takes into account the true business value
- Have a Backlogthat uses business vocabulary
Mistakes often made:
Conduct the workshops
For the customer to benefit from an Agile approach, you must agree to give them time to “mature” their needs
Ban the practices of:
- Do as many workshops as possible at the beginning of the project to scope the requirements
- Force decision-making to secure your quotes
Best practices for conducting workshops are:
- Do the workshops as the sprints go
- Frequently deliver functional software and have it tested by the customer
- Explain that some of the costing are budget envelopes that must be respected
- don’t let people believe that each domain owner has a right to make a decision => the only one who decides is the Product Owner (including the technical aspects)
- Look for the minimum decision that everyone agrees on and develop it (breadth approach)
Start Developments
Project managers tend to start developments too late. They want to have as many inputs as possible before starting: storyboard, graphic track, functional framing, etc.
Cons:
- Heavy financial investments without any software production => !! risk
- Symptomatic of an in-depth approach: we want to simplify everything from the beginning of the project
Advantages of starting developments relatively early:
- The act of producing code naturally helps to align the client’s expectations.
- Until any lines of code have been produced, the client feels free to question everything from one workshop to another.
- Project de-risking => an operational software is the main measure of progress (7th principle of the Agile Manifesto)
Take care of your customer relationship
Take care of the quality of your customer relationship!!
Take the same project and the same team
- Case 1: The customer is in a good mood towards you
- Case 2: Customer is in a bad mood towards you
- The difference between the 2 is at least a 10% margin
How do you develop a quality relationship?
- Be predictable
- Tell the truth
- Say the same when it’s hard
- Say it early
- Choose your lies, or you’ll hang yourself with them
- A relationship of trust is created drop by drop, but is lost by the liters
Be Engaged
- Talk about your possible solutions
- Show your commitment to finding a solution quickly
Develop solidarity
- Never argue with a customer!
- Conduct customer/supplier team retrospectives
- Find solutions to your customer’s problems, even without immediate counterparties
- Involve your customer in finding solutions to your problems
- Get out of controversial topics with a 50/50 solution
- Be able to negotiate => define your flexibility levers!
Be Competent: Deliver Quality Software
- If your team delivers quality software, a budget, a deadline can become negotiable
- If you deliver sh*t, nothing will be negotiable!
During the project
Your goal: the success of the project
- On a project that is going wrong:
- The margin is no longer controllable or predictable
- On a project that is going badly, it is very difficult to negotiate an amendment / extension
- To make money, your project has to go well, it has to succeed
- Your first concern should be: the success of the project
Define your leeway
- Success, yes, but not at any cost
- Define tolerance thresholds with your agency, based on:
- The history of doing business with this client
- The Customer’s Potential
- The strategic nature of the project for your company
- Etc…
- Translate these thresholds into margin flexibility
- Manage your project within this leeway
- When you approach the limit of this margin, refer to your agency
Monitor the balance of interests
- Keep respect for mutual interests in mind at all times
- When you start to see an imbalance in the relationship, say so, and take action!
- E.g. you are below your financial goals even though the health of the project is good
- E.g. you are above your objectives, while the client has cut 30% of the scope
Limit your requests for money
- Before asking for money, find other solutions:
- Together with the client, remove unnecessary requirements from the backlog on a regular basis
- Be technically smart: offer equivalent, but cheaper solutions
- Swap a “banana peel” requirement for a cheap wow effect
- Transfer tasks to the customer
- As a last resort:
- Negotiate an endorsement / extension cord
- Let the customer know early, so they have time to find solutions
- You won’t be able to do it 50 times. So choose wisely when and what to ask for
No time lag
- Do everything you can to reach your date goals
- A postponement of the date hurts the margin very badly
- Better to staff 1 developper now, than to extend 2 weeks 1 full team
- Secure your production with the width approach
The Contract
A contract template
- Agile contracting is a difficult subject in which lawyers are poorly trained
- There is no typical Agile contract that everyone agrees on:
- Difficulty in defining changes in scope
- Difficulty in collaborating in a way that is highly engaged
- Most of the time it ends up with:
- A more or less traditional fixed-price contract => risk borne by the supplier
- A contract under management => risk borne by the client
Pain points
- I tried for a long time to write an Agile contract:
- Perimeter management with the barter of Effort Points at that’s fine…
- Flexibility lever, collaboration at this is where it goes wrong
- People are able to hear that there needs to be a lever for flexibility, but not always to write it:
- The flat-rate contract model is still very much entrenched!
- If my project goes off the rails and people find out that I’ve signed a contract like that, ouch!
- Our legal department is never going to accept such a thing!
- Collaboration:
- How do you define collaboration? How do you define non-collaboration?
- It is impossible to invoke a breach of obligations by one of the Parties on a concept so difficult to define
So what is (are) the solution(s) ???
2 types of contracts
There is no one-size-fits-all solution, but a contract tailored to each project
I’ll tell you:
- a contract signed with a customer
- an alternative to this contract (not signed)
First Contract: Customer α
- The principle:
- Collaboration is when each Party cares about the interests of the other (not forgetting its own)
- One way to do this:
- That each Party is free to terminate the contract at any time
Second Contract: Customer β
- The principle: risk sharing
- The budget is estimated at the beginning of the project on the basis of a number of Effort Points to be delivered by a given date
- If the scope is delivered before the scheduled date => customer and supplier share the savings
- If the scope is not delivered on the expected date => customer and supplier continue the developments, sharing the additional cost
- Possible safeguards:
- If the reason for the delay is exclusive to one of the parties, no apportionment of responsibility
- The share ratio can be determined by the initial investment the customer has made:
- – In the completeness of its Specifications
- – In a framing phase
- Beyond a certain overrun (X weeks) => project shutdown
- – Avoids the customer wanting to enjoy a very advantageous ADR ( average daily rat) for too long
Important!
In order for these types of contracts to be signed by a client, excellent guarantees regarding the quality of deliverables must be provided.
Pre-sales
Agility: Heads / Tails Side
- You have understood that in an Agile project, there are things
- What customers like: change their minds, no tunnel effect, …
- What clients don’t like as much: the flexibility lever, the sharing of responsibility, the freedom of the parties, etc.
My advice
- Without a project, there is no Agility => in Presales Phase , your priority is to make your customer dream!!
- And what about the subjects that make people angry? :
- The first time , bring up the subject in a physical meeting
- See how the customer responds to these comments
- If the customer is receptive, or knows agility, this type of speech becomes an ASSET!
- If the customer isn’t receptive, don’t talk about it anymore. Re-open the topic once the project is won
0 Comments