One of the concepts of lean software engineering is limiting work in progress (WIP). If you have a team of, say, ten developers, it is better to have only three or four scenarios in active development that the team is working on than having each person work on their own scenario. What’s more, each developer should have only one active task at any given time. This could be a development task, reviewing a specific set of changes, or recycling review changes. This greatly helps focus the developer and ensure that context switching does not contribute to lost time and lower quality. When you are focused on one thing, you not only work faster, but you actually complete the task instead of leaving certain details for later that you might eventually forget about. Plus, it’s nice to get a feeling of finishing the task.
One extremely positive effect that I saw with using this approach is that reviews become a lot easier. Let’s say that I take the old approach where everyone works on a huge monolithic task and then checks things in when they feel like it. Three developers might check things in before I get my changes incorporated, and if they changed files that I was working in, the reviewer of my code might see much more than just the changes that I have made. What’s more, by overloading the reviewer with the huge amount of code checked in as well as potential other changes, it’s more likely that the reviewer will miss something. The review will take longer, so when it comes back to me, it might be fuzzy in my mind.
I had the idea this weekend to limit my books in progress (BIP). I have a penchant for non-fiction books of all sorts, but recently started running into a problem where I keep adding books and never finish them. The problem lies in switching contexts. To really get what the author is saying, I have to skim through what I have already read and load it into my mind. After realizing that I could still remember the main arguments of books that I read in college but could not recall the points of the book I started reading last month, I started taking better notes and discussing the book with others to better synthesize the ideas contained. Methods for active reading have benefitted my comprehension of the material.
But even with these better notes, there is still time and effort wasted. Basically my efforts were too diffused to finish books in a timely manner, meaning that I get somewhat bored with the books. So my current plan is to create a queue with a BIP limit of about three to allow freedom in reading but to focus efforts. Then book reviews or writeups should be done shortly thereafter to use the knowledge gained from the book before it dissipates.
Hopefully these two thought patterns (WIP and BIP) were not very disjoint. The first inspired my thinking on the second. Although I suppose that both are instances of knowledge work, it’s interesting how ideas in one field can provoke ideas in a completely different area.