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
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