Why is a systems development process needed?
The process is needed to address business needs and opportunities in a systematic and methodical manner that maximizes potential benefits while mitigating risks. It is a methodology that takes into account all aspects of existing processes, identifying its weaknesses and bringing opportunities light.
At a fairly early stage, the feasibility of the project is examined and the powers that be are given the opportunity to nip potentially disastrous projects before they can soak up too much cash.
Additionally, the process refrains from a potentially costly commitment to a particular physical solution by focusing on the logical model before formulating alternatives.
The process also ensures that the project remains on track and on focus thereby reducing the tendency for scope-creep. Mechanisms built into the process allow for control and oversight.
And the paper trail generated in the faithful adherence to this process allows for a historical trace and is also the framework of the system documentation.
What situations occur when system development fails?
The most egregious situation, in my opinion, that could develop would be that an enormous amount of capital is unknowingly poured into an unfeasible solution. Almost as bad would be if the same money were to be spent on a project that does not appropriately address the business concern for which it was intended.
The implantation phase could be derailed, spiraling costs upward and strategically crippling the business. (Depending, of course, on the project and the organization’s anticipation for it).
Changeover does not come off as planned, the old system comes offline before the new system comes online. Problems don’t get reported and things get missed when testing the software.
What are typical reasons given for not following a systems development process?
The book did not give specific examples of what reason might be given, but going by my own experiences and what I’ve heard managers say in meetings I have a few ideas.
“There isn’t enough money for testing/planning/analysis, (you name it).”
“There are enough people for testing/planning/analysis, (you name it).”
“We’re locked into a particular hardware platform already. Focus on that.”
There might be contractual/regulatory limitations that pre-determine a particular solution.
Your manager might completely underestimate the complexity of the problem.
What are the benefits of following a systems development methodology?
Foremost among the benefits would be keeping the project focused and on track. Another would be diminishing the intangibles that could wreck havoc during the implementation phase.
Minimizing the likelihood that “something” might get missed during the process would also have to be considered. The logical model would also help ensure that all data flows are accounted for and therefore will be represented in final solution.
Also, it will help the implementation schedule in regards to hardware, testing, training, data conversion and maintenance.
Is there more than one systems development methodology?
In addition to the Systems Development Lifecycle there is Rapid Application Development (RAD), which incorporates Joint Application Developing (JAD) and prototyping as well as Business Process Reengineering.
RAD grew out of the appreciation that business needs can change faster than the traditional method can produce solutions. It is comprised of four main phases as opposed to the eight stages of the SDLC.
Phase one is requirements planning. At this phase management puts together a high-level strategic objective driven by business, rather than technical needs.
Phase two is applications development. This is where JAD comes into play. JAD was initially developed by IBM in the early 70s and follows a top down approach. Analyst(s), programmers, users and a mediator will meet over several days (pre-defined length of time) in a neutral location (free from distractions) to produce the requirements for the system.
Phase three is systems construction. This is where prototyping comes into play. Prototyping is iterative process where a core version of the system is produced and reproduced, with user input, in a pre-specified amount of time. It is more likely that requirements would be reduced rather than have more time allotted.
Phase four is the cutover. This is where the testing occurs. RAD assumes that the final project does not exist and it is all a “workable, production capable” work in progress.
There are situations where businesses want to radically approach the way an existing task gets accomplished. The idea is to reduce the existing process to just it’s logical model and remove any redundancy, latency or other impediment to improving performance. Business processes that are customer focused are good candidates for BPR.