An iteration is a cycle that includes planning, development, testing, and an output that is a release candidate. This cycle allows for a frequent release schedule and being open to changes. This also enables us to prioritize work based on business value.
We ensure that what will be developed for the iteration is clear and that the requirements are ready to begin development. The planning session is also meant to estimate what can be included in the iteration. Aligned with your business needs, the chosen group of important features will be broken down into tasks, estimated, and prioritized.
We translate the requirements into high fidelity designs. We try to put ourselves in the shoes of the end users in order to create a design and experience that is both functional and attractive. During the development phase is when we do the actual coding needed for the target release. We start to build the system using the chosen programming language and are working to transform the user interface design into code. The development phase is closely connected with the testing phase in order to ensure that the app is working as expected.
The testing phase is critical to ensure a smooth running software. We start to do the functional testing of the system in order to verify that the application works according to the requirements. The team may find some defects which will be communicated to the development team, remediated by the development team, and then retested. This continues until the application is accepted for release.
Towards the end of each iteration, we will provide a release candidate, an application that is ready for release to the customer. We can publish it in production or you can choose to postpone the release to continue with enhancements for a succeeding iteration. An application published in production is available to the customers via web, or via Google Play or App store for mobile apps.
At the end of each iteration or release, you as our partner client relay to us feedback from your customers, so that together with us, we can decide on what needs to be developed next.
Taking an incremental approach allows for flexibility and continuous improvement. We want updates on the hands of our end-users and a shorter feedback cycle helps you know what we should build sooner rather than later. With more insights or a new set of ideas, we will repeat the process to plan, develop, test, release and gather feedback.