Sunday, April 26, 2009

Agile adoption in offshore companies

I have been observing an Agile adoption trend/pattern in offshore companies (read it as India). The offshore companies are mostly into softservices with a small chunk into product development.

Offshore Software Services companies seem to be adopting Agile methods mainly due to the request/push coming from onshore customers. Many of these services companies still have projects running applying waterfall model too. My experiences while working with many of these services companies has made me to realize that, they want to retain both Waterfall/CMMI, ISO kind of certifications along with Agile. These companies are neither oriented towards Agile nor Waterfall/CMMI, and they are only customer and Profit centric.

P.S: In the above paragraph, I have used Waterfall and CMMI together. Even though I am not an expert on CMMI but I have observed that the CMMI recommendations are mostly applied with waterfall process by many companies.

Typically this is what happens when a new customer walks into one of the offshore services company. The offshore company show them the menu with various process options. Based on customers choice, the process would be customized and applied on that particular project.

Above observation is leading me to come up with some new questions and I have also attempted answering them...

Questions include
  1. Can CMMI and Agile coexist ?
  2. Can Agile methods sustain in such environments ?
Answering Q. 1 above, I do believe that CMMI and Agile can coexist. I have observed many companies bringing these two giants together.

Answering Question 2 above needs bit more explanation. I feel that, Agile methods cannot sustain in such environments. Reason being, the CMMI concepts coupled with Waterfall model needs a mindset which is totally opposite to the one needed by Agilists.

Some of the conflicting practices/mindsets include

1. Self organizing/Self Managing teams in Agile as opposed to "one man show" in Waterfall
2. Iterative Vs BigBang approach
3. Daily estimation Vs One time estimation
4. Customer collaboration Vs "Fire and Forget" customers policy
5. Regular Iteration Retrospectives Vs Postmortem sessions after the project

If the CMMI/Waterfall company wants to set up an Agile practice group, it is recommend to create two different groups to manage these two different processes rather than allowing only one person to manage both of them. I have interacted with many Quality/CEPG/CMMI Auditors, and they are so obsessed with waterfall concepts that they don't believe in Agile. If the stakeholders of the companies make such people as the sole group heads to run both Agile and CMMI processes, then it is pretty clear that, Agile would get slow death.

Another draw back I have observed in "Client driven Agile" projects include, that the offshore companies will never be able to appreciate the real value of Agile. Since Clients would be driving the Agile practices, the offshore teams just follow them blindly without knowing the Whys behind them. This leads to misconception and creation of Agile myths.
Successful implementation of Agile methods in offshore projects depends on couple of key points.
  1. It needs a good support from both onsite and offshore team
  2. The onshore team also has to ensure that the offshore team and the stakeholders running the company are well aware of Agile in addition to understanding the values and benefits of Agile methods.

Even though Agile is picking very fast in offshore projects, benefits of the offshore companies taking lead in propagating Agile is more than the onshore teams driving it !

Wednesday, April 01, 2009

Impact of "Individual Performance rating" on projects

Many thought leaders have recommended organizations to follow "team performance ratings" rather than "Individual performance" ratings. Many books and blogs have been written about the topic. Even though I have read the cons of individual performance ratings in the past, recent story that I heard from a friend reinforced my belief about the negative impact of "individual performance ratings" on morale of the employees.

Here is the story, John (Say, not real name), is working for a mid sized company and the company is following waterfall model of software development. John is working on a project which has tremendous pressure and tight deadlines. His project has fixed schedule and fixed budget(cannot add more people to the project too), no room for any flexibility in the project plan. The release date of the project is carved on the stone already. Just imagine what would be the fate of the developers working on this project !!

So, John went ahead and escalated this issue to his superior about the team loosing morale, loosing patience and getting stressed out on this project. Superior refused to provide any support because this project is a high profile project and if the superior tries to bail the team out or try to do anything which affects the project deadline, the Superior's "promotion" which is due this year would get affected !!

After listening to the above story, I felt that, as long as an organization has "individual performance ratings" in place, people tend to keep their individual priorities/preferences above "the team's" or "organization's" goal. In order to get good rating, Every one in the team works hard to achieve their personal goals and in the process forgetting the organization/team goals.

Taking the above story a bit further, what might happen to the project now ? May be the team would put all efforts to meet the deadline, might even don't express their concerns around stress with any one (avoiding getting beaten up during the performance appraisal). However this stress is definitely going to affect the quality of the code that the team is developing. isn't it ?

Do you have any such stories ? feel free to share them here.