When a client with a new project idea approaches us, we will schedule a meeting to learn more about the project. The meeting usually follows the same arc; we discuss at a high-level the features of the system they are envisioning, we describe how Connamara writes software (BDD, TDD, CI) and why that is important, we discuss client timelines and our staff availability.
Finally, the client asks us for a “ballpark estimate” of the time and cost. From the perspective of the client this is a reasonable request. They have either a budget that has been allocated for the project or some notion of the value they might garner from the project. Or, they have some experience delivering software and believe they have an idea of time and costs.
Being asked to give a “ballpark estimate” after only hearing the high-level vision of the project, might seem like, as Mike Cohn says in his excellent book, Agile Estimation and Planning, “Being asked to estimate how long it would take to paint a three bedroom apartment without ever seeing it”. However, we must consider that we are being asked this question because we have built and delivered systems in the past and should have some, albeit rough, idea as to the time and cost of the envisioned project.
How to Answer the Final Question
Knowing that we are going to be asked the “final question” it is always better to do a little homework first. Typically, before the initial meeting there will be one or more phone calls where the client discussed the envisioned project. These preliminary phone calls typically are vague in nature. Maybe the client trying to determine our skill set or experience or maybe they are reluctant to discuss details before an NDA is in place. The important point is that we will have some fuzzy image of the project prior to the initial meeting. We will know for example, if the project is a FIX connectivity project, web based, mobile development and so on.
We are lucky at Connamara in that over the 17+ years of doing custom software engineering projects we have collected data on the actual time it has taken to do certain types of projects of varying degrees of complexity and scope. So let’s say that going into the meeting the client is looking to connect his trading strategy to a FIX enabled exchange. Well we’ve done several of these type projects. We know how long each took. So we can provide a reasonable range of estimates for the client’s project based on experience – not just a wild guess.
Having this estimate at our fingertips demonstrates to the client that Connamara has the experience to deliver their envisioned project.