I was planning to use the title “Crush It Using Timeboxing” but it seemed a little combative. Maybe I should have… you are in a battle against time every day. Timeboxing is a time management technique used in rapid application development (RAD) processes such as dynamic systems development method (DSDM) and other agile development techniques. However, the general concept work equally well with non-project efforts and your personal life. The good news is you’re probably already doing a version of it just not as thoroughly as I’m about to suggest. Here are the cliff notes on timeboxing…
In software project management, you have three constraints with an immutable relationship: time, scope and resources (often referred to as the ‘Iron Triangle’). Some may argue quality is a fourth but let’s assume that in software, as in life, quality should never be a variable. Startups typically have fixed resources so you rarely can throw a horde of programmers at a project (just like your personal life) which only leaves time and scope. Typical projects work to a fixed scope and start with an estimated timeline. Inevitably, you realize some features can’t be completed in time so the project either will be late, over budget (you threw a horde at it) or worse… it drops in quality.
When timeboxing, the deadline is fixed and scope is reduced as needed. You essentially stack rank the requirements (most important first) and determine what can be delivered in a fixed, unmovable window of time. If unforeseen issues happen along the way, you remove items from the bottom of the list. You can always move that item into the next timebox if necessary. Agile teams do this all the time: we’ll release a version to staging every other Friday, for example, and complete whatever features will fit.
Startups thrive in timeboxing environments. Why? With limited resources, you are constantly in a race against time to meet objectives. You never have time to think through every contingency or write thorough enough product specifications. Besides, it’s arrogant to believe you’ll actually know what your users really want no matter how much you ask. Research, build and release quickly… then iterate and improve often. Pareto’s Law states that 20% of the features give you 80% of the benefit. Feature prioritization is the key… are you really working on the optimal 20%?
Development teams also benefit from the immediate feedback. Try never to have a timebox last more than three weeks whenever possible. The team pushes hard for a short period and then gets immediate feedback after the release. Additionally, it’s easier to estimate how much work can be accomplished in a fixed amount of time than how much time it will take to do a fixed amount of work, which makes goal achievement more consistent. Immediate feedback and consistent wins create incredible momentum.
Timeboxing isn’t limited to product delivery. You can apply this principle to most tasks in your life. You already do it if you think about it. “I need to get the house cleaned up before the Thanksgiving guests arrive at 4:00.” In this case, you’ll do the best you can until 4:00. Imagine that you needed to develop a speech for the sales conference in two weeks. You might write and rewrite the speech, torturing your friend and family with alternate versions, for a week while neglecting a few unrelated tasks along the way. In the end, it probably wouldn’t be much better than if you simply fixed a reasonable amount of time to the task.
Ready to CRUSH IT?
Imagine if you did this across the board. What would happen if you allotted a fixed amount of time to every task on your list, prioritized them often, put them on your calendar as an appointment and had the discipline to stick to the schedule? I can tell you from personal experience that my productivity tripled. It eliminated:
- Procrastinating items where I didn’t know where to begin or seemed overwhelming (breaking large items into smaller blocks is huge… you can do anything for 30 minutes)
- Spending too much time on items I enjoy but can complete quickly and easily.
- Perfectionism on certain tasks
- “Fire drills” because I was mired in a project for too long only to realize three other projects had been neglected.
- My project / task list from growing faster than I could accomplish them.
Here is how I do it… I define a project as anything that takes more than one step to complete. Using that definition, I currently have 63 projects in play between my role as CTO, advisory positions, personal goals, home projects, etc. These are active and do not include projects that start in the future. Each project has a “next action” which is the immediate next step to keep this project moving forward. Between the next actions and miscellaneous “to do” items, there are 84 items on my “to do” list. I methodically assign each one a duration (you should be pretty good at determining how long a task would take you). I then look at the entire list and stack rank what’s most important along with any pending deadlines. Each task is added to my calendar, and I stick to my schedule religiously. Now I cheat a little, and if you use MS Outlook, you can too! I use a program called Taskline (found here: http://www.taskline.com/default.asp ) which allows me to assign durations, deadlines and dependencies (need to buy lumber before building the planter box). It then schedules the tasks using a critical path algorithm and puts a copy on my calendar. It has multiple ways to prioritize, can break a task into multiple smaller chunks (assignable by task) and provide a warning if you’ll miss a deadline. If you aren’t using Taskline, you can go through the same process at a high level and only calendar a few days in advance.
Whether you are managing software projects or your personal goals, I highly recommend leveraging timeboxing. Used correctly you and your teams will accomplish amazing, often unimaginable productivity. Prioritization is imperative for this to work as well as sticking to your schedule. Lao-tzu said, “A journey of a thousand miles begins with a single step.” Timeboxing will put you on a quick and steady pace…