Working with a lot of people around the Information Technology sector I always try to make sure they understand the basics of the Software Development Lifecycle(SDLC). I have worked with many technical recruiters and technical account executives to educate them on the different positions and roles.
Early on in my career I noticed how many people didn’t have a basic understanding. Later in my career I realized what an opportunity it was to serve and educate these people. This lead me to develop training and workshops to give people a better understanding. It helps technical staffing firms serve their customers better.
I like to start with the Software Development Lifecycle to help people understand how a team works together to produce software. Each role is important in the process and at each step different tasks are done. This outline of the five individual steps shows what each step entails.
Analysis – Gather requirements and talk with the stakeholders
Design – Setup initial design and discuss factors and limitations
Coding – Develop solution to meet requirements and design
Testing – Evaluate changes for defects
Implementation – Install and monitor solution
Analysis and Design
In the analysis step, we have Business Analysts, Systems Analysts, and Functional Analysts involved. They begin to document the process of what is needed and prepare to hand this off to the design team. The design team is made up of Web Designers(if it is a web application), User Interface specialists who layout the design along with the User Experience experts. User Experience experts try to design intuitive interfaces that need little or no instruction. The design is not just for the front end appearance but also the application design from the Software Architects.
Once the design is complete the coding can begin. Software developers and mobile developers can begin to work on starting to build applications or mobile apps. They might require the help of Integration Specialists to link back-end services to the front end application or other services.
Testing is the next step in the process to begin to verify that the application requirements are being met. Quality assurance is the name most companies use for testing or sometimes they just call it QA for short. Quality assurance is usually made up of manual testers and automated Test Engineers. They design test plans to cover possible issues that may arise from the development process. Automated Test Engineers have an understanding of development and design applications that test custom software.
Once an application is ready to be released it is up to the Infrastructure roles to make that happen. Systems administrators keep the systems running, release new software, and perform updates and upgrades. Database Administrators or DBAs for short monitor database performance and help setup and design databases that store information. Network engineers install and troubleshoot computer networks to ensure proper performance.
The process has a few steps understanding each one and the roles that perform these duties help us gain insight on what the big picture is in software development. Understanding helps facilitate better conversations with your customers and enable you to be a collaborative source for information.