Saturday, August 25, 2007

Separate teams by functionality not activities

I was reading article by Martin Fowler yesterday (Using an Agile Software Process with Offshore Development). As the name suggests the article proposes use of Agile processes for offshore development.

"...Separate teams by functionality not activity

Much of the traditional thinking on the onshore/offshore boundaries is based on the activity that people do. So analysis and design is done onshore, construction done offshore, and acceptance testing is done onshore. This obviously fits well with the waterfall model..."


I completely agree with this. We are doing this since last 2 years and works out really well for us. Here are some observations:


  • Sense of ownership: this approach certainly helps the team develop a sense of ownership, which is crucial in getting quality work done from team which is continents apart.


  • Develop SME in remote teams: It’s essential for sustainable development that people develop functional/technical expertise over a period of time. The idea of ‘Separating teams by functionality’ helps move in that direction. Taking care of all the activities in a focused area provides that kind of opportunities.


  • Monotonic/Restricted function area: This may result into monotonous work or restricted functional area. Depends on the size of the project, team and the work culture. It can be dealt with project rotation, pairing etc.




More on this topic, later.