The path that leads to having successful software can be rough and bumpy. It can take a few weeks or long months. The way it goes depends on the product itself – on what features it requires and how complex they are – but also on how you approach it.
Between having an idea and having a working software product, there are some steps to follow and milestones to achieve. First, you need to validate your idea and build a proof of concept. Then, you collect feedback and build a prototype – the first version of your product that actually works. Then you gather data, collect feedback, and introduce improvements to get to an MVP. And the path does not end there! After that, you try to scale your software up, maintain it, grow new features, acquire more customers, and turn it into a sustainable business. But let’s not go that far yet!
When you are at the beginning of that path, you may wonder how to approach software development, where to start, and what to focus on at different stages of the process. Let’s see!
What is Software Development Life Cycle?
Software Development Life Cycle (SDLC) is a process that produces software with the highest quality and lowest cost in the shortest time. It involves several distinct stages, including planning, design, building, testing, and deployment.
The idea that stands behind software development life cycle models was to lower the cost of software development, at the same time improving quality and shortening production time. SDLC is a continuous process, which starts from the moment when we make a decision to launch the project, and it lasts until the last days of your application, being a part of every phase of the development, fixes, and improvements.
Software development life cycle (SDLC) can be applied to different project management methodologies – with some differences, of course. In Waterfall, for instance, you finish one phase and then start the next one. This approach includes gradual execution of every stage completely. In Agile, on the contrary, we divide the project into sprints and apply SDLC phases to each sprint. After every development iteration, the client is able to see the result and understand if they are satisfied with it or not.
What are the phases of SDLC?
No matter what project management methodology you choose, there are certain phases of the software development life cycle that you need to go through. These are:
1. Planning and requirement analysis
How do you imagine your software? What do you want it to be like? Is there a similar solution on the market? What functionalities are you considering? How do you see the project’s goals? What are the pain points? Who are the potential users? What are your thoughts about potential milestones? At this stage, you need to define your requirements, estimate the costs and required resources. Focus on your potential users’ needs, think about the key business requirements, and try to map your business ideas.
2. Designing product architecture
It’s time to decide on the deadlines and priorities, project scope, and technology stack. From then on, you can plan the development of your product.
This phase of the SDLC is about turning your requirements & specifications into a high-level architecture and a clear project roadmap. You need to get an overview of the entire system and identify the main components that will be developed for the product.
3. Development and programming
Simply put, the third SDLC phase is about delivering what you’ve planned.
Note that the process of software development life cycle does not indicate that you have to finish one part before moving to the next SDLC phase. In the case of the development phase, your development team will focus on delivering some working part of the software product (it may be a small, single feature or iteration), then testing it, deploying, and going back to sprint planning, development, testing, and deployment of another part of the project.
In this stage of SDLC, the Quality Assurance team steps in the process to make sure that the application is of the highest quality and that it meets the requirements.
This part of the SDLC process often happens in a limited way at first. You don’t deploy the whole software product at once! You do it step by step, delivering a new part of the project with every deploy. Your goal is to give your customers the simplest and fastest way to discover your application and recognize the value it brings. Then, depending on feedback from the end-users, you are able to adjust the initial project roadmap to their actual needs.
SDLC phases vs. Lean software development
And how does this SDLC process relate to the Lean development strategy and the stages mentioned in the introduction of this article (proof of concept, prototype, MVP)? At the beginning of every stage of Lean software development, you will need to gather the requirements, plan the overview of a project life cycle roadmap, design whatever you plan, build it, test, deploy, and… repeat. The same SDLC process will apply both to the whole life cycle of your application development and to the development of the smallest pieces of your software. Working in sprints? Perfect. Most of the SDLC phases can be applied there as well: you plan the sprint, you develop the feature, you test it, deploy it, and go to the new planning.
Basically, you will apply SDLC phases to different stages of the Lean development process – starting with building a proof of concept (even if there is no actual application yet), through the prototype, MVP, up to developing and maintaining a fully-featured product.
Stages of lean software development
1. Idea/Feasibility study
This stage is in fact very similar to the first phase of SDLC (planning and requirements analysis). You have the idea, you need to validate it, work out a software requirements specification document, and a detailed plan of the development. The goal of this stage is to understand your customers, clarify your requirements and end up with a clear project roadmap.If you don’t have experience with planning the software development process, it may be a good idea to go through this stage with some external help during the discovery workshops. After the workshops, you will have your idea crystallized, and be able to plan high-level architecture and technological stack, estimate the cost of development, organize large tasks, and get a clear project roadmap.
2. Proof of concept
A proof of concept is made to show that you have a problem/solution fit, to prove that you can meet your customer expectations, and to convince people that you can make a change.
In order to build a proof of concept, you need to create the smallest part of your product vision that makes the change to its target group. It doesn’t have to be high-quality software yet! In fact, it can have various forms: white papers, mock-ups, visualizations, pre-miniaturization hardware, key algorithm, or a mathematical proof for a hypothesis. Your goal is to create the smallest part of your product vision that makes the change to its target group and get feedback on that part. Getting information from potential customers will help you develop this software in a thoughtful manner, and avoid making unnecessary features.
A prototype is the first working version of your product. It is a simple version that instantly brings your customers to the magic moment, which is when they recognize the delivered value. The purpose of this stage is to find customers that can be convinced they will benefit from using your software, and be able to close the deal.
Just like at the previous stage, it’s now important to collect as much feedback as possible (both direct and indirect, observing how your customers are using your application), and make decisions based on that feedback. Before you go to the MVP, you will need to introduce the necessary improvements, add new features, and improve the user experience. Following the SDLC process, you will be getting through the development, testing, and deployment phases – all until you have a version of your product that will be good enough for the early majority to desire it.
This is the last version of your prototype, an acid test of your software. Based on the feedback gained through the earlier stages, you should have analyzed user behavior, verified your hypothesis and tactics, and optimized your product accordingly. Note, however, that MVPs are not always what you’d like to build or end up with! Just like at the previous stages, you follow the “design – develop – test – deploy” path and iterate.
By the end of this phase, you should now be able to prove – with numbers! – that you are able to scale your sales, access new customers in a repetitive way. You should be able to predict revenue and know your basic metrics like ACV, LTV, CAC, time to close, and effective lead generation with the right KPIs.
5. Fully-featured product
Your new goal is to keep this product alive (that’s why it is sometimes called the maintenance phase), develop it further, and attract new groups of customers. It’s time to make money, show a good ROI to your investors, and consistently head towards fulfilling your vision.
Software Development Life Cycle
As you can see, Software Development Life Cycle (SDLC) is a general concept that describes the process of developing applications or any other software. The idea is to build a software product of the highest quality and to lower the cost of delivering software by applying the best, proven, and most efficient practices of software development. SDLC can be easily adjusted to different project management methodologies and mixed with different development approaches. Combined with Agile principles and the Lean development approach, it becomes a powerful tool for building successful applications.