How long does it take to develop a software application?
In this article, we will explore the application development process and the factors that can inﬂuence the length of time it takes to complete a software project. In order to give some tangible numbers, we will be framing our ﬁgures for a single milestone.
Scoping your application
Scoping is the ﬁrst step in any application development project. During scoping, your project isn’t actively being developed. We explore the problem or opportunity your software solution will solve.
The discovery kit has a number of activities we complete throughout our scoping process. We move through discovery, inspiration, ideation and realisation phases, working closely with your end users to ensure the software built is something your users will love. The goal of these activities is to extract valuable information that will assist us in creating the best possible solution.
Completing estimations is the last step in the scoping process. Our estimations process follows a highly scientiﬁc approach considering the risk associated with each individual ticket. The estimations provide you with a clearer understanding of the time required to develop the scoped work.
From our experience, the minimum scope length is 2 weeks, maximum 4 weeks and on average is 3 weeks.
The agile methodology and developing your application
Once we’ve completed scoping, it’s time to move into development. WorkingMouse follows the agile methodology, which we have tweaked over the years to create our Way of Working that our pods follow. Using agile provides greater ﬂexibility during development by dividing work into short phases which enables the frequent reassessment and adaptation of plans.
Iterations vs Milestones
Agile development is comprised of iterations and milestones, which repeat until development is complete. There is no limit to the number of iterations or milestones a project may have. The duration will depend on how you prioritise your must haves, should haves and could haves during the scoping phase. The team will have you prioritise the backlog then estimate on them. A time can be allocated to the development sprint that you the choose. You then decide how many of the must, should and could haves to include in the development sprint to ﬁt within the allocated time.
What is an iteration
In agile, an iteration, also often referred to as a sprint, is a period of time in which a delivery team completes work with the deliverable usually being a single feature or feature set. In most instances, the features or feature set being delivered during an iteration is grouped by functionality. For an example, an iterations focus could be on developing a payment gateway. This could include integrating multiple payment providers and building out the user ﬂow required to make a purchase. All these pieces of functionality bundled together make up the iteration.
From our experience, the minimum iteration length is 1 week and maximum of 2 weeks, however, the length of an iteration is largely dependent on what functionality is being worked on and the collective estimate of those tickets. If an iteration is too long, we will split the functionality out into two iterations to keep the iteration length more manageable.
What is a milestone?
Where an iteration is small groupings of like features, a milestone is made up of a number of iterations that are tracking towards a speciﬁc goal or event. Milestones often mark speciﬁc progress points on the development timeline. Using our example from before, the milestone which the payment gateway iteration fell under may be implementing the eCommerce functionality of the platform.
In our process, a milestone and its length is often largely dictated by the outputs of a scope. What functionality we explore and estimate on during our scoping process is what makes up the development milestone. The length of a milestone is far more difﬁcult to assign a number than an iteration. Milestones for a MVP at a minimum can be as short as 2 - 4 weeks (or one to two iterations) and go as long 3 months. Following the agile methodology, keeping milestone at a reasonable length ensures we can take advantage of the learning’s throughout development.
Application development length varies depending on the requirements and complexity
The actual length of software development is very difﬁcult to assign a number to. The length of any application development project is driven by you, the product owner, through the prioritisation of tickets during scope. The total time spent developing an application depends on your budget and appetite to continue evolving your software. A small MVP to quickly get to market could take as little as 6 weeks, whereas the development of a large, ever changing enterprise project can take years.