An Agile mind-set soon exposes what actual resource constraints are, giving stakeholders and investors a better understanding of what kind of return they could expect. Stakeholder alignment is key to our software factory. We strive to make sure that the development team’s interests are always aligned with those of the customer. First and foremost, we achieve this by not charging time and materials. Our approach to costing a product is focused on an output delivery model. In other words, the customer pays for what they get, not for effort.
We strive to continuously to add business value, drive efficiency through reuse and reduce complexity, a guarantee that we can provide because we have skin in the game.
The Software Factory development process explained step by step:
- We engage with the customer. An account manager will be assigned to the customer account and will facilitate all communication with the customer throughout the lifetime of the customer journey.
- We vet the customer and the business idea. Firstly, we try and establish if all stakeholders’ incentives are aligned. Secondly, we establish budget and funding. If we mutually decide to move forward we will move into a quotation phase. The quote will be provided after step 6.
- The customer prioritises immediate requirements. We help the customer create a minimal viable product (MVP) and to prioritise accordingly.
- Together with the client we capture all the requirements into our project management tool. We help to identify all required people and roles. Typically, a customer needs a business analyst, a product owner and at least one tester. These people will be made available from the customer side or from our side except for the product owner. We will then give them access to the project management tool.
- Together with the client we decompose the requirements into components. What this essentially means is that we identify components and pages that will need to be built in order to fulfill the user stories.
- We play planning poker and score each component’s complexity accordingly. We assign component complexity points to each component. We will use these points to measure our velocity while we develop the components. A quote, detailing cost and timelines, will be provided to the customer for sign off at this stage.
- If quote is accepted, we will start developing the components.
- We test the work before handing it over to the customer to test.
- The customer tests. The testing can be done by the tester that was identified in step 4 or by the product owner. The tester might also be fulfilling multiple roles, such as business analyst / tester or product owner / tester. Only once a component is signed off on user acceptance testing (UAT) does the points of that component count towards the development teams velocity. This is also the point at which we invoice for output delivered.
- Release software into the wild, using one-click deployment and feature toggles.