My colleague, a team manager, is used to keep the white board behind him outlined in a tabular format as shown in the following photo, with each team member’s name in one row, (To do, In Progress, Completed) each in one column, and many yellow sticky notes scattered inside the cells.
Every working day around 10 AM team members, all sitting together in one open shared place, turn their chairs back to face the board and start discussing and moving around those sticky notes.
Today while passing by during their morning discussion, I had to stop by and make the following comment: you are using Kanban for team management as well? The team manager said: this is one simple project management method I once came over and thought of adopting it with the team and we are all enjoying it.
I added: well, as simple as it may look, but imagine that it encompasses one of the major concepts in software development: the agile development method.
Agile development in general is the one method for incremental development of processes. As I say it, agile development is more of a mindset and attitude of approaching the management of complex systems (human or software, development or support). In that mindset, systems are approached by evolution (iteratively, and in small chunks) rather than revolutionary (as huge projects with so many floating tasks). In agile development, it is important for individuals to interact in horizontal planes rather than vertical planes (as opposed to project management).
Kanban is one such agile method. It is a Japanese word that originally means “signboard” (I have to praise the Japanese remarkable efforts in devising many process management techniques. I particularly cite Toyota company in this regard). Kanban is simple. It says, well start with the current setting, however messy or complex it was, and take it forward in incremental manner. One important motivation behind this small-step approach is to avoid sweeping changes that may face change resistance. Some core practices in Kanban are:
- visualized workflow (this white board) with face-to-face discussions
- explicit policies: “. Without an explicit understanding of how things work and how work is actually done, any discussion of problems tends to be emotional, anecdotal and subjective. With an explicit understanding it is possible to move to a more rational, empirical, objective discussion of issues. This is more likely to facilitate consensus around improvement suggestions.”
- Improve collaboratively, evolve experimentally: ” small continuous, incremental and evolutionary changes that stick”.
While agile software development or project management can be looked at as another management fad or just another jargon, but for me it is the mindset that it entails is what matters: evolutionary incremental change adopted by acted upon by all team members collaboratively and interactively.
PS. the screenshot below is taken from an online application for software management.