The Software Development Life Cycle

By Stuart Smith | October 1, 2020 |

The Software Development Life Cycle

So you want to develop a software project. Maybe you would like to have a mobile application to support your customers. Or a back-office application to streamline business processes. Maybe you run business processes using spreadsheets and you want to make things easier.

Whatever the case may be, you are basically going to become a software developer. Not in the literal sense of writing the code yourself, but you will be running a software project. Even if you are going to hire a company like Saritasa to do the actual coding, they will be doing so at your direction. So what are you getting yourself into? Welcome to the Software Development Life Cycle (SDLC).

There are several variations of the classic SDLC. For the most part, developers agree that the cycle has the following phases:

  • Design
  • Implementation / Development
  • Testing
  • Deployment/Integration
  • Maintenance

There are a couple of different methodologies that are used to build software (Agile, Waterfall). We have a post on our blog about that, but for this article, I’d like to simplify things a bit. Let’s jump in!

app development planning and timeline

UX/UI and Design

The fun part of building custom software is the first phase. It’s also the most important. We are talking about the Planning, Analysis, and Design phases listed above here, I think these three phases are done in conjunction with each other and are typically combined into this first step we are calling UX/UI and Design. This is really the part where you get to tell the software developer how your business processes work and what you expect from the software to match those processes. There is also an opportunity here to use software to change your business processes to make them even more efficient. Software can often enable or streamline processes more efficiently than manual methods.

This is a great time to gather requirements for the application (if you haven’t done this already). You may also take a close look at how you may improve business processes with the software. Your participation here is critical. You know your business better than anyone. You need to think carefully about how you think users will behave when using the application. A software development company can and should help draw out these requirements by asking lots of questions during this first phase.

mobile app ux/ui

Wireframing

During the UX/UI phase, you work with a professional that specializes in how people interact with software. You explain your business processes and they translate that into what to display on the screen. They create the controls you need to operate the software. In the end, you get a set of blueprints that layout each screen and how they will function called wireframes. Wireframes are simply sketches of each screen that outline what they will look like. A good analogy would be to compare this to building a house. The wireframes are the blueprints for your application while the designs are the 3d renderings. You can imagine what it would be like to use the application and fine-tune things to make it as efficient as possible by reviewing the wireframes.

Designs

After the wireframes are complete you will develop the designs and design specifications for the application. A graphic designer will work with you to determine the look and feel of the application.

Your input here is important. Providing clear direction can help minimize the number of revisions necessary to complete the designs. If you provide vague direction like “I want my app to look cool” your first revision might be pretty different from what you have in mind. However, a good designer will ask good questions to draw out your preferences. A great designer can make your app look cool on the first go. Completed designs will document what each screen will look like and how it will behave. The colors used, the shading, animations, font choice, and even the way a menu might slide into position or what happens when you swipe the screen should all be laid out in the designs to show the look and feel of your application.

During this whole design process, it is important to stay engaged and review iterations carefully. This is the best part of developing applications. You can easily make changes and get to see your application take shape.

ui/ux wireframes and designs for mobile app

The Black Box of Development

The next phase is a bit of a ‘black box’. You don’t really get a good view of what is going on inside. The development phase is when software engineers actually code the application. You should be kept informed about the progress during development, but you don’t interact directly with the developers as you would with designers.

You typically would not be concerned with the task distribution of development between various engineers. Instead, a project manager would handle that. You will be kept updated on the total percentage of the coding complete. During the design phase, you may meet a few times a week. During development, a weekly status meeting is typically sufficient.

There Will Be Bugs

Once the development phase is complete it’s time for quality assurance (QA) and acceptance testing. The first time you get to see a working version of the software is an Alpha release.

The Alpha Release

The Alpha release of the software is a mostly untested first release where all the software components have been coded, but not fully tested. It can be pretty ugly and have more bugs than you might expect.

There is a balance here as to when an Alpha will be released outside the development organization. On one side of the scale, you would like to get the application seen by people outside the development team as early as possible to ensure that what is developed is close to what was expected. On the other hand, you would like to perform some testing so that the application is usable and testers don’t become frustrated by problems during the initial review. The longer you test the Alpha the longer your stakeholders have to wait to see the application. Remember, the Alpha release is just to provide a cursory look at the application to make sure it is not too far off base. It’s not the finished product by a long shot.

The Beta Release

After the Alpha release, the software should undergo a round or two of QA testing. The next release of the application would be a Beta release. There are different forms of Beta release like a closed beta, public beta, etc. The point here is that the beta release has undergone testing by the QA team to ensure that bugs are at a minimum. It’s not to say that the beta release will be bug-free, but it shouldn’t have too many issues. There will always be problems that are difficult to find until your end users actually start using the application. This is why it is a good idea to have some end users participate in the testing process.

During the QA phase, you have the opportunity to test the software. Not only should you make sure that it functions as designed, but you can also get a better feel for how well it matches your business processes. You can ask users in different areas of the business to try out the software in a public beta. They can test whether they will be able to easily adapt the software into their workflow or if they will have to change their workflow to adapt to the software. There is often a lot of fine-tuning and tweaking to the user interface that happens in the QA phase. This is normal.

The last phase of testing is acceptance testing. This is your opportunity to confirm the software does all the things you wanted it to do when you first came up with the concept.

Saritasa Employees

The Finish Line

Once testing is complete it’s time to release. Releasing the software to the end-users can be a little involved and usually takes a bit of time to get the application across the finish line.

Deploying a web application typically means setting up a domain, an SSL security certificate, and deploying the application to a cloud hosting platform. You’ll need some help setting up the production environment to handle the expected load and still provide good performance.

If you are deploying a mobile application you will probably need to distribute the app via the Google Play Store or iTunes App Store. You will have to create a developer account for Apple and/or Google and then complete the process to submit your application. Your developer should be able to help you here. However, you should be prepared to provide the descriptive text for the application and choose the screenshots you would like displayed. You will need to have a website for support of the application or at least a page on your company’s site to contact support. The review process for each app store is different, but you should plan about two weeks into your release schedule for the application review process.

business meeting

There is Really No Finish Line

For the most part, software development doesn’t often end at deployment. You will probably want to make improvements to the application after release. If the application is successful and popular, you will likely want to continue the application development to improve it and add additional features requested by your user base. You will need to maintain the application for some time after release, even if you are not adding features. Users will always find bugs that were not uncovered during QA and these should be fixed as quickly as possible.

Software development is a team effort. Project managers, UX/UI experts, Designers, Technical Leads, Frontend Developers, Server Developers, Technical Architects, QA testers, DevOps engineers, and everyone on your team should work well together. If you are the one developing the application you actually lead the team with help from the project manager. Even though you may hire a company like Saritasa to help you develop an application, you really are becoming a software developer yourself when you make the decision to build an application. Being informed about the software development life cycle helps make the process run smoothly. Developing your own application is an exciting and rewarding experience, especially if you have a great team to support your efforts.

Stuart Smith

Stuart Smith

Stuart has been working as a technology professional for about 30 years. He got his start working in systems operations/systems management and then moved on to software development. He has a diverse history with technology working with software applications and systems ranging from avionics, web applications, disaster recovery, license plate recognition, content management, and systems monitoring.