One of the most interesting problems I worked on was a deadlock between the JVM and the Database.

This blog post is a case-study of some sorts.
I will talk about the symptoms we saw, how we analysed the problem, and the solution.

Technologies involved
A J2EE web application running on Tomcat
Oracle Database

Remind me one more time – what is a deadlock ?
Deadlock happens when two (or more ) processes have acquired  a lock and are now waiting for the other process to release its lock first- before it can proceed further. Since each process would wait for the other process to complete first- it becomes a deadlock- i.e there is no way out unless someone intervenes.Oracle will immediately detect and  break the deadlock by killing one of the process, and I believe JVM also has a similar recovery process.

So what so special about this deadlock ?
When you have a deadlock across the two systems i.e one lock exists in the JVM and another lock in Oracle, it is impossible for either system to detect it- because they simply do not know about the existence of the other lock . Each system considers it as a uni-directional lock. Uni-directional locks aren’t a problem(generally). Deadlocks are . In our case, the lock in the JVM was by the usage of a synchronized block and the lock in Oracle was because of update on one table and a pending commit.  Both these locks would exist for ever. Why? Read on…
Continue reading »

 

There is a team which commits to 10 features but ends up delivering 11 features. In the next release cycle (Scrum practitioners: read sprint), the same team commits to 11 features and ends up delivering 12.

Now consider this…

Another (a very similar) team commits to 15 features and delivers 12. And in the next time release, commits to 18 and delivers 14.

Leaving all other factors aside – which of these two teams is performing  better ?

When you see these teams in isolation, it’s very easy to appreciate Team #1 but  Team#2 will appear as a continuously under-delivering team. But the perception changes, when you juxtapose the two teams and compare them – Team #2 stands out as the winner.

You get what you measure.If you measure commitment- that’s what you will get. If you measure productivity- you will get that instead. So my question to you is-

Do you value commitment more than productivity ?

I don’t…
Continue reading »

 

Everyone knows about Scrum-buts , but what about Scrum-nuts ?

Since I could not find any reference to this term on the first page of search results on Google , I am going to take the liberty of offering the first definition:

“Scrum-nut is a person- who is basically nuts about Scrum-  to an extent that he\she starts behaving like a nut.”

For a Scrum-nut,  Scrum is a religion- which needs to be practiced. Followed. And in some case fanatically.
Continue reading »

© 2011 Technology Cafe Suffusion theme by Sayontan Sinha