Business people and developers must work together daily throughout the project.
The most successful projects are the ones where the developers and business people are in constant, easy communication. One way to envision this is to compare two dramatically different scenarios.
In the first one, imagine a trading desk wants a new trading system. The old one has been around for ten years, and it works, but the competitors’ trading desks are starting to be more effective. There are many new features and points of functionality that are needed. So the managing director gets with the VP of technology and starts a project to create the next generation trading system.
To save money, they are going to outsource most of the development work to an agency based out of India. To be sure that all of the requirements will be met, consultants come in and spend six months doing analysis and documenting all of the needs. The contract is negotiated, and a lengthy project plan is developed. Another 18 months later, the promised system is finally delivered.
Meanwhile, across town, a similar trading desk faces the same dilemma. They opt for a different approach, however, one that will be more agile and responsive to the traders’ needs. Developers are hired and placed in seats right on the trading desk. It’s noisy. It’s distracting. But the developers rapidly become intimately familiar with traders’ needs.
Not only are the developers more intimately familiar with the needs of the business, but they’re also able to react immediately when conditions changes and the requirements need to be adjusted. Throughout the development of the product, new features are demonstrated and delivered incrementally. This results in a much more useful product, with new business value delivered more quickly.
While it should be obvious that close collaboration greatly benefits the business, this is one area that the developers sometimes have little control over. The business has to buy into this agile approach. If the business people consider themselves too busy to talk to developers frequently, it becomes difficult to maintain an agile stance.