Building a real-world application is not just writing code. The application development lifecycle covers the stages software goes through from idea to production and beyond. Every application, whether a simple API or a complex cloud platform, follows a path through planning, design, implementation, testing, deployment, and maintenance.
In practice, teams rarely follow these stages in a strict sequence. There are multiple approaches to organizing this process: some teams complete each phase fully before moving to the next, others work in short cycles and revisit stages frequently, and some aim to automate as much as possible so that building, testing, and deploying happen continuously. The right approach depends on the project, the team, and the constraints, but understanding the underlying stages is essential regardless of how you organize the work.
Working on a software project is not just writing code or executing tests. It involves many steps along the way. The chart below shows a few common steps taken in modern software development:

https://excalidraw.com/#json=vFdyAdG60DdOD9lIJmaBD,wvvDDGHcnAUiwZCh8EOrCA
<aside> đź’
Take a look at the chart above, some of topics will be covered in this week. We will get back to this chart and review it at the end.
</aside>
In this section, we will cover two popular models: Waterfall and Agile. Both are used in the industry for different kinds of projects. However, the Agile approach is more common and is widely used in companies today.
The Waterfall model is the most straightforward approach to software development. It organizes the lifecycle into distinct phases, where each phase must be completed before the next one begins—like water flowing down a series of steps, hence the name.

Source: https://medium.com/@nayanatharasamarakkody/software-development-life-cycle-sdlc-models-aa18fc085f28
The key characteristic is that you don't go back. Once requirements are signed off, you move to design. Once design is done, you code. Each phase produces a deliverable that feeds into the next.
In practice, teams often need to deliver working software quickly and gather user feedback early in the process. This need led to a different approach.
Agile is an approach to software development that focuses on delivering working software in small, frequent increments rather than all at once. Instead of defining everything upfront and following a fixed plan, teams work in short cycles (sprints), continuously gathering feedback and adapting as they go.
The core idea is simple: build a small piece, show it to users, learn from their feedback, and improve. Then repeat.

Source: https://aguayo.co/en/blog-aguayo-user-experience/agile-methodology-in-ux/
Agile organizes work into short iterations, often called sprints, typically lasting one to four weeks. Each sprint follows a mini-lifecycle:
Plan - The team selects a small set of features or tasks to work on during the sprint. The focus is on what delivers the most value right now, not on planning the entire project.
Design & develop - Developers design and implement the selected features within the sprint.
Test - The new code is tested to catch bugs and verify it works as expected. This happens within the same sprint, not months later.
Release - The working software is released so that users or stakeholders can interact with it.
Feedback - At the end of the sprint, the team demos the working software to stakeholders and users, collecting feedback. The team then discusses what went well and what can be improved in the next sprint.
After each sprint, the team has a working piece of software that can be shown, tested, or even released. Over time, sprint by sprint, the product grows.
The HackYourFuture curriculum is licensed under CC BY-NC-SA 4.0 *https://hackyourfuture.net/*

Built with ❤️ by the HackYourFuture community · Thank you, contributors
Found a mistake or have a suggestion? Let us know in the feedback form.