Introduction
how do you decide what your next step on a project is let’s hope you’re not relying on a role of the dice especially. When the decision concerns something as costly as software development in that case we suggest a tried and true method like the software development life cycle or SDLC process.
SDLC Process
What exactly is the software development lifecycle? SDLC defines the general steps that are taken to build software by software development teams. It defines the responsibilities for team members during each step of the phase. Now some of these steps may overlap but they generally define the phases of the projects. Also if some of the steps are not successful the project may fall back to an earlier step. So, let’s go ahead and look at the details of the steps of the SDLC.
Feasibility Study
Feasibility study the project team will want to answer some key questions at this point for example can the project be completed on time and can it can be completed. Within the existing budget that it’s been set aside for this particular project also with the existing staffed you have the expertise in-house to do. This kind of project or you’re gonna have to hire out contractors another key decision that’s made at this point is a buy versus build decision. If you have the expertise in-house and it’s a custom type of software do you go ahead and build that with internal staff or is there an existing software package that you could buy off-the-shelf that meets your needs so that’s really.
Requirements Analysis
Requirements analysis in this phase business analysts will build a complete requirement specification. That includes business rules for the system security roles and what different types of people are allowed particular access to the system you’ll look at use cases common scenarios of how people are going to use
the system they’ll generate sample design screens and walk through that with the potential users to make sure that the system will meet their needs and also sample reports are important at this point. Because reports drive the kind of data that needs to be set into the system they’re very important to design at this point. So that you make sure that you don’t overlook any details once you get to the coding or operational phase and you find out that you’ve left out some data details. It becomes very expensive to rework and redesign the system these requirements are need to be approved by the customer
with a formal approval before work begins on the system so that’s it for the requirements analysis.
Design
design phase in this phase software designers will map the detailed requirements into two major design. types the first is of logical design. That’s how the general components will fit together and what is the overall hierarchy of that design the next type of design is a physical design and this will be detailed things such as database schemas that layout the individual fields and table in the database in
their relationship these designs will be reviewed by various departments and it depends on the size of the company but it will be reviewed certainly by software development management an Enterprise Architect. If there is an enterprise architecture and most large companies have this type of capability also be looked at by operations personnel to make sure that they can operate the software and support. It effectively and also these designs will be reviewed by the customer to make sure that everything has been accounted for so that’s it for the design faith.
CODE
The phase that we usually associate with software development so programmers will begin to work on
in code to meet specific business requirements at this time the code is highly targeted to meet specific
requirements that are generated from the earlier steps in addition programmers will look to reuse code from previous projects to save time also unit testing will begin at this point so as programmers write individual pieces of code they will build tests that they can run in an automated way to make sure that the system is functioning as expected and they’ll layer these tests from the bottom up as their building
codes so that they can retest the system at any point in addition many projects will also to begin to do demonstrations at this point to the customers they want to make sure that the software is meeting the needs of the customers and that nothing is overlooked so nobody likes surprises particularly at the end
of the project so that’s really it for the coding phase.
Test
testing phase so this is a critical step to ensure that the system works properly we’ve seen lots of examples over recent years of systems that were deployed and weren’t tested properly it’s very difficult to recover from that trying to operate the system that has lots of bugs or perhaps it wasn’t load tested
properly and you get way more usage than that you thought you were in the system begins to fail in multiple ways so there are multiple layers of testing the lowest level is the unit tests and programmers will develop these while they’re coding integration tests happens to test interfaces to other systems so as bigger components of the system are completed integration testing will happen to make sure that those interfaces work properly the next type of testing is load testing to make sure that your system can support the anticipated number of users that are going on the system there’s been a number of high-profile failures over the last few years where systems were rolled out with lengthy delays performance
problems and a real lack of user confidence in the system when you see these types of problems also user
acceptance testing happens where the actual users of the system will sit down before the system is released to make sure that it meets their needs so that’s really it for the testing phase overlooking this phase can be very difficult to produce a quality product so enough time and money needs to be invested in testing to make sure that your system launch is going to be successful again that’s it for the testing phase
Deploy
Software into production so in this step software is released to the production environment for the users to begin operations complex systems may be rolled out in phases. If it’s a really large system may be pieces of the system are rolled out one piece at a time and a phased approach to limit the risk of having too large of a system to roll out and having too many problems to address in that phase system outages may be required to perform software and hardware updates a lot of times these types of deployments are done off hours maybe it’s done on a holiday weekend or late at night or very early in the morning. So you want to deploy the software when there’s very limited usage on the system so that’s it for the deployments stage.
Operate/Maintain
Operational and maintenance phase support operations will begin at this point to ensure the smooth operation of the system a help desk is usually formed to support users and problems and questions. They happen as well as operational support from the software and development teams software fixes are
developed at this point and routine patching and maintenance operations begins. So things like patching operating system updates routine software updates all of these things occur during the operational and
maintenance phase so that’s the last step of the process so let’s go ahead and look at a wrap-up of the sdlc so why is the SDLC referred to as a cycle.
the process moves from one step to the other and there’s also a feedback loop to accommodate changes and/or failures so if you fail in one particular step. so maybe you run into problems and coding you may have to move back to the requirements analysis phase to fix that also the entire process will repeat itself for major releases so once you’re in operations many of your users or your business will change and their anticipated new features that need to be developed for the system so the entire process will start all the way over again for the next release so that’s really it for the software development cycle.
Summary
These processes help software development teams plan their activities in addition some companies may add additional steps. That meet their specific needs they have may have particular processes that they have found to help them be more successful. We’ve talked about that some steps may be repeated to accommodate changes or failures and you may need to roll back to a previous phase even. If you’re not a
software developer you may be involved in this process lots of large development efforts happen in companies all the time and customers are involved in this as well as people from testing operations product people all kinds of people and the odds are if you work in a large corporation you’re probably going to be involved.