Office Worker Essentials
A century ago the majority of people were employed in manual labor: either on a farm or in industry. A small minority worked as professionals. They were the early knowledge workers. Their primary tools were the pen and paper. How times have changed. Today every knowledge worker has a myriad of tools at their disposal and they are expected to master them.
Planning for Developers from Knowledge Worker Perspective
Planning is a controversial topic in software development. There is a feeling that we, software people, we don’t want to plan at all. The outsiders might have a point. Even though lack of planning arguably makes our lives harder than it should be we still don’t want to plan. There are steps you can take to get past these preconceptions and derive immediate benefits. Read more to find out how.
Brief Introduction to Personal Planning
As a knowledge worker, you live in a world where a continuous stream of commitments are made and accepted 'round the clock. To succeed in this world, you must learn to make commitments and keep commitments. Since commitments that rest on a plan are more likely to be kept, you must learn to make plans quickly for your work and then carry out those plans effectively.
Software Development Strategy
The dictionary definition points us in the right direction. The software development strategy is your highest level plan for achieving your software project's objectives. According to Watts Humphrey, the strategy is "the order in which product functions features or requirements are defined, designed, implemented, and tested."
What's the Status?
Regardless of the organization you work in, this question probably comes up daily, but at least weekly. To answer the often dreaded status question you need minimum 4 pieces of information.
Knowledge You Expect To Learn
Writing an individual project plan for your project work can be difficult. The secret of creating a workable task plan is to consider not only the work you will complete, but also the knowledge you expect to learn as you perform each task.
Effective On-Task Time
Software development is knowledge work. We use knowledge, take input as knowledge, and the output we produce is knowledge. Our output is executable knowledge. According to Peter Drucker, the 21st century's defining characteristic is knowledge work. We, software engineers, are in the thick of things.
Build a Rough Plan for Your Work
People who have not had to do any planning are stumped when asked to make a plan. I found that planning can be intimidating until you start with writing down what are the deliverables and what is the time frame. This will get your thinking started in the right direction.
Mastering Deadlines
In Living with Constraints, I touched on a topic that is on the mind of software people: managers and developers alike. The time constraint, also known as The Deadline, is of particular angst for some technical people.
What’s So Hard About Planning?
In the software business where most people don't seem to agree on anything it seems that everybody agrees that planning is hard. (The only thing that seems to be even harder is tracking to the plan and regularly replanning, but that's another story.)
Peter Drucker on Software Management
Well, Peter Drucker didn't write about software management, but he did write about management. In his book Managing in a Time of Great Change he has a chapter called The Five Deadly Business Sins. Here is what Drucker has to say...
Guildelines for Detailed Planning
Business and society operates on commitments. For your commitments to be more than just empty statements, you must base those commitments on a plan of action. Creating plans is activity that can be learned. It takes practice to become good at planning.
Multilevel Planning
Even the smallest projects have multiple constituents. For each type of constituent, there has to be a plan that talks to their concerns. Some of the plans may overlap, however, other than milestones, you don’t want to duplicate information across the plans.
Research vs. Development
Arguing whether or not some work is research or development is all too common on software projects, especially in Software Research & Development (R&D) organizations. On many projects developers tend to declare a large part of the work as "research" and decide not to create any plans for it, postulating that "it is impossible to plan research."