Increase your global team’s results with working code

Published: 17th February 2009
Views: N/A
Ask About This Article Print Republish This Article
Requirements and software development have a strange and sometimes strained relationship. Good requirements are necessary to ensuring you (the buyer) get what you need. But written in a prose style, they rarely offer a complete picture for the developer. Thus, over the years, developers have made many attempts at improving this situation. One consistent mechanism they have used is actually showing you what you will get--first by writing and sharing prototypes and eventually evolving to creating and showing working software.

This evolution has been a key enabler to the world of global development. As teams are dispersed, they need stronger means of communicating, and nothing speaks more loudly than showing the actual product in action. You now have a much earlier opportunity to shape the software as it is created. This, in turn, enables global development teams to better deliver what you want.

It started with prototyping

The concept of showing a prototype is not new-it has been common for a long time in software development. Fred Brooks wrote about it in his book, The Mythical Man Month (Brooks, 1975). His explanation of "rapid prototyping" included simulations of the product that were not bound by hardware constraints and demonstrated mostly "happy path" scenarios. Another main point Brooks made: Be prepared to discard one of the versions of the software that you build.


By the 1980s, 60% of companies were making use of prototyping-twice as many as in the 1970s (Bardgrave & Wilson, 1994). Much of the focus was on user interfaces. However, the tools available to create prototypes did not make it easy to integrate these user interfaces into the final product. The software development industry then dedicated a lot of work toward improving integrated development environments (IDEs) to allow faster and easier user interface development. Thanks to those advancements, today we can build the user interface and then develop the associated business code without discarding the original work.

Then came Agile Development

Enter the Agile Development movement. Its proliferation was in part made possible by a new breed of tools and frameworks that empowered developers to plan for short development iterations and demonstrate not only the user interface, but even a working version of the software. The Scrum software process incorporates this standard by requiring teams to demonstrate working software to their customers at the end of every month of development (Shwaber & Beedle, 2001).


While these tools and frameworks don't fully eliminate the need for up-front analysis and design, they form a common platform to address {{{infrastructure-level|infrastructure})) work, such as logging, error handling and "objectification" of database access. This allows developers to focus on the business requirements of the software they are devloping. So it's not necessary to "throw one away." Instead, as long as the code base resides on a stable architectural platform, designs are refactored and new requirements are iteratively and incrementally added to a growing code base.

Enhancing communication with working software

These methods have become the industry standard to utilize whenever possible, regardless of the formal process in place. In fact, several of our clients have used them successfully. By using desktop-sharing technology, globally dispersed software teams can now offer their internal customers a chance to review the software early, while it is being developed. The customers may then guide the software in the right direction-dramatically increasing the chance that the correct application will be delivered several months in the future. Thus, working software can actually keep a global development team on the same page and facilitate effective communication-a crucial element for success.

As the current global economic environment pushes companies to further gain efficiencies, more and more global development teams are likely to leverage working software to improve communication and ensure successful software delivery.

References


Bardgrave, B. C., & Wilson, R. L. (1994). An investigation of guidlines for selecting a prototyping strategy. Journal of Systems Management , 45 (4), 28-35.
Brooks, F. (1975). The Mythical Man Month. Addison-Wesly.
Shwaber, K., & Beedle, M. (2001). Agile Software Development with SCRUM. Prentice Hall.


Rob is the VP of Service Delivery at Coherent Solutions. Coherent Solutions, Inc. provides software development outsourcing for organziations that deliver commercial grade software. Since 1995, the company has helped over 100 software companies enjoy the benefits of global development teams.

This article is free for republishing
Source: http://robertduff.articlealley.com/increase-your-global-teams-results-with-working-code-787213.html


Report this article Ask About This Article Print Republish This Article


Loading...
More to Explore
 


Ask a Professional Online Now
27 Experts are Online. Ask a Question, Get an Answer ASAP.
Type your question here...
Optional:
Select...