Every day I take the train to go to work. I notice how groups of people start creating in areas where the doors of the train are expected to open. It must be funny if you look from up above. Imagine a long train platform and groups of people spread in 4-5 meters distance between each-other, all long the platform. Why? Because they expect the train to arrive soon, and based on previous days, they expect the doors to be open at a very short distance from where they start forming groups. The first that gets in, might find a place to sit!
So I made a Mind Map to organize the lessons learned from riding a train, and map them to running software development project.
I can go as literal as I want to, but there are some good areas to learn:
1. Even though a train can go very fast, the speed is limited, to control the timing at each station. It is almost like limiting WIP to have a good pace and be predictable, without extra effort
2. The Project team can be kept at the required minimum (there are 2 staff on the train and some staff at the stations to deal with ticket issuing). Operations are there to make sure everything runs smoothly.
3. There is a good Communication system for emergencies, updates, notifications, etc.
4. There is a map of the route and clear understanding of destination
5. If there are issues, buses run as backup strategy
6. There is a clear Cost strategy, based on the distance
7. Good strategy on Dependencies (a train stops when the train ahead has problems)
And this is from a Canadian train. Imagine how much we can learn from the German train system!!