Today, we’ll discuss the Software Development Lifecycle, some of the approaches used, and why Flying Donkey uses the agile methodology to create value for our clients faster.
Anyone who has been in business for a while is familiar with the product lifecycle: a new product is created, it is released, marketed heavily, early adopters of new products purchase it, tell their friends about it, more people buy it until it becomes a normal household item, marketing is reduced, then something new comes out and replaces it. Slowly that product fades out of use. Software works in a different manner because of the speed of technology changes and the fact it can be updated remotely.
What is the Software Development Lifecycle?
The software Development Lifecycle is the process that a software company uses to develop software, release it to the customer or the public, then routinely update it until it makes sense to develop a completely new software.
Why is the Software Development Lifecycle Important?
The software development lifecycle is important because it impacts how quickly and costly the software is brought to market. The approach taken can lead to success or failure of the goals of the software development project.
What are some of the Different Methodologies to the Software Development Lifecycle?
Some of the common methodologies are:
- Waterfall- This approach is the standard project management philosophy where you plan, implement, verify it meets the requirements, then close out a project. It works great when you are building a house because you can’t have a roof without walls to support it, but doesn’t work as well in projects like software where parts of the project can be done separately and then brought to together. This methodology normally takes the longest and delays tend to build up easily.
- Agile- An agile approach uses smaller goals and customer feedback to produce usable software faster, then adds more functionality frequently based on input. Using an agile approach requires more teamwork and collaboration, but responds well to needed changes because the customer is more involved in the design process.
- Scrum- Scrum is a cross between Waterfall and Agile where each person takes a goal and focuses on it then they are brought all together. Scrum speeds up the process compared to waterfall, but may have larger, less frequent releases than a pure agile. In this methodology the project manager, called a scrum master, primarily manages communication, while the team focuses on accomplishing their tasks.
- Big Bang- This approach heavily focuses on programming but utilises little planning. This approach is risky and can lead to software that does not truly meet the objectives. If someone is highly skilled at programming and the person the software has to satisfy this approach makes sense but can leave a dissatisfied client if the software doesn’t meet expectations. I wouldn’t suggest using this approach.
- Spiral- If risk is a concern, this is the methodology for the project. Risks are going to materialise in any project. Planning will prevent some risks, but some just need to be responded to when they occur because planning how to avoid them takes more time than solving the issue if it arises. It is called a spiral because as it progresses through the stages the costs get higher, making it ideal for when you want to start with lower costs and increase spending over time. This approach to software development frequently encompasses many of the elements of other methodologies.
- Prototype- Much like prototypes in other industries, this methodology focuses on creating a sample of the software that normally isn’t fully functional. Once the prototype is approved, work is begun on giving the software the full functionality. Wireframes are an example of prototypes. Using them is successful for getting the look right, but it’s not going to be able to be used until the functionality is added. Developing a prototype is a way to reduce the risk at the beginning of the project when the costs are lowest.
Why do we combine the agile methodology with prototyping to manage projects at Flying Donkey?
The agile methodology to software development allows us to respond quickly if client priorities change. We start by establishing your most pressing software needs, then we develop specifications for how to meet them. From there we design a wire frame, a concept taken from the prototype methodology, to make sure the application has the look you want. From there, we create the functionality desired and allow you to test it on a quality assurance site before live implementation occurs.
During the whole process, you are able to observe the project management through Slack and Jira to manage projects, track issues, and observe the daily tests of the currently used software’s functionality. Should there be issues, we need to be able to respond to them promptly. An agile framework allows us to rearrange priorities easiest to increase our clients’ satisfaction. To learn more about our development process, go to our Development Process Page.