“Computer, create a database for all historical references to the Orbs, including all reports of any unexplained phenomena in Bajoran space,” Lt. Commander Jadzia Dax asked the computer on Star Trek: Deep Space Nine.
“Initializing database. Requested function will require two hours to complete.”
This is the picture that Hollywood often gives us of programming – it is a simple process where in about as much time as you can come up with an idea, you can hit the right buttons on the computer and it will happen.
The reality is that there is far more to the software development process than just hitting a few buttons. So we’re going to take a look today at what really goes into software development.
Exactly what the steps of the software development process are depends on who you ask.
A commonly referenced methodology is the “waterfall model”, which gives the phases as requirements, design, implementation, verification, and maintenance.
There is at least one flaw in this software model – verification is not something that should only happen at the very end of the process. The last thing you want to do is spend tens (or hundreds) of thousands of dollars creating software and then find out there are fundamental flaws with the design. Nonetheless, the general phases are correct and exist in some form in anyone’s idea of a software development process:
- Requirements gathering. The most fundamental question for writing software is asking what it should actually do. There are at least three kinds of requirements – (1) user-level requirements (“there should be a screen that shows a pie chart”), (2) functional requirements (“the system will calculate interest daily”), and (3) quality requirements (“no web page will take longer than 5 seconds to load”).
- Design. The design process is more than writing a brief Word doc. It can (and should) involve creating prototypes of key screens.
- Implementation. This is usually called the “coding process”. The better the design process, the more smoothly implementation will go.
- Verification. As we said above, verification and validation should occur within each phase. The design should be validated with key stakeholders. The requirements should be validated for completeness. The coding process should be validated internally by the engineer in what is called “unit testing” and at key milestones, it should be validated for adherence to schedule and to the design. Verification and testing should not merely involve “monkey testing” – a name engineers sometimes give to the process of banging around aimlessly on an application to see if something goes wrong. Rather, it should involve validating at the very least that (1) each requirement has been satisfied, (2) calculations are valid for boundary and corner cases, and (3) the system conforms to generally accepted standards.
- Maintenance. Software maintenance should be planned for and budgeted. Maintenance is not merely about fixing bugs. Rather, business needs change and software needs to be updated accordingly.
Want to talk more about software development? Want us to handle your tech-speak and software needs for you? We will be glad to sit down with you and talk about requirements. Click here to skip over to our tech team’s webspace.
|Enjoy Your 30-day Free Trial!|
|Learn how Inbound Marketing Software can help your business grow!Click here to get started with your free trial.|