Understanding what the software development life cycle is, will help you manage that cycle better. And it helps you see where your code fits in the larger picture.
What is a software development life cycle? It is nothing more then a timeline for a given project, dividing up a larger project into smaller steps, frequently called phases.
Easy right! Well you know how it goes with software dev, the simplicity pretty much ends there. The project will theoretically help manage costs, meet deadlines and outline testing and fixing bugs after the fact.
Why is it important?
On large projects there will be a separate maintenance life cycle for the software. For example, Microsoft XP which has had a very long software maintenance schedule.
The point is managing the development life-cycle help bring code to life and make sure that your clients or bosses, who may not be tech savvy understand where the budget went and what it got.
What the phases of a software life-cycle? Glad you asked. The most common and intutive software life-cycle is called Waterfall. It has the following steps.
Stage 1: Planning and Requirement Analysis
Stage 2: Defining Requirements
Stage 3: Designing the product architecture
Stage 4: Building or Developing the Product
Stage 5: Testing the Product
Stage 6: Deployment in the Market and Maintenance
We will get into more in-depth of some of these tactics but begin to familiarize with them while also understanding that real work software processes bleed all over these steps.
Here is my definition of these stages.
Planning and Requirements Analysis – This is really about the software owner looking at a business process and deciding that the software, website, mobile application should be required to solve this business process better, more quickly or more cheaply than currently done.
Defining Requirements – Once you identify the requirements, this is the step where it’s explained in detail how the software will be required to work to deliver that solution identified in planning.
Designing the product architecture – Understanding this step helps by understanding the end product or deliverable that the software team delivers which si some sort of basic code or visual representation of how the software will work. For web development it’s frequently a wire frame or series of templates that given the layout of the website for example.
Building or Developing the Product – Or the only step your client cares about. Also mi9ght be the only step that your client or boss is truly aware of. This is the fun part too, the coding and piecing together the different pieces of code into a testable program.
Testing the Product – Stakeholders test out the program and see if it works, what needs to be altered, what is good. Ideally the target user base also gets to test it but while very important it may not be to clients.
Deployment in the Market and Maintenance – Once tested and approved, this is the stage where a design skin might be used to help the overall interface, documentation like Quickstart Guides and Tutorials, is finished and included and it becomes a full-fledged software package ready to be shipped out to the world.
Is this type of software life cycle the final word. Not by a long shot. For example, with small business web development for example and projects like that, Stage 1 and Stage 5 are non-existent as a rule. For a government project, this list probably has several sub-topics addressing the lifecycle. But this list is a good primer.
Development Life Cycle Resources
That’s right you need the tools. So you how to learn more what are the resources for building a software development life-cycle. There is also detailed analysis of common models such as,
There is free tutorial called the SDLC Quick Guide. SDLC is the acronym for software development life cycle.
Lots of great information including the phases which I use mostly.
So what tools can you use to create a software process for your team?
There is good ole fashioned Excel which works well for accounting software life-cycle because stakeholders feel comfortable with Excel and many of the functions that accounting software will use already exist in Excel.
I love Excel for managing software cycles because when you manipulate data you see what happens with e data right before your eyes. This helps with learning and give what you are doing, a feel if you will. The dashboard templates also allow a project manager to create a Visual Development with zero coding knowledge or macro creation.
For web development software, mind-mapping software such as FreeMind and the paid Xmind can double as a flow chart manager for small teams of five or under and also provide visual representations to stakeholders especially when the planning of requirements and the requirements phase are all a big lump phase of their own. Maintaining a visual map fo the project can help create cohesiveness.
Using the Google Documents software within Google Apps and also Basecamp can help tie given tasks and topics to a given stage.