Projects from scratch with a fixed price estimate

Projects from scratch are the most interesting for us as we have no technology limitations imposed by legacy codebase.

At the same time project from scratch can cause problems when clearly defining requirements to the product that should be delivered as it is not easy to transfer the whole vision of the customer to the team. Forma Pro does its best to eliminate all possible problems that can happen during planning and development of a project by introducing clearly defined process, however for a large projects including R&D work it could be only possible to provide a fixed price estimate for some initial period only.

Also fixed price projects are usually not complying with frequent scope changes, because each change initiates replanning of all next deliverables. So if market situation may require major changes  it’s better to consider another type of contract.

The general workflow for a project includes raw budget estimation, planning to get in sync with the customer concept, estimating, development and release stages.

 

  1. Raw budget and schedule estimation.

As the very first stage we do a quick raw estimate of the project based on a short customer description. We provide a rough order of magnitude estimation, which is  a range of man-hours that we think will be spent on a project. This information can be used by a potential customer to estimate a raw budget needed for the project and make a decision if to start project with us or not. This is not billable stage.

Result: Raw budget for the project which is to be accepted by the customer to move forward.

 

  1. Planning

During this phase we gather requirements and discuss all project details with the owner of product vision to write down a set of user stories that forms product backlog. User stories, functional specification, wireframes or any other project documentation available from the customer can speed up work during planning.
Result: Prioritized list of backlog items describing product functionality in the form of user stories.

 

  1. Estimating

The goal of this stage is to provide a final budget and development plan for the project. As the first step customer is asked to prioritize user stories defined in a backlog. Than using this information we split user stories into sprints (or milestones) and define calendar plan for each sprint. Each sprint is 1-3 weeks long and after each sprint we deliver results to the customer.

Result: Delivery schedule, final deadline and finalized budget are provided.

 

  1. Development

When sprint planning and estimates are done we are ready to proceed with the development. Our customers can be sure that their project is developed using high quality standards, effective methodologies and modern engineering practices like:

  • full code coverage by functional and unit tests – approach that guarantees well tested and high quality code
  • continuous integration – automated builds of the project ensuring all parts work together

During the whole development we keep customer involved into the process. We consider this to be very important as without customer feedback it's not possible to build the product that meets all customer requirements and expectation.

Sprint result: Delivery of a product increment introducing new functionality as per schedule; each sprint ends with a demo.

 

  1. Release

The last phase is releasing the project. This includes deployment to the live server, beta-testing and if needed performance testing

Result: project closing.

 

After finishing initial project according to a fixed price type of contract it’s possible to switch to a time & material scheme which is more flexible when it comes to changes management.