Imagine my surprise when I went to a vendors office to help him out with some issues. The office had two rooms and a hall, a restroom and a small kitchen. The rooms were used for residential purposes. I was wondering if this is any kind of place to do business.
The hall had three phones (two cordless), a laptop for each person, one wireless and one wired router with a broadband connection. The engineers had all the stationary and used an oscilloscope for debugging. They also had soldering capability.
In the time to follow I began to love the work environment, no meeting, no interruptions, everyone has lunch together, the atmosphere was very informal almost like working from home. The kitchen had everything we needed to eat, we could walk around freely or rest on the sofa set. The environment made us feel so agile, we could solder up any hardware changes we needed, discuss any changes we wanted. I was glad to see that the Phone was not ringing, I had no chat interruptions, I did not have to wait for people for lunch. I had no fixed process to follow, no timesheet to fill, no status report to update, no meeting to attend.
I felt empowered to work the way things work for me. I got to define any workflow I wanted to follow to reach success. I realized that I was treated as per my capability and could decide what I needed to do. I was treated on Merit. We did not have any manager, just a stake holder.
I learnt that the ideal team size is probably 3 to 4 with no managers, just stake holders in the success of the team. This is probably what Agile Programming is all about, but to see it work is something else. I think organizations should ensure that like software, people should also have high cohesion and low coupling. I understand how the open source community works now.