Scrum FP
Fixed Price SCRUM stands for SCRUM that is applied to fixed scope, fixed time and fixed price contracts that usually is a case with government or private institutions.
Rationale
SCRUM FP is standard SCRUM adapted to environments where customers operate with fixed price contracts though still requiring ready and functional IT projects that fit the project tension triangle – on time, on budget and with required quality.
Intro
Many customers embrace SCRUM as a solution to most of their unsolvable problems or scope creep with unforeseeable results at any time. SCRUM promises and delivers value to the customer, and customers see each moment how the value is being created. Because SCRUM has no ending-point and can be iterated indefinitely it perfectly fits with the idea of time and material contracts. But it isn’t always used that way. Some customers, especially the government, are strictly bound to time and budget restrictions so some additional features must be introduced in order to enjoy the full power of SCRUM as it was designed by the community over 20 years ago.
Thus some customers are focusing on fixed time and fixed price contracts for IT development though still benefiting openness and empowerment given by SCRUM. This is the reason why SCRUM Fixed Price (FP) was created. When we deliver with SCRUM FP, we have predefined budget and time. We are responsible for using the available resources and completing the project on time and budget and delivering scope that has been promised.
This is a framework to deal with implementation of SCRUM framework in Fixed Price (FP), Fixed Scope environments for IT delivery projects – so SCRUM FP.
1. Artifacts
Project Schedule
Project Schedule is the most obvious part of the framework as it is derived straight from the signed contract. Fixed Price contracts always have well defined project Start Date and End Date.
Teams usually can decide on sprint size so Project Schedule becomes an arithmetical task to split all project time into sprints and enumerate them accordingly.
All sprints must be of equal length.
Project Load
Project Load is just the sum of everything that must be accomplished during the whole project.
As the project is fixed in price, the scope must be known before the project starts or it would be meant for failure. This project scope can be fixed in various ways – as features, tasks, requirements, subsystems etc. At the most generic level we call those scope elements Epic Sets (see next).
So we define the term Project Load, as everything that must be done within the scope of a particular project at the aggregation level of Epic Sets.
Project Plan
Project Plan is direct mapping of Project Load onto Project Schedule.
Thus Project Plan represents the whole project scope divided across whole project time, so it makes a very efficient tool to control if project performs in accordance to inicial plans or not.
All sprints must be of equal length.
Sprint
Sprints are used as in conventional SCRUM, but input for the Sprint is all Epic Sets that are meant for that particular Sprint.
Specifics of SCRUM FP is that each Sprint has predefined scope that must be delivered. This predefined scope is one or several Epic Sets as defined in Project Plan.
Epic Set is a “piece of delivery” that is used to define initial project estimates for Fixed Price project delivery. This is a very rough scope project broken down into smaller units.
Epic Sets are something that can be estimated and delivered based on historic experience or market analogues or other methods. Think of Epic Set as a micro project within the whole project. If all Epic Sets will be delivered so will be the project. Good size of Epic Set should compare to the size of 1-2 sprints.
Note – Epic Sets will be refined later in the planning process.
Governing Body
People with delegated authority to make decisions about the project must be assigned to control the project as it will be essential to make decisions about project scope and schedule along all the period while the project will be going on (Governing Body – GB).
Setup Sprint
The first sprint of the Project is the Setup Sprint. It is as long as other sprints and the main objective of this activity is to set up the working environment. Everything that needs to be done before the development has to be done in this sprint (planning tasks, epics; making the Project Plan; getting hardware, licences, equipment; setting up pipelines, routines and many more). The Setup Sprint can be 2 sprints long, but not longer.
2. Process
Prerequisites
For SCRUM FP to be used effectively, the project’s maturity level should be somewhat higher than for regular SCRUM. This is because in regular SCRUM, neither time nor scope is limited. The team starts from nothing and gradually develops collective product awareness getting more and more effective over the time.
Most often FP contracts, time limits and finances are set in advance. So scope must be set in advance as well. Scope must be defined at the level of details that allows 3rd parties to estimate resources needed to deliver this project.
Usually it is necessary to have those elements defined before starting the SCRUM FP project:
- List of business components that will constitute the system (modules, forms etc.)
- List of interfaces that will interact with the system externally
- List of interfaces that will interact with the system internally
- List of non-functional requirements to be fulfilled (security, documentation, work process etc.)
- List of goods or services that must be delivered (HW, licences, installation etc.)
Simply put, when using SCRUM FP, you must know what you need to do. Because of this, requirements, user stories, tasks, epics (or other summaries of work) must be fixed as you plan to start.
Define Epic Sets
Epic Set is a combination of epics, user stories, requirements or other doable tasks, that make up a logical, separable unit. Epic Sets are used to divide a project’s scope in separate parts, which can be done one after another. We need to manage project sizing (scope).
In the context of this framework Project Load is the total scope of the Project that must be accomplished during that project.
If those are not set explicitly by the customer, Developers should redefine Project Load in a way it makes clear what constitutes the system. This is a list of modules/components that will define a future system and all interfaces used by those modules/components and also interfaces exposed to the external world by those modules/components.
It helps to organize 2-10 workshops to define what system will be and what components will need to be created to satisfy the needs. It helps if developer representatives are present in those workshops so business parties can be aligned with technical parties on the terms of what components will be in a particular system.
Initial size of Epic Set should be comparable to the work done in 1-2 Sprints.
Do sizing of Epic Sets
Once all the Epic Sets have been defined, we assign a price to each Epic Set according to its expected cost. Various methods can be used, i.e. expert judgement or disaggregation.
Cost of Epic Set is calculated in financial terms and total sum of Epic Sets plus reserve plus expected profit makes amount of F/P contract.
Rafine Epic Sets
Refinement of Epic Sets should be done to understand scope of particular Sprint. This process may be done before the project or before a particular Sprint.
Refined Epic Set must be delivered in a single Sprint.
Define Project Schedule
It is the easy part of the SCRUM FP project delivery. FP project has a set Start Date and End Date. Both of those must be stated in the contract and can be easily used to define the Schedule of the Project.
Based on these dates we can create a Project timeline where the timeline starts with Start Date and ends with End date, but rest is evenly divided by the length of the Sprints.
We calculate how many sprints it will take to complete the project, dividing the project’s length by sprint length. For example, if your sprint length is 2 weeks and the project has a length of 24 weeks, you should have 12 sprints. The dates are optional, but useful if you know that there are holidays or other activities that might lower your productivity.
Create Project Plan
Rules to be followed:
- Define 1 or 2 initial sprints as Setup Sprints to define DevOps, Routines, Reporting, HW, Rafine architecture etc.
- Leave 10-20% from the total number of Sprints as a Reserve. Number of Sprints depends on the total length of the project and its riskiness. More risky, more reserve.
- Fill remaining Sprints with Epic Sets so that they are spread evenly across all available space.
Deliver Setup Sprints
Initial sprints in SCRUM FP are called the Setup Sprint.
Because fixed price is strictly bound in financial terms, usually there is no ready-to-use environment where work will be done and set-up is part of fixed price delivery project. Neither system is divided into Epic Sets and Project Plan is given. All those pre-delivery activities must be set up.
Typical activities in fixed price project might be:
- Defining project scope as list of Epic Sets
- Development of Project Plan
- Acquisition of necessary hardware, licences, equipment etc. for development process
- Implementation of DevOp pipelines
- Implementation of delivery routines (scrum artifacts, rituals etc).
Delivery Control Process
Before the start of the Delivery, GB is introduced with the Project Plan and how Project Plan will implement the whole planned project scope. GB accepts or rejects Project Plan or asks for more detailed explanations. After the Project Plan is fixed, scope of each Sprint is fixed as well.
Delivery control must be done at least at the end of each Sprint at Sprint Review meetings.
If GB accepts that the Sprint target has been reached, deliveries are passed for Customer acceptance and testing, so the next Sprint is being planned as set in the Project Plan.
If GB rejects Sprint because of major flaws in scope or quality or target has not been reached, then a failed Sprint is repeated. Project Plan is rescheduled and all Epic Sets are pushed forward – the next upcoming Sprint consists of unfinished or failed tasks from the previous sprint, Reserve Sprints getting less by 1 sprint.
If more than one Sprint fails at GB level, the project must be considered a troubled project and its termination or reset must be considered as one of the necessary actions to match expectations.
Delivery Sprints
Product Owner on a timely basis rafines Backlog within scope of each particular Sprint by dividing predefined Epic Set into tasks, user stories, features etc., so that at the beginning of each Sprint Development Team knows what must be done.
Sprint load is time-boxed. This means that SCRUM Team honors schedule over functionality. Product Owner must define Sprint Backlog so that the team accepts to deliver it within the planned time frame. Most important functionality must be developed first, planning to omit features that are less important.
Delivery of the fixed price project goes as in the classical SCRUM process with the exception that Product Backlog is defined by Project Plan at the very beginning of the project.
The rest of the work not documented in SCRUM FP is done based on classic SCRUM . All the ceremonies and activities are exactly as written in the SCRUM guide. SCRUM FP is made as an addition to the original SCRUM, to provide a framework for fixed price projects and give additional benefits to people who use it.
3. Beyond and about
T/M vs F/P contracts
There are two main project contract types – time and material (TM) and fixed price (FP) contracts. The main difference between the two is that for FP contracts there is a set budget, and it is time boxed (there are time constraints). TM contracts, on the other hand, do not have a set budget (usually indicative) and they can have an end date, but they can be extended without changing the contract radically.
There are many more characteristics that can be derived from the main differences – for example, TM offers high flexibility and requirement changes, a fast start, dynamic decision-making (the client gives you direct instructions) and better client-side control over the project. Along with these characteristics, there is also less control over the budget, the client manages and is involved more with the project, as well as uncertainty about the finish.
On the other hand, FP projects have deadlines, set budgets and the supplier manages the project. They cannot be extended and are not as flexible or easily changed. This guarantees that the scope of the project does not increase indefinitely and will end, no matter the result. Usually, because of the management cost, these contracts are pricier and take longer time to prepare and plan.
The essential difference between the two contracts is – either you buy time (by choosing TM) or product (by choosing FP).
Before the start of the Delivery, GB is introduced with the Project Plan and how Project Plan will implement the whole planned project scope. GB accepts or rejects Project Plan or asks for more detailed explanations. After the Project Plan is fixed, scope of each Sprint is fixed as well.
Delivery control must be done at least at the end of each Sprint at Sprint Review meetings.
If GB accepts that the Sprint target has been reached, deliveries are passed for Customer acceptance and testing, so the next Sprint is being planned as set in the Project Plan.
If GB rejects Sprint because of major flaws in scope or quality or target has not been reached, then a failed Sprint is repeated. Project Plan is rescheduled and all Epic Sets are pushed forward – the next upcoming Sprint consists of unfinished or failed tasks from the previous sprint, Reserve Sprints getting less by 1 sprint.
If more than one Sprint fails at GB level, the project must be considered a troubled project and its termination or reset must be considered as one of the necessary actions to match expectations.
Metaphor of franchise
SCRUM can be thought of as a franchise with a known name (brand), system of how to operate (rules, activities) and quality control (certification). The only difference is that there is no strict franchisor, which regulates how to use SCRUM and the activities in it. SCRUM is also a free franchise, and anybody can use it, although it might just be on paper. SCRUM is hard to use, and many companies struggle to implement it. It comes with a large knowledge base and there are many prerequisites to successfully apply SCRUM in your projects.
As a franchise, SCRUM is about the brand – it is stylish, innovative, modern and it is what everyone talks about. That is why many companies choose SCRUM and do their best to deliver projects with SCRUM. Because SCRUM lacks a strict franchisor, it’s standards do not get enforced and the company’s SCRUM might not be the factual (as written in scrum.org). Companies that experience successful projects using SCRUM, popularize the framework and make it admired by others. The ones that fail, on the other hand, do the opposite.
Using SCRUM as a franchise is a great opportunity. If you do your research and implement it correctly the productivity and success rate of your projects will increase. But if you get it wrong you will struggle, and the overall efficiency will decrease. Therefore, SCRUM Fixed Price can be used only if it is implemented correctly, as a franchise.
Complex adaptive systems
IT systems are complex adaptive systems. Any process that has countless steps and they can be different each time is complex. The problem with the waterfall method is that we do not know which workflow is going to be used. We can only imagine, speculate and invent. From the beginning, when we plan the system, we use an idea that is understandable for the product owner, systems analyst (or other competent person). This person describes the vision of the system and how he thinks it’s going to work. This is where an obstacle appears – when the system is being developed there are many decisions that have to be made and product owner or systems analyst cannot always assist developers, that is why developers make decisions themselves. What is going to happen when a user inputs something, what is going to happen if a user chooses something and many more. The decisions and processes multiply exponentially and programming cases multiply exponentially. That is why the most common scenario is developed. This increases the complexity, because each person can have a different understanding about the scenario – illogical paths do not get developed.
Adaptiveness increases when we see a part of the system that is developed. Either it is logical or illogical (according to the decision maker) and when it gets used a lot it can also become more logical or illogical. The system forms adaptively, in each step adding something logical. The developer only creates a small portion of everything – it can be useful or useless (if the decision maker expresses it that way). Developing systems using waterfall is risky, because the adaptability is lost. The one most common path is described as requirements for the system – the logic and adaptability come afterwards. Ths paradigm creates a conflict that has to be resolved.
Agile and SCRUM FP addresses the adaptiveness of systems. The complexity cannot be prevented, because the system is always changing. It is as it is, but the significance, control and patterns can change. And when they do, it has to be developed. The naive vision for the system while writing the requirements is always different from the developed system at the end. The complexity becomes larger during development and it has to be addressed.
If we know things prematurely, we can save time developing things, only making what is necessary. From all of the system, we only pick the part that is needed the most and develop it. By using adaptiveness we reduce the risk of making things that are not needed. In reality, the workload can be a lot larger than the requirements suggest. This is why we have reserves and we plan as well as we can. The most important thing is to ignore the complexity and not develop branches (cases) that are not beneficial and will not be used in actual work. Usually the most common path covers 99% of the usages (if developed correctly), so it is critical to find it.
Sizing methods
In order to determine the size of a particular IT project some previous experience is essential. Usually the following methods are used:
- Order of Magnitude. When using it, you compare the functionality to be delivered to other known and completed or similar functionality. Expected workload of unknown functionality is compared to something that has been already delivered. New functionality is compared with some existing functionality in terms of size and complexity, so a multiplier has been found (new functionality is X time more/less than the one we know). This multiplier is used to multiply cost of known fun
- e. Using this method, each epic is not measured based on a standard or universal reference, but comparing it to other epics that have been done or will be done in the project (which are estimated). For example, to size an epic that could be 4 points large, you should consider whether it is two times larger than an epic worth 2 points and two times smaller than an epic worth 8 points.
Secondly, expert judgement is the most accurate and only requires time for the expert. A chosen field expert is asked to measure the workload of each epic based on his previous experience and expertise. Most cases it takes less time, because the decisions are made unanimously. Usually, the expert will ask questions to clarify given information and for this the person with the most knowledge about the product should be involved. For this method to be used it is crucial to choose the right expert for the evaluation or else the estimates may be inaccurate.
Thirdly, disaggregation is used for clarification and, although it takes the most time, it also gives the biggest reward. The idea is based on splitting the epics (tasks) into smaller, more manageable parts (other epics). If all the epics have a workload of 1 – 8, it is very hard to estimate an epic that might be 20, 30 or more points. Also, it is hard to find other similar epics and compare them to it. So, we use disaggregation to divide the largest epics into parts that form logical epics and can be developed as separate parts.
Risks of Erosion of Value
SCRUM is built around individuals. So success of the framework is purely built by the success of the individual team member. So much of importance is to define what value means for a particular team. If a team’s dynamic changes from high-performance to least-energy consumed then value definition might shift from features to lack of stress or abundance of free time etc.
Sometimes it happens if the SCRUM master fails to define the direction, or fails to understand the core value concepts, or where high performance is not praised, instead lazy performance is very much accepted as long as it can be explained. So the velocity of the value creation gradually decreases.
With SCRUM FP such problems would be discovered more quickly than in traditional SCRUM or Kanban frameworks.
Documentation in SCRUM FP projects
Documentation is an important part in projects developed with SCRUM FP like in any other project. It is important to differentiate between documentation containing plans and vision or actual situation. In SCRUM FP we value technical documentation and content that focuses on factual information. Usually reserve sprints are used for creating documentation, because the development has been finished. The purpose of documentation is to ensure product’s sustainability and successful maintenance, not to manage development or control scope. The code is written first and then documented. This ensures that the documentation is more precise and takes less time to write. It is also beneficial to document only the part that is relevant (excluding sample information). For the process itself, the documentation is not mandatory, the product owner is responsible for the requirements. The base documents that should be written are – system installation, management and use of the system, as well as architecture. The client knows the most important features of the system and communicates it with the supplier.
Project flow TBD
It is convenient to look at the project as happening in the time.
Every project will follow the same routine of its workflow:
- Project start
- Project progress control
- Project ending
So it is convenient to define routines to look for those events:
- kick-off meeting
- steering meetings
- close-up meeting
- Pace control – pvg
- Sprint ok/nok concept