A process is series of steps or activities that you need toÂ execute in order to solve a problem or come with an outcome or result. Processes exist within every organization, in some cases they are informal i.e. it is not documented but rather institutionalized by habit. Such as, signing the attendance register while entering or leaving office. Documenting the process is a great thing because it gives everyone within the organization a common way to solve the same problem.
People often think that having a process will eliminate the need of having good people in the first place or limit their creativity. This is not true. For example, recipes for foodÂ is also sort of a process. A recipe for a chocolate cake may tell you all that isÂ required to know about making one but still,Â if two people are reading the same recipe, the results that they come up will be different (and in some cases inedible). Same is true for software as well! Having a process makes people work smarter and not harder.
Conduct a search for â€œSoftware Development Companyâ€ and try to navigate to process page (if you can find one!) and chances are that the general process for software development will be following:
AnalyzeÂ > DesignÂ > CodeÂ > Test
If that is true then why the results from twoÂ software companies vary so much? In order to answer this question, ask the software engineers to tell you what they do within each of these four phases and the reason will dawn upon you.
The above software development process is too generic in nature and hence it is open for interpretation. For example for you test may mean just mean ensuring that there is no spelling mistake on the page while for me it may mean that it should be XHTML validated as well.
Itâ€™s actually the procedure that makes all the difference. While the process answers â€œwhatâ€ will be done, the procedure answers â€œhowâ€ it will be done. The more detailed the procedure is, the lesser will be deviation for the expected results and the more consistently the process will be applied. Thus, although Process forms an outline of flow of activities but it is important to probe deeper and find out theÂ procedures as well.
Another important thing to point out is that too often, the process is focused more on the product itself then of the process that is used to create it. For example, writing a ten page document on how to format the code properly is an example of product focus. This will ensure that the code is formatted properly but how do we know that the â€œrightâ€ code has been written? I am not saying that code standards should not be there but I am stressing that the process focus means focusing more on the â€œmeansâ€ rather thea of the â€œendsâ€.