Engineer, Manage Thyself
The course of my side projects often follows a pattern. I begin with enthusiasm, writing code based on little more than a picture in my mind. One, two, three days of manic productivity later, I may have written thousands of lines of code, but the enthusiasm is spent. I look around at what I’ve built, and all I can see is how far away from “finished” it is. I feel discouraged, and I feel unskilled. The stack of tasks to do has increased, not decreased, and I have no guidance on what to do next.
It’s at this point that I remember I’ve learned this lesson before. The lesson is: all non-trivial projects need management. Even when its a team of one.
While we are conditioned to think of management as a role, I think it is more useful to think of it as an activity. We could define this activity negatively as "everything that isn't building". Positively, it’s the actions of planning, decision making, allocating resources, reflecting, and adjusting. Far from something done only by "managers", this activity actually takes place to differing extents in almost every role in an organization. It happens whenever we are sitting in the frontal lobe, thinking about the project from the outside vantage point, and constructing a theory that connects the present moment to a future one where the project is completed.
So how do we manage ourselves?
The first thing to do is to carve out time for management tasks. Don’t assume that it will just happen. As engineers, we usually feel the best when we are coding. If we follow what feels good, we may never remove ourself from our IDEs. Therefore its best to actually put time on your own calendar to manage yourself. I have always found a basic weekly sprint to feel very familiar so I will often use that template. Weekly planning/retro on Monday. Daily “standup”’s. As a solo person, a “standup” can be as simple as reviewing what you did yesterday, and setting goals for today.
Second is to make a plan.
- what does “finished” mean?
- what are are the constituent components of the finished project?
- for each component, recursively, what is the plan?
- how long will I spend on each part?
The third is to work to the plan.
The fourth is to reflect and update the plan as necessary.
Managing ourselves is a great way to ultimately get more done when we are working alone. The best part is, managing yourself well will actually improve your ability to work with others. It will even improve your ability to manage others. Many of the skills of high performing ICs are really management skills: estimation, planning, and communication. Managing yourself is a great way to be a better IC.
- g