Defined Process
Use a Defined Process to accomplish a job.
Problem How to do a job:
-
Determine what needs to be done
-
Decide how to do it
-
Do it
-
Check to make sure it is correct
-
Fix any problems
-
Deliver the final result
How do you know what needs to be done, and decide how to do it?
Agent
Context
-
When you need to do a job, and want to improve your working efficiency.
-
Demands for accuracy, precision, and completeness exceed informal methods.
-
A systematic framework is required to insure that all the details are properly handled.
-
You want to balance the legs of the
-
Schedule(Time) - Cost(Resources) - Quality(Features) triangle.
Forces
-
A well-ordered and structured process can greatly improve the efficiency and effectiveness of purely routine tasks.
-
Order and structure will inhibit the creative process.
Solution
-
Use a defined process when you want to improve your work.
-
Treat the creative and routine differently.
-
Break the job up into tasks, and separate the routine tasks from the creative tasks.
Rule
-
Provide scripts (ProcessAsPattern ?) to make the job easier to do by showing what needs to be done and how to do it.
-
Provide forms to gather and retain data in a consistent manner.
-
Provide standards and checklists to guide your work and provide a basis for verifying product and process quality.
-
Provide process improvement provisions to ensure the process will evolve to meet your ever-changing needs.
Steps to define a process:
-
Determine your needs and priorities.
-
Define the process objectives, goals, and quality criteria
-
Characterize your current process.
-
Characterize your target process.
-
Establish a process development strategy.
-
Define your initial process
-
Validate your initial process
-
Enhance your process.
Reason
-
Defining the tasks makes it easier to accomplish a challenging job, adds consistency, and enables you to make meaningful measurements.
-
A defined process allows you to separate the routine work from the creative work.
-
Once the creative tasks have been separated and bounded, the routine tasks can be made much more accurate and efficient. * Reducing the time required for routine tasks gives you more time for creative tasks.
Benefits
-
It enables effective communication about the process.
-
It enhances understanding, and provides a basis for automation.
-
It supports evolution by providing an effective means for learning and improvement.
-
It aids process management and planning.
"We are what we repeatedly do. Excellence, then is not an act, but a habit." --- MrAristotle
Resulting Context The next time you need to do the same job, you will:
-
have the scripts and forms of the process available to help you.
-
be able to collect meaningful data to help you estimate and plan future jobs.
References
-
AdisciplineForSoftwareEngineering, WattsHumphrey, Addison-Wesley, 1995, ISBN 0201546108
Examples
Related Patterns
Author(s)
Date(s)
I don't understand how the solution balances the forces. I can define a process that offers no insight as to whether I'm doing what needs to be done. That a process specifies that something be done doesn't mean it needs to be done.
Also, how is the pattern different from: "how do I solve all my problems" for which the proposed answer is: "use a process"?
Last, if Humphrey is the cited example of this pattern, isn't the context limited to academic simulations outside professional practice? -- JimCoplien
Cope, I'd be very interested in your comments on Humphrey's work and proposals, specifically your thoughts on the extent to which they apply in professional environments. Thanks - RonJeffries
I can see that this needs some work. Not only must the process be defined, but it must have a special quality that encourages people to apply it. I don't think I have communicated this yet. I'm more interested in process than in organization. I have little power to change the organization I work in, but I do have freedom to define and use my own personal software process. -- KentSchnaith
How can we keep this pattern from leading to an ever-growing number of unmaintained and ignored lists of how to do things, ala, for example, IsoNineThousand? --RonJeffries
Ron, you can't. The nature of such defined processes is that they cope with change by adding more process. There's usually not much meta-process there to eliminate wasteful process. --ChristianEdwardGruber
Also see:
CategoryPlanning