Give a sales quote
- Janos Biro (Unlicensed)
- ChrisM (Unlicensed)
TRY Plangle on our Demo site without installing it in your environment !
It is a common misconception that if you follow Agile/Scrum then giving a (fixed) sales quote for your clients is impossible or at least very hard due to the "fact" that they more or less neglect project planning or at least do not care much about them.
The only promise of Agile/Scrum is "we'll work as fast as we can and we will see how much you will pay at the end".
Well, first of all, let me convince you about the foolishness of this theory very quickly.
If you read my article about what Agile and Scrum actually areit should obvious to you at first glance that Agile is not against responsible planning, not against fixed price.
Actually Agile has nothing to do with these topics directly. Reading the Agile Manifesto it is quite clear for any careful reader.
Regarding Scrum... it is a framework without too much concrete things to say. So again, what does it have to do with fixed price quotes or careful and responsible planning? Nothing. You are right.
So let's assume that I have convinced you.
So if somebody claims that Agile/Scrum is against planning and giving fixed price quotes he actually claims no more than that it is not possible plan a project within the boundaries of the 12 principles or that few things Scrum tells in his humbleness. It would be so sad if it was true because those principles and the framework itself all look pretty sexy don't they (here is your last encouragement to actually read them)?
Well, fortunately it is not true.
What is true however that driven by those principles and the elements of the framework we plan our projects differently and therefore we give price quotes differently compared to the "classic" approaches.
Does it mean that these new ways of planning would be worse? Why would they be? Do you think Agile principles are worse then "classic" ones? Hopefully not. So it should be easy for you to accept that planning methods deducted from those principles are not worse either.
Let's see what you need for a fixed price quote?
- Good understanding of your client's business needs (scope, deadlines, etc)
- Gathering estimations from your team
- Calculating feature and project price
- Cost price (how much the development of the product will cost you)
- Risk analysis (how certain you are about the cost price)
- Profit rate (if you need profit, we do because money makes us happy(ier))
- Cost price (how much the development of the product will cost you)
- Contracting
Actually these questions are to be answered no matter what kind of project you run, "classic" or Agile.
Let's see some ideas how we can handle these in Agile. Actually it is how we do that within Moresimp, and they work for us.
Do they not work for you? Let us know, we can share our experiences, and maybe we can help.
Understanding client's business needs
This very first step seems obvious but according to our experiences sometimes neglected or at least not taken seriously enough.
From the very first meeting it is crucial that you should try to understand what your client needs, not what they say they need!
It may seem that we do not treat our clients as adults and we want to tell them what they need.
No, that is not true at all, our clients are adult and very successful in they own fields and are treated as such with full respect.
BUT they are not from IT so they speak different language, they have different vocabulary, different understanding of IT expressions.
Many times they ask you for X only because they think that X is the best IT solution for their business problem.
But keep in mind that they are NOT from IT, so it is very probable that X is a bad solution or not a solution at all or there is better among the ones you know.
You are not in the Army, you serve your client best if you ask back and try to find out what the business problem is rather than following orders blindly and covering your ass with a contract afterwards.
Rule of thumb:
Never accept a requirement until you understand a business problem it solves.
Sometimes it can be as trivial as "we need Oracle database because we have 10 Oracle licenses for 10 years for 10 million dollars". It is a completely OK argument. But "because i said that" is an argument of idiots.
"Client is always right"... regarding their business goals! An intelligent client will love you for this attitude.
Ok, but what about unintelligent clients?
It's up to you...
Do you want to work with them in long term?
Will your best developers stay with you if they implement features that do not serve your client's needs but serve a contract?
If you keep asking back, after a few minutes they give up using their IT vocabulary, and start using their native business language.
And it is your goal, speaking in business terms, since you must understand their business anyway in order to provide them a solution they need, but they do not have to and should not have to become IT engineers to make your life easier.
The result of this discussion should be a requirement specification draft (short sentences, in a TXT file or any note application during the meeting) that clarifies roughly items like these
(we use this list as a non-comprehensive reminder)
- business goals of the projects
- what is it in 2 sentences?
- what is its goal in 2 sentences?
- if money, then how do they want money from it?
- distinguishing features
- target audience
- milestones
- business goal
- deadline (with reasoning)
- our team's responsibility (Development/Desing/QA? partly? all?)
- real-life use-case-s in written form (this way the client has to really think about them)
- integration with other projects, parts of the project
- involved partners
- integration points
- features (in use-case or even Story form)
- all ideas should be listed (ideas clearly only for the future can also help to reveal hidden business needs), prioritization is for the future
- do not forget to ask "why?" for all features
- do not go on until you understand what the given feature is for, and until you can imagine how it would work
- non-functional requirements
- look&feel (design style, basics)
- usability/accessibility
- restrictions on used technologies
- legal restrictions/requirements
- development methodology/tool/environment restrictions (revision control, CI, client infrastructure, etc.)
- production environment
- performance
- speed, latency
- capacity
- scale-ability
- availability
- security
- authentication/authorization
- channel security
- data/database security, backup
- audit logging
- application logging
- i18n
- data/business logic migration from existing system(s)
- adherence to standards (like ISO standards)
- documentation needs
- QA
- scope (support OSs, browsers, devices, etc)
- manual, automated tests, measuring coverage
- Processes during development
- Explain how we work
- Who will be the PO? (it may reveal that they can't give one which always a big risk)
- Afterlife
- Support/bugfixing needs
- Handover to internal development team
- Future business plans
Based on this draft your team should be able to create a requirements specification. This is NOT the 300+ pages requirement specification of Waterfall when you write it to become the part of the contract covering your ass.
You can write in Google Docs, or Confluence, whatever your preferred editor is. But please forget offline solutions (Word documents).
Why? Have you seen email threads sending Word documents with titles XY_req_spec_1.1_FINAL3_revised? You need history? Proof that who modified when and what? Choose Google Docs, Confluence or Office 365! (we should really get some money for these kind of ads, we don't, sad, as we like money very much)
Its only purpose is to ensure that you and your client are on the same page regarding to goals, features and other, non-functional requirements.
Therefore you must write it in plain English avoiding unexplained IT terms and expressions with the following main sections
- Glossary
- VERY important, establishes a common language
- DO NOT explain IT terms, instead clarify terms used with a special meaning within the application (like "user", or "record") to avoid misunderstandings
- Proposed architecture with technologies (only 2-3 pages with big, easy-to-understand pictures and with the descriptions of each module, plain explanations)
- Features (in Story-like form making them immediately understandable by anyone who understands the business goals)
- think about grouping them together (let's call them Epics, Themes, whatever you want, basically feature groups)
- Non-functional requirements
How to write good user Stories
We strongly recommend you to watch this video from Mike Cohn.
Send this requirement specification to your client and talk(!!!) about it. If they answer to your mail "fine", they just did not read it, it is very dangerous(!!!), always make them read but at least read them together. Rest assured there will be misunderstandings in it, guaranteed!
After you both agree on that you are on the same page regarding the requirements, it is time to create a one page summary that gives your team a high level overview about the features where you can estimate quickly with your team.
Previously we used an Excel table for that (well, a Google Spreadsheet) but since we invented Plangle our lives have changed, and it cures psoriasis as well... of course.
Why did we not use JIRA Agile for that? Because we found it very hard to estimate Stories without seeing their description and sub-tasks on the same page, that's all.
Gathering estimations from your team
Well, well, our favorite topic since it is among the ones people can die for proving that their approach is actually the right one (btw. what do you think about AMD and NVidia cards?).
We have our opinion as well, but it matters a little eventually (no worries, we have got used to that, Hungary is a little country),
what does matter actually is that whether your methods have served you well until now. Are you satisfied with them? If your answer is yes, there you go, just go on with them.
However you may want to read this comparison, it may give you new ideas.
Before we start this discussion, we strongly recommend you watching this great material from Master Cohn on the topic.
After watching this video you should have a pretty clear picture on how and why Agile estimation and tracking (should) work.
However in practice we have seen different practices as well. We are fine with them as long as they help your project to be agile.
Let's see a quick comparison of the approaches we have met until now.
Mike's approach, plus some thoughts from us
As you could see in the video this approach separates project planning/tracking and tracking of progress within Sprints
Project planning and tracking
For project planning purposes it suggests your team should estimate ALL the Stories in Story Points when the project starts. Practically Story Points are actually relative weights, a Story with 2 Story Points means that it takes 2 times more time for team together to finish this Story than to finish a Story with 1 Story Point. And means nothing more!
You can use Planning Poker to give these estimation and there are other techniques but we found them too childish for our own purposes while we see their benefits.
Your results should look something like this.
Ok, and what about project tracking and predictions about the future?
If you take Agile principles seriously, the only measure of progress you can accept is that how many Stories are completed in a Sprint. If you add up the Story Points of these completed Stories you have your team's velocity for that Sprint, easy enough isn't it? You can use this velocity (and your own experiences/judgement) to predict the progress of your team for the future.
That means that during your Sprint you must focus on completing as many Stories as it is possible. Do not cheat! There are no half-complete Stories! Why? Have you met a developer who said "It's 95% percent ready boss", and he kept saying it for 3 days? That's why.
What if I want to estimate my Stories in hours?
Well, you can do that if you want, as long as you are aware of what you are doing.
Let's see an example.
Using Story Points
Story 1 - 10
Story 2 - 15
Story 3 - 20
Story 4 - 15
Story 5 - 20
Story 6 - 10
Let's assume that in Sprint 1 your team complete the first 2 Stories, it means their velocity is 35. What do you infer from this? Probably something like "they will complete Story 3 in Sprint 2 but not Story 4". And you'll be probably right, however a single Sprint is far too few to treat the velocity stable enough to use for future predictions.
Using Hours
Story 1 - 10h
Story 2 - 15h
Story 3 - 20h
Story 4 - 15h
Story 5 - 20h
Story 6 - 10h
BUT usually your boss will say something like this
- hey, 2 guys completed 35 hours of work in a week? (let's assume you have 1 week long Sprints). They had 40 + 40 = 80 hours! Fire them immediately!
- ok, so this project will be done in 90 hours? 2 guys? Fine! Let's have a party 2 weeks from now!
So as you can see, there is nothing wrong with Hours, as long as you do not treat them as Hours. But why would you like to hassle your mind with keep saying "ok, hours, but not that kind of hours, remember!" It makes no sense! If you do not like the name "Story Points", just use "Ponies", as we do! Makes no difference. These are just relative weights, nothing more! Keep that in mind!
Also, people are much better at relative estimation (if this is 2 then this is 4 or 5)
But estimation in hours are more precise!
No. Why do you think they are?
You have a X team members with Y experiences and Z knowledge about the project. Why do you think that X + Y + Z = Q1 if you estimate in Ponies and Q2 if you estimate hours?
They are seemingly more precise! But in Agile you must focus on data, facts and figures, and you should avoid tools and processes that promise more than the data behind them justifies. There is no magic!
Which scale to use?
There are many scales to use, Fibonacci (1, 2, 3, 5, 8, 13, 21, etc.) or the simplest 1-10 scale.
The Fibonacci scale tries to factor-in the fact that the bigger the Story is, the more unreliable your estimation is, while to 1-10 scale is just easier to get used to.
You can even use the sum of your sub-tasks as estimation for Stories (see the concept below), it leads you to a larger scale (around 1-100+)
Half-complete Stories
As I mentioned, there is no such thing as "half-complete Story". If your Story meets the Definition of Done (DoD) then it is Done, otherwise Not Done.
Of course if during a Sprint your team realizes that a Story is too big and is able to split it into 2 Stories then you can close the one which meets the criteria and leave the other open.
But NEVER count Stories into the velocity that have not met the DoD!
Cheating makes no sense anyway, velocity is NOT for measuring the effectiveness of single Sprints, but is used for predicting how many Stories we can complete in the future. If you cheat you'll just get false predictions, and who needs that?
What if we can't complete Stories?
Well, that's bad, you should try harder.
Seriously, for instance you can always
- lower the requirements DoD if you must (even temporarily)
- use your daily stand-ups to get your team focused on following the proper Story order (it is important to work as the priority order of the Stories dictates even within a Sprint!)
In order to be successful with Agile you must establish a team where every team member willingly helps the others with the tasks that hold the team back the most. We need automated tests to complete Stories and your QA guy is on sick leave? Let's have your frontend/backend guys to write those missing tests! Will they be slower? Of course! Does it matter? Well, depends. Its up to your judgment.
e.g. If it is important to you to deliver the most value in this Sprint and your frontend/backend backend guys have seen automated tests then it is a good deal. But for instance if you can live with that in this Sprint your velocity will be 0 because you know that the QA guy will be able to add those tests in the next Sprint within 2 hours and for the others it would take 3 days then probably you should just wait for the QA guy. So it mainly depends on the circumstances.
Do not forget that Agile is just a set of principles, and Scrum is just a framework, you still have to have team leader/PM skills to manage a team. Agile and Scrum won't do your job for you. Thinking, managing, arranging things.
Sprint progress tracking
We can use velocity to predict our progress for the future, but how can we track our progress within a Sprint? Why do we even need it in the first place? Well, you do not need it. It is just motivating to see how we progress compared to what we estimated.
To track our progress within a Sprint we split the Stories of the Sprint (usually in the Sprint planning meeting) to sub-tasks that covers the scope of the whole Stories. We usually use hours for sub-task estimations. Why? Because we would like to see if a task takes more time than we estimated. If it happens day-by-day then we probably won't complete some Stories at the end of the Sprint or we have to change something to meet the Sprint goal (for instance add more resources to the project).
To build trust it is always good to communicate our failure to our own commitment to the Sprint goal as soon as possible. Or you can add more resources, or handle the situation.
Long story short, tracking your Sprint day-by-day gives you a hint about your progress and let you to handle the situation accordingly.
How to estimate sub-tasks?
Considering a 8 hours long workday an average team member works around net 6 hours (just think of cigarette/coffee breaks, reading some facebook, etc.). It is inevitable no matter how much the management may complain about it. Your brain has to rest, and even in the breaks the discussions are going around some work related issues.
As long as you trust your team members, let them having breaks as much as they need. If you do not trust them, well fire them. Seriously.
BUT if you have to put 8 hours in your time-sheets (as we do) you must handle the remaining 2 hours somehow.
We handle it this way.
If you have to estimate a sub-task and you believe that you finish it during a work day, from the point you get in until you usually go home (try to imagine it!) then estimate it to 8 hours. If you think you could do 2 tasks like this within a day then give it 4 hours. And so on...
Estimations we use for sub-tasks
- 32 hours (far too big, we usually avoid it)
- 24 hours (too big, we usually avoid it)
- 16 hours
- 12 hours
- 8 hours
- 6 hours (tricky, we usually avoid it)
- 4 hours
- 2 hours
- 1 hour (use it only for one line fixes)
You simply can not give more precise still realistic estimations even if you are the most senior guy in your universe.
Once you set the "Original estimate" field of the sub-task to the estimation, you can use JIRA's worklog feature or more sophisticated solutions like the Tempo Timesheets plugin to record the hours spent on these sub-tasks.
JIRA Agile's burndown chart gives you a good overview on how your overall progress within the Sprint based on these sub-task estimations.
In Plangle you can give estimations to your sub-tasks pretty quickly.
How to split Story into sub-tasks?
Well, we usually use a role-oriented approach creating "Backend task", "Frontend task", "QA task" for our Stories, but we know very well that it won't meet the taste of many of the Project Managers.
Books usually suggest you creating "task-oriented" sub-tasks like "Create a DB" or "Write automated test" since it is more "Agile" in a way that it does not prescribes who will do what task, encourages self organization, team work, etc. Well, it's all true.
Nevertheless we find it more useful to create role oriented tasks. It definitely has its pros and cons.
Fortunately in Plangle we support both approach.
The "Quick sub-task" concept is about the previously mentioned role-oriented sub-task creation (see the FE/BE columns? They stand for Frontend and Backend), while the "normal subtask" can be used for the task-oriented solution.
Story estimation = Sum of sub-task estimations
We have seen (and used) a modification of the approach above which says that you should use the sum of the sub-task estimation as your Stories' estimation. Please note that it does not mean that you should estimate your Stories in hours? What holds you back deriving your Story Points from the sum of the sub-task estimations?
It's a tempting solution which works pretty fine as long as you always split ALL your Stories into sub-tasks and ALWAYS use the sum of their estimation as the estimation of your Stories.
Story 1 - 24 (story point)
- Subtask 11 - 8h
- Subtask 12 - 16h
Story 2 - 8 (story point)
- Subtask 21 - 2h
- Subtask 22 - 6h
It may look weird that you add up hours and get Story Points. But again, Story Points (and any other Story measures you choose) are just relative Story weights, nothing more. So does it hurt if you (consistently) derive those weights from the estimation of the sub-tasks? After all this way you can get a finer grade Story Point, can't you?
Anyway, if you like this approach we have good news, Plangle has support for it.
You can copy sub-task estimations with a click, or even make it automated.
Story estimation = Sum of sub-task remaining estimations
We have seen (but never tried) an approach where somebody wanted to make his Story estimations ALWAYS equal to the sum of the actual remaining estimations of their sub-tasks.
If you think about it a bit, it means that with this solution you believe that if you team says that "It's 95% done" then it is true.
While we think it's not an Agile approach (and you'll disappointed) we are considering supporting this type of Story estimation as well.
Calculating feature and project price
At this point you have estimated Stories (with estimation sub-task or not, depending on your chose approach to estimate Stories) that look something like this
But you still need to have prices for each Stories (so that your client can see its prices) and for the whole project.
To calculate these prices basically you have to consider (just like in any other projects)
- Cost price (the price the feature/project costs you)
- Risks (you need proper risk analysis that can hugely affect your prices)
- Profit (if you need)
Cost price or risk calculation are quite common general PM practices, no matter if you follow the Agile principles or not so we do not want to discuss them here, only the differences.
The main difference regarding cost calculation in comparison with non-Agile projects is how we predict in Agile projects the finishing date of a project or a feature (Story). Of course this prediction directly affects our cost prices.
Regarding profit, we do not need it in Agile projects. That's for old school guys. We need huge profit!
How is finishing date of a project/feature calculated in classic projects?
Well, various ways, this article is not to discuss them in their entirety, but with a bit of oversimplification we can say that usually they try to create some sort of "Gantt chart".
What is the problem with this approach?
First of all, planning with a Gantt chart is a problem itself. Why?
(Let's assume you have a Software Development project...)
- Gantt charts shows more than a Project Manager or a team is able to tell
- Do you really think that you can tell 1 year ahead what your senior DB admin guy will do in the morning?
- if your answer is yes you have not been in a real software development project or you do not earn enough money (no matter how much you earn).
- Do you really think that you can tell 1 week ahead what your senior DB admin guy will do in the morning?
- well, if you have an old, all-senior team, pretty straightforward tasks, then maybe... if you are lucky.
- Do you really think that you can tell 1 year ahead what your senior DB admin guy will do in the morning?
Yes, of course it is clearly an exaggeration, but think about it... it is almost equally hard to tell which task of the project will be executed in parallel with others 1 year ahead, so point is that Gantt charts
- Gantt charts are not transparent
- usually created by a single person (Project Manager)
- no one else is actually able to understand and therefore verify its assumptions
- developers will accept it (because they won't spend 2 days to understand and verify it) seemingly but they will actually ignore it (the PM created it, he will be beheaded if it is wrong)
- management will believe it (it looks cool, polished, sophisticated, professional and we'll behead the PM if it is not anyway)
So you have a Gantt chart full of dreams about who and when will do what 1 year. Based on that seems easy to calculate how much the project will cost isn't it? Well, we don't think so.
Do not get me wrong, it is definitely possible. A good and experienced project manager who knows his team very well, and who is master of MS Project and MS Excel can do that. I have seen it. It may take days or weeks and even more to keep this plan up-to-date during the project but it is definitely doable, no question here.
Is it Agile?
"Welcome changing requirements, even late in development." (in Gantt charts you have to re-plan everything)
"Business people and developers must work together daily throughout the project." (Gantt charts are not transparent.)
"The best architectures, requirements, and designs emerge from self-organizing teams." (Gantt charts usually created by a PM)
etc..
The answer is NO, it is why "Gantt" is the "F word" in Agile.
How to calculate feature/project price in Agile projects?
This question is covered thoroughly in the documentation of our "Planner" feature-set so please take your time and read it.
As a quick summary we can say that you should
- calculate how many Sprints you'll need to complete the project based on
- historical data (from previous Sprints, or even projects, but this latter should be avoided due to its unreliability)
- input from your team (ask them how many Stories they could complete in a Sprint, picking up stories from the beginning, middle and end of the project equally)
- calculate the average team price for a Sprint (for the future)
- cost price
- considering the availability of each team members for the project
- the cost of each team members
- risks
- profit
- cost price
- remaining project cost = remaining number of Sprints * cost of the team for the remaining Sprints
- redo these calculations after each Sprints so that you always have an up-to-date forecast
- since you have the weight of your Stories (in Story Points or whatever measure you chose) you can quite easily calculate the cost of each Stories as well. BUT please remember that these cost calculations for your Stories are just as reliable as the relative estimation of your Stories.
Why is this approach better than a Gantt-chart?
- calculations considers all the information you have BUT no more
- your team's past performance (past velocity)
- your team's commitment for the future (velocity commitment for the future)
- they consider all the factors (possible work parallelizations, pitfalls they know about, etc.)... well, at least they can consider more than a Project Manager can.
- your own judgment for the future velocity (based on how much you trust in your team's velocity estimations you can and you should always do a sanity check)
Think about it, can you have more, more precise predictions about the future? Do you have more data to draw more or better conclusions? We think no.
Risk analysis in Agile projects
The project/feature price can be hugely affected by other factors, let's call them risks.
There are huge sections of great many books about risk analysis/handling/mitigation in Agile (an non-Agile) projects, you may want to read the corresponding section of this one about the topic for instance.
To give you an idea about the basics here we present you a short checklist on what kind of risks you should definitely consider (and try to mitigate) before giving a final price quote.
Risk of scope misunderstandings --> Scope misunderstanding buffer
No matter how hard you try, no matter how long your requirement documentation is, you'll face with the fact during the development that you and your client misunderstood each other when you discussed a feature. It is inevitable. So the only question is how to handle it.
You can deal with it
- using a T&M contract - this type if contracting is clearly the best-fit for Agile projects (see how to convince your clients to sign this type of contract in the next section) (we used it and it worked)
- using fixed priced contract
hundreds of pages of requirements documentation - won't work (used and failed)- you should apply a multiplier (usually around 20%, the concrete amount depends on how well-defined and simple the project is, but NEVER go below 15%!) in your prices that will cover this risk (we used it and it worked)
- In Plangle we just add this "buffer" to the "Team cost". So if your cost price for a Sprint is 100$ we enter 120$ in case of fixed priced contracts.
using more exotic contract types (we never tried them, but all sound interesting)
Risk of under/over estimations - Schedule buffers
Let's assume the scope of your project is perfectly understood by both you and your client, and there are absolutely no scope changes during your project (I guess you see how ridiculously it sounds).
Still, there is a good chance that your estimations are not accurate.
Well, actually it is worth think about it a bit. What does "accurate" mean actually when we have Story points and velocities?
It is a tricky question...?????????
Risk of missing deadlines
??????????
Project specific risks (unknown technology, missing PO, IE6 support, etc.)
In a project you can face with dozens of project specific risks.
Agile contracting
After you both agree on that you are on the same page regarding the requirements, it is time to create a one page summary that gives both parties a high level overview about the features and their costs.
Previously we used an Excel table for that (well, a Google Spreadsheet) but since we invented Plangle our lives have changed, and it cures psoriasis as well... of course.
You share it all with your clients?
Certainly we do.
According to our experiences the best way to build trust is to share all the information you use in your calculations EXCEPT how the actual cost of a Sprint was calculated of course.
And the ONLY way to get a good (=long term) contract is to build trust, as soon as possible, as much as possible.
Some may fear of sharing estimations for instance.
Let's see what happens if you share your estimations...
- your client sees that you are an honest guy...
- you can avoid lot of misunderstandings (they are always there, trust me).
For instance your client may spot a feature which costs "too much".
There is chance that the number is correct (and you have to explain why it is so difficult to implement/test it) but it is also possible (and has happened to me many times) that it is there because we just misunderstood a feature and the client actually needs a simpler functionality (e.g. not a Facebook, but just a Facebook login).
Sharing detailed estimations is a GOOD idea if...
- you estimate your Stories in Story Points and do not split them into sub-tasks
- it will be very hard for your clients to argue on numbers like 3 or 6 Story points BUT it is easy to spot relative differences like "why is this 10 when that other one is 5?" eliminating scope related misunderstandings
- using Story Points may lead to confusions with clients new to Agile
- you also split your Stories (estimated in Story Points) into sub-tasks and estimate them in hours(recommended)
- most of the clients may find estimations in hours more easier to grasp, still the Story estimations will let you spot the scope related misunderstandings
- it will be hard to argue on sub-task estimations (it is a good thing actually)
- it builds the trust further since you share all your estimations
Sharing estimations is a BAD idea if...
- you estimate your Stories in hours
- it can be very confusing even for your team and yourself (as we have discussed it), it will be even more confusing for your client and will inevitably lead to false expectations, misunderstandings and frustration in the end. NEVER DO IT!
With the requirements specification and your Plangle sheet in your hands it is easy to negotiate with your client about milestones, priorities, prices.
It is also to easy to explain what those colored zones mean.
Feature costs
Do not forget to mention to your client that
- feature (Story) costs are far less precise than the overall project cost
- they are just the financial representation of Story Points, nothing more, and we all know that Story Points are just relative weights
- Story points (hence feature costs) can change in case of re-prioritization of Stories or cancelling some of them
- obviously because of the inevitable dependencies between Stories (no matter how hard we try to make them independent from each other)
It is generally NOT a good idea to remove any feature (Story) that makes any sense, just move them to the end of the feature list (probably to the RED zone) and that's all.
Contract types
T&M (Time & Material) contracts
I guess you have heard that Agile projects works with T&M contracts only. You heard it wrong.
We prefer T&M contracts in case of Agile projects because
- it respects the fact there will be many changes throughout the project, changes that must be administered in the contract (as well) if you do not have T&M contracts
- new Stories
- reordering of Stories
- changing of Stories
- encourages the client to actively work together with us (give us a PO, participate in meetings)
- encourages us to show real and satisfying progress to the clients at the end of each Sprints
- in case of T&M project it is very common that our client can cancel the contract at any given point of time
- in case of T&M project it is very common that our client can cancel the contract at any given point of time
How to convince your clients to sign T&M contracts?
Usually it is pretty easy, just tell them honestly the pros and cons.
What everybody client wants is guaranteed success for a fixed price and continuous control over the project.
If we combine an Agile project and T&M contracting they can get it all
- We deliver results in every X week, we can even share the codebase with the client, with automated tests, manual QA plans (with everything that proves that our Stories are really DONE)
- If the client is not satisfied they can cancel the contract anytime they want
- Client's representative (PO) is more than welcome in any Scrum meetings so they can monitor even our daily progress
- Client has to pay after each Sprint (or in every month) to protect ourselves
Fixed price contracts
Other exotic type of contracts
Contracting considerations
PO, not participating...