Let's assume a situation. A new software development house is formed and its working to establish a software engineering practice infrastructure to carry out development projects. Then, beginning might be clear to all of us; but the major discussion gets stuck when you need to decide whether to define the process first or framework.
Globally, there are two practices for establishing a new system for software engineering process:
- Process First: You create a process first by customizing the global development process benchmarks to meet your needs. Then, get it implemented, evaluate and monitor for a while; and them create a generalized development framework so that the framework needs minimal revisions since its generated after the feedback of the process.
- Framework First: You get the framework from brainstorming of Business Strategy of the company and get it customized to be synchronized with global framework benchmarks. Then, create the process on the basis of the defined framework so that business goal of the company always remains addressed by the process.
In Process First practice, engineering standards are the backbones. The process gets enough time to be tested and proven among the members of the software development team; hence their comfort zone always higher. Having higher comfort zone of development team members means better performance and productivity.
But, major concern arises; how would you control the process deviation and fluctuation so that the defined process is always directed towards business strategy? For example; if developers are frequently change in that particular organization, their interest areas and working environment will also change; hence the comfort level on defined process automatically changes. In such situation, the organization may not be able to address those issues since alteration on the defined process would be very critical because it would also trigger changes on the framework (which was built on the basis of feedback of the process itself). And, framework itself is working as the benchmark of ongoing process; hence creating a deadlock for process flow.
In Framework First practice, Business Goal or Strategy is the backbone. So, when the framework is set as pathway to achieve particular business goal, we are always goal driven. When you establish a process on the basis of this framework, you are more concern with output. Your monitoring, evaluation and governance indicator always focuses on returns and products. Hence, it maximizes the optimal use of resources of your development team.
But, in this approach, the comfort of the end developers are somehow shadowed. Since you are goal oriented, you might not be able to address their comfort zone with ease. The process itself is very rigid and strictly formulated since its built on the basis of rigid framework which is bound to produce some particular goal. So, when their comfort is not correctly addressed, how it process can ensure the better productivity and performance of the development team ?
There could be a hybrid model to address the best practice picking good of both approaches, but realization, implementation and governance of such hybrid model would be another challenge itself.
What do you think? which model would you prefer in an software development firm?









