XNSIO
  About   Slides   Home  

 
Managed Chaos
Naresh Jain's Random Thoughts on Software Development and Adventure Sports
     
`
 
RSS Feed
Recent Thoughts
Tags
Recent Comments

Archive for the ‘Random Thoughts’ Category

Ways to Control Traffic

Saturday, January 3rd, 2009

Some people think, traffic lights is THE ONLY way to control and regulate (manage) traffic flow.

For others, esp. those who have seen round-abouts or circles in European countries, know that in some cases round-abouts are a much superior alternative to traffic lights.

And some people who drive on Indian roads know that the first 2 methods don’t really work and they have a chaotic, completely unpredictable, yet self-regulating traffic system.

All 3 are valid ways to manage traffic under the given circumstances. Possibly there are other traffic control systems that I’m not aware of.

Million Ways to Kill your Project

Saturday, December 27th, 2008

Most often I find people introducing all forms of accidental complexity and screwing up their projects. Over the years I’ve learnt some powerful ways to kill a project/organization.

Mediocracy over Innovation and Excellence
Indifference (I don’t care) over Passion and Pride
Sloppiness over Craftsmanship and Self-Discipline

are some of the most common values. And there are many ways to encourage them:

  • throwing more people at a problem
  • no visible value system
  • treating your employees as dispensable resources
  • punishing failures and ignoring achievements
  • create more and more specialized roles on a project. (Architects, Designer, Java Developers, Database Developers, UI Developers, DBAs, Manual Testers, Automation Testers, Regression Testers, Performance Testers, Graphics Designers, Web Designers, User Experience Expert, Domain Expert, Business Analyst, Subject Matter expert, System Analyst, Technical Writers, Project Managers, Program Managers, Module Leads, Tech Leads, Configuration Manager, Build Monkey, Product Owner, Scrum Master, Consultants etc)
  • build all the possible frameworks which might ever be needed before building an application
  • try to build a very generic solution which is infinitely scale and extensible. (does not matter if you are building a hospital management system, it needs to be generic enough that tomorrow if the business decides to get into hotel management they can use the same).
  • use the greatest and latest technology buzz words, frameworks and concepts
  • death by process and meetings
  • failures and slippages results in more process addition and stronger & strict process adherence and evaluation
  • And the list goes on…

Influencing Others

Saturday, December 27th, 2008

Clarity of Thoughts and Clarity of Actions is very important when it comes to influencing people around you.

The how do you get clarity of thoughts and clarity of actions?

Staying in the trenches yields insights.

Continuously reflecting yields clarity and fuels new ideas.

Trying to teach others help in formulating and articulating your thoughts.

Last but not the least, working with smart people helps you become a good influencer.

Working with smart people is very important because they don’t just ask you “Why?” but they also ask you “What is the alternative?” or “What are the trade-offs?”. Lot of times, I get into the mode of “This is THE way to do this”. And when faced with the alternative or trade-off question, really forces me to think. This really helps me find new, interesting ways to solve the problem or at least helps in clarifying my thoughts.

I find “Leading by Example” is a great way to influence others. I see a lot of people trying to influence others by pointing at their mistakes and trying to correct them. But they themselves don’t walk their talk. This form of influencing is very harmful and short-lived. Agile Consulting is a great example of this.

Anywhere I may roam, where I lay my head is home

Thursday, August 14th, 2008

And yes, finally I made it home this morning. After wasting 5 days in Canada, I finally reached home this morning. BTW if you are wondering what I was doing in Canada after my bad experience last time, I was visiting Toronto to participate in Agile 2008 conf. The conference got over on Friday and then I wanted to get back home as soon as possible.

Due to unavailability of seats, I was booked on Sunday flight. Which got cancelled due to bad weather in New York. Then I was put on the Monday flight. Which again got cancelled and they put me on the Tuesday flight. Delta Airline apparently has a policy that if the flight is cancelled due to weather problem, then they can treat the passengers like crap. No accommodation, no expenses, no change of flights, etc. Basically “you are on your own”. It turns out the best option is to cancel your tickets and run to another airline. 

Big thanks to Deborah Hartmann for hosting me at her place and for taking care of me when I was down with a fever and cold. Deb, you rock!

Beggars can’t be choosers

Tuesday, August 12th, 2008

Here I’m still stuck in Toronto, after 2 days of trying to get to Mumbai via New York. Bad weather in NY and heavy travel season in North America has left me with no option but to be stranded in Toronto for 2 days on my own expenses. Is this some kind of a coincidence or what? Last time I was in Canada, I was stuck in Montreal for 2 days due to technical issues on the flight and then worker strike in Paris. This time I’m stuck in Toronto due to bad weather.

It appears to me that the airline industry really does not care for its customers. esp. if you are not a “high miles person”. In this position one is not really left with any option other than to live at their mercy. I’m so DONE DONE! with international travel.

Stuck in Canada Again…

Sunday, August 10th, 2008

My second visit to Canada and is as eventful as the first one. On the way to Canada, our flight was canceled. Had to wait with my wife and daughter (infant) on the airport without any help. Finally they put us on a flight next day. When we showed up next day, they told us my wife could not travel, because she did not have a US Visa. We told them we were traveling to Toronto, Canada and not US. But unfortunately we had a 2 hr layover in New York and we had to have a VISA. US, the only country in this universe which needs a transit visa. Our travel agent never told us about it. Very very frustrating. I almost made up my mind not to go. But my wife convenienced me to go.

Finally I land in Toronto on Tuesday afternoon just in time for my my workshop on “Styles of TDD” with William Wake. I missed the kick off of the Muzik Masti stage and Conference Retrospective, which was on Monday. After I landed it was a marathon for me. Back to back sessions. I had 4 sessions, 1 conference retrospective and 2 stages to manage. Everyone stepped up to help me, but it was crazy 4 days for me.

After all that, when I was finally really looking forward to go back home, I realized the flight was canceled. Due to bad weather in New York, all flights were canceled and I have to stay in Toronto for one more day. Worst thing is they don’t even provide me any accommodation. Thankfully Deb stepped up to help me.

I really think I’ve had enough. If I ever get back to India, I’m very sure I’ll never come back to Canada.

Just Good Enough

Saturday, August 9th, 2008

Mary and Tom Poppendieck are visiting India for 10 days. We have spent 5 days together so far in India. During the trip, Mary told me that she was really (pleasantly) surprised how things worked in India. She told me that she thinks everything in India is “just good enough”. It works and it does it job. Let it be traffic, small toilet paper roles, little soaps in the hotel, or automobiles.

This was very interesting. I’ve had similar thoughts, but the way I looked at it was, we were living on the edge of chaos and hence everything worked fine once you were inside the system, but for an outsider it would be total chaos.

During this conversation, Mary talked about how at Toyota the focus is to build robustness into the system. For example, special care is taken to make the part work under a wide range of conditions. On the other hand, what she was noticing in India was, things were not built keeping robustness in mind. They were not built to work in a wide range of conditions, they are just good enough to work in a very limited conditions and they work just fine. Robustness of course comes for a price. Considering these 2 extreme point of view, her question was will companies like Toyota survive in Indian economy? According to her, considering that India and China is where the future lies, what would happen to really successful companies like Toyota? Will they adapt & survive or will they become endangered?

She also gave an example of an Indian motorbike company that figured out how to assemble the parts together quickly and sell motorbikes in Vietnam. Few years back, Honda was the market leader in the country, today, they have less than 10% market share. This Indian bike company was able to sell “just good-enough” motorbikes in Vietnam at a really low price and kick Honda out of the market.

Something for us to consider when we think about building Software.

Slicing boulders in the 11th Century

Wednesday, July 2nd, 2008

Well you might think they must have used a wire saw with a 7″ blade and wide flat steel wedges.

But in the 11th century there was no electricity nor were there wire saws. The approach they used was,

  • they established the plane they want to follow by drawing it on the stone,
  • proceeded to drill small holes with a primitive chisel and hammer,
  • they drilled holes every 6 to 12”,
  • inserted half inch wooden wedges into the holes,
  • poured some water into these holes,
  • left it over night for the wood to absorb water and expand.
  • finally, the boulder would split along the established plane.

The wood and water method is till date used in a few places.

Here is a picture from ruins of Hampi where this technique was practiced in the 11th century.

Why is common sense so uncommon?

Saturday, June 21st, 2008

And this continues to puzzle me….

Through the Agile Software Community of India, I’m organizing three workshops by Mary and Tom Poppendieck in Mumbai, Bangalore and Delhi. As a way to ensure quality (passionate and committed) individuals get to attend this workshop, I introduced the concept of a position paper. To participate in the workshop interested people have to add their position papers to ASCI wiki. The position paper is a simple, plain text response to 3 basic questions. The idea is we have an index page (home page) for the workshop in each city. People are supposed to add their name to the table (index) and link their position paper page from this index. This helps each one create a position paper page on the wiki, add what they want to add to the page and then link it up to the index, so that anyone can see who all have signed-up and if they want to know details about any person, they can click on their position paper link.

This might sound a little cryptic, but when you have an example to see, it all seems to make perfect sense to me. But if you see what has been happening on our wiki with these position papers is:

  • Some people don’t know wikis and they just email me saying here is my position paper. I’m happy at least these folks are not messing the whole wiki
  • Some people can add their name to the index, but don’t know how to create link. Even if there are 30 other people who have create a link one line above their text, they cannot figure out how to create a link. There is a link to the guide, but that apparently is not helping people either.
  • Some people don’t understand or don’t want to understand how to edit a table on a wiki.  Even if there are lots of other people who have added their rows to the table, some people cannot figure out how to. They keep doing wired things like randomly adding pipes and that messes the whole table up.
  • There is a description on the top of the page linking to the position paper description page. Some people click on this link, delete the position paper definition and add their position paper right there.
  • Some folks just clicking on the first person’s position paper, deleting the content on the page and adding their own content. So you click on person A’s position paper and you’ll see Person X’s position paper
  • Worst of all, some people are deleting the whole index page and just adding their position paper without any name or any other details.

In all these instances, people are not try to knowingly mess the wiki, but unknowingly are doing all this non-sense. Now one might feel this is common sense, why is this so difficult? If nothing else copy what others have done and that seems to work. My big question is “How can these guys build complex software applications for their clients, if they can’t work with a wiki”?

You know what scares the shit out of me, when I think of over 1 million people in the Indian IT industry who are out there. At least these people are taking an initiative and trying to learn something by attending these sessions. But what about those over million software professionals who don’t even have the drive or energy to learn something new?

Victim of Chaos

Wednesday, May 28th, 2008

Finally Bangalore is blessed with a new airport. Few of us happened to travel from Bangalore to Mumbai on the inaugural day. While I was excited to be part of the new airport experience, I was scared that we would end up becoming victims to the chaos at the new airport on the first day. Well we really did not have a choice, so we embraced it.

The new airport is 45 Kms from the city. So we had to leave 3 hrs before the flight so that we could get there at least an hour before the flight takes off. Luckily it just too us less than an hour to get there. The airport looked beautiful from outside. It’s very nicely done. At par with most international airports.

New Banaglore International Airport

When we reached the airport everything seemed fine. We did not find people running in different directions like headless chickens. But this joy did not last long. The most frustrating experience turns out to be a damn software installed at the airport.

Venkat Subramaniam and I show up at the airport, we are thrilled to see a checkin kiosk. Venkat and I rush to the kiosk to checkin.

Checkin Kiosk

While Venkat is happy and thrilled to be part of the new airport experience, the screen times out.

Screen Times Out

Venkat patiently goes thru the process again. And guess what he finds?

Touch Screen with tiny check boxes

A touch screen. Notice we have to check the 4 check boxes, mostly meaning the same thing and there is no option to check all in one go. The funny thing is if you see the size of Venkat’s finger is equal to 2 check boxes put together. The problem is not that Venkat’s fingers are fat, but the items on the screen are so damn small. With great difficulty we click all the check boxes and then what next? Venkat and I stared at the screen for a couple of mins, we could not find any Continue or Next button. After a couple of mins, Venkat screamed in joy (or was is frustration), when he found :

Scroll Bar

A scroll bar at the right corner of the screen. With great difficultly we managed to scroll down and then clicked Continue. But I think by mistake we had forgotten to check one of the check boxes. It complained about it. (Well, they had validations.) After fixing it, we moved to the next screen, on the next screen, we entered our reservation number and finally it complained that they cannot check us in and asked us to see a representative at the checkin counter. All of this to finally go back and stand in the queue.
So what was the real problem with this software? I’m sure they would have functionally tested this software. The problem is they would have never tested it on a touch screen. It was simply not usable. This is an example of a disgusting user experience. If you find these guys, shoot them down. Such a disgrace to the software industry.

Screaming and yelling we go join the checkin queue. After waiting there for 10 mins, we were told that they had an issue. I guess they somehow heard Venkat’s talk on Agile tools and took automation too seriously. They forgot the porters. They thought they could eliminate manual labour and automate that. Turns out that they could not checkin anyone till they found some porters to lift the luggage off the belt.

Long Queues

Luckily we did not have any checkin luggage, so we could avoid the queue and get ahead.
Well if you live in Bangalore and have not visited the new airport, you are missing something.

    Licensed under
Creative Commons License