Know more and connect with me on [Linkedin Profile].

Sunday, September 25, 2016

Google Maps and Agility

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:

  1. 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.
  2. 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.
  3. 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. 
  4. If problems happen, and it will, we can re-plan the remainder of the release accordingly.
  5. 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.


Anonymous said...

Brilliant Thanks

Unknown said...

Scientific thinking to most of programmer :) specially who work far off their home and it work on smart village

Zeyad El-Hodaiby said...

I loved your article , specially because i took your Agile Foundation sessions 2 times :) , and because i use Google maps everyday . The idea of implementing agile in more aspects of life is a thought that hit me after i took your course , and i have some points i would like to share with you.

Lets assume Google Maps is the Agile Methodology and Egypt is in the Project:

1) Google Maps sometimes send you to roads that are poorly constructed and in areas that might be dangerous or even closed or no longer working , that means in some projects agile might lead you in a worse position then what you have expected , so implementing Google Maps in Egypt is great but should be dealt with a lot of care , and am sure that there are some countries( Other Projects ) that Google Maps ( Agile ) would be a very bad idea.

2) Another Point is estimation , in Countries (Projects) where where speed limits are not followed , sometimes google maps based its estimation on the fact that you will not exceed 90KM on Mehwar for Example , but most people exceed the speed limit , but i know that Agile is about adaptability so i think Google Maps should adapt and teach it self that most cars in Egypt exceed the limit so that it can give you better estimate , am not sure if google maps does it or not yet but if it does , that would be a perfect example of Agile and adaptability .

Please keep me updated on such interesting articles , i already went through some of your other topics and bookmarked them to read them next weekend.

Ahmed Hammad said...

I have a couple of thoughts about this wonderful feedback.
First, you have to use your intelligence alongside Google maps. Don't use Google Maps blindly. Use it as a supplement with information to your intelligence.
Second, expect some bugs and some problems sometimes, this is OK and as long as it is exceptional. Again use your common sense.
Third, use the audio guidance along with the visual guidance of Google Maps. It will help you avoid a lot of mistakes and and a lot of confusion.

Sure I will keep you updated my friend. Thank you, and keep in touch.