Welcome!

Apache Authors: Kevin Benedict, Jayaram Krishnaswamy, David Smith, RealWire News Distribution, Alfredo Diaz

Related Topics: SOA & WOA, Java, XML, Websphere, Weblogic, .NET, AJAX & REA, Apache

SOA & WOA: Blog Feed Post

Agile, Offshoring and Dreyfus Model of Learning

Agile works!

Agile works!

If you have any doubt about it just look at the adoption rate … look at the study results published … or just try it yourself.

Offshoring also works!

Again, if you have any doubt, just look at the growth of offshoring … look at the success of the success of the India based IT companies … try to find a reasonably large company which has no offshore presence.

People or Process … which is more important?
If you are following agile methods then … obviously … people are more important. In fact it is clearly stated in the Agile manifesto. Off course, the manifesto does not say that process is not important but it emphasizes that people are more important than process and tool.

If you are into offshoring then the clear winner is process. Almost all large offshoring outfit have focused on process and have adopted SEI-CMMi model. On the same vein, CMMi does not say the people are not important, but the focus is clearly on processes and practices.

But, is this not contradictory?

Dreyfus Model of Skill Acquisition
One possible explanation is that both people and process are important. Successful agile implementation does not ignore process. Similarly, successful offshoring does not ignore people.

However, a better explanation can be found in the Dreyfus Model of Skill Acquisition.

If you search the net you will find tons of material explaining what the model is and I have included few of the at the end of this post. However, the simplest and the shortest explanation comes from Seth Godin:

The Dreyfus model of skill acquisition posits that there are five stages people go through:

  1. Novice = wants to be given a manual, told what to do, with no decisions possible
  2. Advanced beginner = needs a bit of freedom, but is unable to quickly describe a hierarchy of which parts are more important than others
  3. Competent = wants the ability to make plans, create routines and choose among activities>
  4. Proficient = the more freedom you offer, the more you expect, the more you’ll get
  5. Expert = writes the manual, doesn’t follow it

Dreyfus Model

Offshore Software Development, CMMi and Process Focus
When the offshoring started, the workforce comprised of Novices and Advanced Beginner with a handful of experts guiding them. The growth of offshoring was too fast to move the Advanced Beginners to become Competent in the required number.

Therefore, it was logical for the organizations to focus on gaining process expertise and the most logical choice was the SEI – Capability Maturity Model (CMMi). The focus was on “Conformance to Requirement”. It was necessary to have more people to do the same work but that could be absorbed through the huge gap of salary.

Every project needed to find at least on expert. That expert could guide the team and interact with the onsite people. Projects which could not find such experts failed badly.

The growth of the offshoring industry have validated this approach.

Agile Methods and People Focus
Agile methods became popular where enough number of Competent and Proficient software developers where available. Once a developer becomes Competent he is ready and willing to take ownership of his work.

“…you might see folks at this level typically described as “having initiative” and being “resourceful.” They tend to be in a leadership role in the team…even at this level, practitioners can’t apply agile methods the way we would like—there isn’t yet enough ability for reflection and self correction…” - Andrew Hunt

Agile methods were ideally suited for Proficient software developers. All you needed to do was to…

“…Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done…” – 5th principle behind agile manifesto!

It is no surprise that agile methods worked and worked very well.

The story of offshoring is not over yet!

Offshoring growth came down from the ridiculous  30-50% per year to more down to earth 10-15%. That allowed more time to have sufficient numbers of Competent and Proficient developers. There are around 2 million ITES professional in India and even if only a small percentage can be classified as Competent and Proficient developers, you still land up with a huge number!

No wonder the India software industry has started looking beyond “Conformance to Requirement”

What about the expert?

The expert observes the world but trusts his inner vision. He concerns himself with the depth and not the surface, with the fruit and not the flower.

When expert leads, the team is hardly aware that he exists. He is content to serve as an example and not to impose his will. He doesn’t talk, he acts. When this is done, the team says, “Amazing: we did it, all by ourselves!”

The expert shapes events as they come. He steps out of the way and lets the design speak for itself. His workings remain a mystery, he just shows the results.

This might sound familiar to you because this is an condensed and modified version of The Tao of the Software Architect.

Related Articles

Read the original blog entry...

More Stories By Udayan Banerjee

Udayan Banerjee is CTO at NIIT Technologies Ltd, an IT industry veteran with more than 30 years' experience. He blogs at http://setandbma.wordpress.com.
The blog focuses on emerging technologies like cloud computing, mobile computing, social media aka web 2.0 etc. It also contains stuff about agile methodology and trends in architecture. It is a world view seen through the lens of a software service provider based out of Bangalore and serving clients across the world. The focus is mostly on...

  • Keep the hype out and project a realistic picture
  • Uncover trends not very apparent
  • Draw conclusion from real life experience
  • Point out fallacy & discrepancy when I see them
  • Talk about trends which I find interesting
Google