What is a process?
A student wrote to me: “I do not understand the term “Process” and why do we need to follow a process in software development? What is continuous improvement?”
Answer: A process is an organized sequence of activities to complete something. For example: A software project. In this case, a project is the application of resources to that process. Resources are people, tools and techniques that you apply when following a process. The term “people” also indicates the skill and experience of the team members. A Sequence is the order in which things are accomplished. The term “order” means you must follow it “step by step” according to a rule. For example, you must understand the requirements before start designing; only when design is completed then you can start coding etc.
A process is represented by three factors: Efficiency: The relationship between resource use and accomplished results. Cycle Time: The “speed” of the process, i.e., the time it takes to complete a process. And Quality: The quality of the process as defined by users such as meet requirements, have no defects etc. The combination of these three factors defines the capability of a team or an organization. A continuous improvement is the changing or upgrading from lower capability to higher capability.
Without proper training, software developers will do whatever they want just to get their works done. Since software development is a “Teamwork” activity, not individual activity, it is important that all team members follow certain rules such as following a “Defined process” for that project. The project manager must identify the “Defined process” in the project plan and monitor activities to ensure that team members are following it to get the desired results such as efficiency, quality and speed.
One of the major issue in computer science training is students have a tendency to work in isolation. Typically, each is given a problem to solve, a program to code, and each is graded according to individual achievement. When students go to work, each will continue to do whatever possible to get their jobs done, just like when they are in school. Without an understanding about teamwork by following a process, many projects will fail to deliver software to customers within schedule and with quality. Many projects are often late and with poor quality. They fail because the lack of coordination and teamwork that allows team members to work together. They fail because some members hurry to code without really understand the requirements. They fail because there are too many changes in the projects that come late and there is no process to handle changes. They fail because project managers do not know how to plan, to organize, or to estimate the time, schedule and effort needed to complete the project.
A defined process is a roadmap for the project. It require team members to follow the “road” step by step. Each step has a clearly defined roles and responsibilities for each team member. When changes happen, the roadmap clearly identify who is doing what so the team can get their works done with efficiency, quality and meeting project schedule (Speed).
Sources
- Blogs of Prof. John Vu, Carnegie Mellon University