The Software Development Life Cycle
You've developed your business plan, secured funding and are ready to hire a stellar team of software engineers to build your software application. You understand what needs to be done from a business perspective but how do you make the leap from business requirements to technical requirements and from technical requirements to finished system? What kind of process can and should you expect from your software engineers?
A software development life cycle should include five phases:
Phase 1 Analysis: Don't leave home without it. Analysis is the cornerstone of the development cycle and is critical to the success of your project. You should expect meetings to clearly define what is being built and to gather requirements.
Phase 2 Design: During this phase your project is researched, planned out and built on paper. Time will be spent exploring potential vendors and technologies. Your software architects will then take the information and build your system on paper. They will provide you with wire frames and mock ups, design and relationship diagrams and other documentation. At the conclusion of Design, you should know exactly what you are building and how it will be built.
Phase 3 Build: You've built your system on paper, now it's time to start writing the code. If Analysis and design has been done properly, the Build Phase should be relatively straight forward (especially if you've hired solid software engineers).
Phase 4 Testing: Once the code is generated, testing can begin. Who does the testing may depend on system complexity, timeline and budget. You may choose to assemble a testing group of your friends and family, you may hire a testing group who represent your target market or you may opt to roll the product out to the general public for testing and feedback. During the testing phase, you should expect to encounter bugs which will require debugging or bug fixes. During testing you may also receive feedback about usability which may necessitate system modifications.
Phase 5 Maintenance: Once your system is tested and fully functional, you and your users get to really start using it! Now your software team is responsible for support and maintenance. You may also begin collaborating with them about how you'd like to scale and enhance your system. When you decide to begin a subsequent iteration, the software development life cycle will start afresh!