I commute driving my car almost daily from 2 to 3 hours, . I live and work in one of the biggest and busiest cities I think, Cairo. If you are not regularly commuting in a busy and a big city, possibly you cannot imagine the hassle and uncertainty of it. It is disappointing. I face unexpected congestion randomly and have a very limited clue on how to manage my trip. Sometimes, I find unexpected congestion, and change my route to another one, assuming it is faster, to find it much worse. Actually I cannot be sure, as I do not have knowledge to be sure. With fear and ignorance, my commute is a misery.
Last year, I started to use a local mobile application named "Bey2ollak". Bey2ollak is an Arabic word means "He is saying to you". Yes, too much English words in only one Arabic word, that written in English characters and Arabic numerals! Bey2ollak is a social mobile application who breaks famous route into segments and enable commuters to rate the segment from busyness perspective. A rank from "Perfectly Clean" to"Too busy - Avoid" is used. They use nice smiley faces as in the picture. It enables users to easily register account and post comments also. That is all. Recently they added more features but I am talking about my past experience and not evaluating the current state of the tool.
Using Bey2ollak, before going to work or returning back to home, I used to check my route conditions and decide if I should go home now, in which route or if it is better to stay an extra couple of hours at work until the road congestion resolves. Generally better than before, but I still has several pains:
- The application does not propose different routes.
- I have to design my route myself, by selecting all segments manually.
- Commuters rate segments manually. (Later, they made it automated if you open your GPS)
- There is no time estimation for the entire route.
- Sometimes people report on the wrong route segment.
- Many times reporters got very emotional and start cursing the traffic and the city!
Google Maps app was available at that time, but was not handling traffic conditions of my city.
Recent months, Google Maps added traffic conditions, and trip time estimation features. Now, I set my destination address, then it displays different routes with time estimates. It highlights parts of the road that has congestion and shows how much time it will delay me. Not only that, as I drive the selected route, it alerts me of better routes that become available. When the situation is changed, it alerts me of a new congestion ahead and tells me how much time it will delay me.
With all these live information, my commute emotional experience is changed completely. Frustration of uncertainty and limited visibility are eliminated. The road conditions are not enhanced at all, but now, I have visibility and timely information to manage the situation and reduce its adverse impact on me. With Maps, my situation is changed. Even in difficult busy days, which I cannot control, the information given by Maps is calming. I no more got disastrous ambiguous situation hitting me as an unexpected mine. It relieved my emotions that, whatever the route status, I have power of knowledge to decide my route with accurate predictions and choices.
Yesterday, it popped to my mind that, our Agile approach (Typically Scrum) has similar characteristics. It enables me to manage the uncertainty and enables the team and Product Owner to decide what to do. Agile planning and tracking will not prevent problems (like in Maps), but it helps you track them down and helps you to manage the uncertainty inherent in software development. Let me highlight some Agile/Scrum concepts that helps:
- Relative size estimates done by the whole team without political pressure from management will help Agile team quantify reliably the amount of features required for the next release.
- With Done Definition that treats completeness as 100% criteria. It enforces the team to reliably finish valuable requirements completely to get the score of the finished stories. If not completely done per the Done Definition, they earn zero. It frees them from debating whether some requirements are finished by 60% or 80%. And hence enables more reliable progress visibility.
- With every sprint, we measure how much story points are completed. It gives a strong sense of our progress and our velocity regarding the required scope of work.
- If problems happen, and it will, we can re-plan the remainder of the release accordingly.
- With Burn Down charts and daily Standup Meetings, the team can spot impediments and delays very early. It enables the team to react very fast to impediments and issues.
So, these Agile concepts/tools does not eliminate uncertainty or complexity of developing software, but it sets the stage to reliably navigate them. It helps in the same sense that Maps helped me to manage the complexity and uncertainty of my commute. Or at least, this is what happened with me.