“A series of things that are done in order to achieve a particularresult” is the definition for “process” in Oxford learner’s dictionary. Beforemoving into the software development context, we shall discuss some day-to-daylife examples regarding “process” and its importance. This will pave the way tounderstand the big picture rather than blindly following the process in yourproject. I have seen many people worshipping the process because they have beenasked to do so. This won’t lead you to get the real usage of practicing aprocess.
This is my first example. Assume you are sitting for an examination. (Iam taking this, as everyone has their own experience regarding this ?). Firstof all, you have to study the syllabus. Will it define your result? No, itwon’t. The way you study, the time you spent on studying or the number of extraclasses you went to is not directly correlated to the result you get at theend. It totally depends on the process you follow for the studying. Here is mysecond real-life example. Take the scenario of you preparing lunch at home(maybe your mother ?). You are going to cook rice and 3,4 curries. There is adefined method that we have to follow to cook each curry. Will just followingthese steps make your curry tasty or hygienic? It totally depends on the stepsyou followed. Even the time consumption to complete the whole scenario dependson the process you followed once you are cooking. I hope the above-mentionedexamples are emphasizing the necessity of following a suitable process at anywork you are doing.
Now we shall consider the software development context. The SoftwareDevelopment Life Cycle (SDLC) defines the methodology of developing andmaintaining the software. Following are the standard life cycle stages.
· Requirement gathering and analysis
These steps are to be followed during any process you engage in. Thesequence of steps can vary from process to process. Sometimes above phases canbe executed parallelly too. Combining a few stages or expanding one stage intofew, totally depends on the process. Following are the popular softwaredevelopment processes in the software industry.
· Waterfall Model
· Agile Model
· Iterative Model
· Spiral Model
· Rapid Application Development Model
Let’s evaluate the significance of having a process in a softwaredevelopment context.
In the industry, the product is developed by a team. One of the majorchallenges is starting the project. Project requirements should be gathered andanalysed. There should be a proper mechanism for dividing the bigger tasks intosmaller ones. Tasks have to be prioritised. The final output has to bedelivered within a limited time with a lesser number of defects. Tasks have tobe spread evenly based on the weight within the given time period. Last-minutework may lead to a low-quality product. The proper process will drasticallyreduce time wastage. One of the main misconceptions is that people think codinghas to be started at the very beginning of the project. Instead we should spendmore time on planning in the beginning.
The team can consist of people with a different set of skills anddifferent ways of thinking. Ultimately this diversified team should beintegrated into achieving one common goal. Therefore, team synchronization is akey factor. Assume a scenario where a team follows no process or an unsuitableprocess. This may lead to two different outputs. One is having an inefficientteam. The other one is job burnout. Both results are directly affecting thesuccess of the project. Sometimes management believes highly technical skilledpeople can deliver a successful product, which is not always correct. I canassure you that an average skilled team with a highly effective process canproduce best results. Communication among team members is a major fact whileworking with any team. All members of the project team should be on one pageevery time. This would avoid a lot of unnecessary problems. Moreover, manyimpediments can be avoided through proper communication. Not having propercommunication leads to unfruitful outcomes. Therefore, it is mandatory to gainthe advantage of having group discussions. Having proper process will produceresponsible team members. Each individual can be evaluated and appraisedaccording to these objectives which have been allocated. These facts revealsome key features for establishing and executing an effective processmodel.
There is no single process that can be applied to every situation. Afteranalysing project requirements, type of project, project input/output andallocated resources, the suitable process has to be selected. The agile modelmay not be suitable for a project with a heavy research area. Also, theWaterfall model is not suitable for a project in which case its requirementsare changing frequently. I strongly accept process adaptation since the projectcontext is different from one to one. One of the main objectives of thefollowing process is to make things simple and understandable. Therefore,flexibility of a process is a key fact. I have experienced people making simplethings complex by following a process. Even though I have mentioned about theadaptation and flexibility, there shouldn't be any loopholes. Finally, itshould be neither more generalized nor a more restricted one.
Image source: https://mymidlifehustle.com/my-healthy-fitness-plan/