Choosing the right Software Development Agency for your project is crucial for a successful (web)app. However, this is easier said than done. The market for software development is fragmented and it is often difficult to determine the quality of an agency beforehand. It is not surprising that clients often rely on referrals. Yet, even if one has a set of agencies, one still needs to choose between these contestants.
Being a Software Development Agency ourselves, we have been on the other side of the table. Right off the bat with our first clients (please checkout our cases), we started using an easy framework to create value for our clients. We will share this framework with you, not as a fixed all-in-one process that applies to all projects but as a guiding hand. Allowing you to determine whether a specific agency fits you and your project.
There are multiple ways to define the software development cycle, but it could be boiled down to three overarching phases: analyse, build and grow. As a client, it is critical to evaluate the agency on each of these phases. All of these phases build-upon each other and the agency needs to fully understand the ramifications of choices within each stage. The difficult part for you is to deduce all the necessary information from just the proposal of the agency.
Let’s go through them one-by-one and highlight the key focus points.
During the analyse-phase, the client and the agency research the problem and set the stage for the following phases. Therefore, they first need to get clarity on the business need/problem. For you it is key to determine what the agency’s proposal is to facilitate this process? Will the agency organize workshops? How often? Who will attend these workshops? only the project manager or also a programmer?
In these workshop(s), the client and the agency need to align on the following topics:
- Problem statement
- The goal
- Responsibilities (through a RACI model)
- The roadmap
- Functional requirements
- The software architecture
- Stories for the build team
This phase will consists of a lot of back-and-forth and that is okay. It is important to establish common ground so everyone is on the same page. In our experience, progress is much faster if a developer is part of the conversation at this stage already. Although there is a case to be made to split business analysis and the development team, continuous alignment with the dev team is key to make the project a success. In the early stages, having a lead developer at the table during the alignment process is key.
Key focus points:
- How does the agency structure this phase?
- Who will take part in the workshops? Only analysts or also developers?
- What is the definition of done?
- What happens when the agency does not deliver what has been promised? Who will pay for the changed needing to be made?
- What happens when the client does not have the time/resources needed to provide the agency with sufficient information?
If everything went well, both the client and the agency have a clear view of the path forward. Now it is time to get one’s hands dirty with coding. Even though, most of the ideation has happened in the analysis-phase, communication between the agency and the client remain paramount. Many software development agencies work according to the Agile-methodology (so do we), in which work is delivered in small increments during a so-called Sprint. This allows for rapid feedback by the client (and by potential customers). There are also other methodologies out there. Just make sure that you and the agency are aligned on a certain methodology.
Key focus points:
- Does the agency have the (technical) know-how to build the product/service?
- How (often) is the clients going to be informed on the progress made by the development team?
- How is the agency going to minimize the risk of delay?
It is easier to build a product than to build its growth. Not surprising that many software development agencies often don’t serve as a sounding board after having developed your product. While this may be what a client wishes – the agency would merely help implementing the software into the client’s IT infrastructure – it differs on a per project basis.
For other projects, supporting the growth of the project could prove a fundamental stage where you might need assistance. For example, to add new features as customer requests are being submitted.
Key focus points:
- How will the agency help during the implementation of the software into your own business processes?
- If the agency helps during the growth phase:
- How are you and the agency working together? On a per feature basis, or continuously?
- How do you measure each other’s performance and the performance of the project as a whole?
- If the expected results are not met, how will you apart ways with the agency?
Coding Delta is a boutique software development firm helping our clients generate efficiency through business automation, by gaining insight into their data or by kick-starting their new ventures.