Tuesday, February 24, 2009

Web 2.0 Building Blocks

MasterCard follows four guiding principles during any application development that involves Web services.

Faced with budgetary and time limitations, companies are using Web 2.0 technologies to speed, simplify and reduce the cost of software development. Making individual software components reusable and interoperable—like children’s building blocks—means these components can be rearranged and combined without limit to meet the demand for larger, more complex applications. However, we believe that to take full advantage of the software development benefits afforded by Web services, a business must understand the new principles of development engagement.

At MasterCard, we established these principles when our teams worked on two public-facing applications based on Web services. The first, Find-A-Card, was produced by multiple teams working together to deliver a sophisticated, powerful online product that enables MasterCard-affiliated banks to easily market their card products. Find-A-Card’s intuitive, rich user interface enables consumers to determine which credit or debit cards best suit their requirements by answering a few basic questions about their preferences regarding interest rates, card features and introductory offers.

The second application, ATM Locator, harnesses the power and popularity of Google Maps to create MasterCard Location Services. This expands a successful mashup with our existing ATM Locator application to enable search capability for merchants accepting MasterCard PayPass cards, prepaid Travel cards and ePower gift cards.

User searches yield the familiar Google map format, with icons indicating each service location. Location Services can be customized to meet specific branding needs, allowing it to integrate seamlessly and effortlessly into any delivery channel.

Based on these experiences, we’ve devised these four guiding principles to keep in mind during any application development involving Web services.

Application developers have to be more than just good coders.

In the past, software developers merely took orders from the business owner, but they now must consider themselves full partners in the business and act accordingly. They need to understand the business’s objectives and requirements backward and forward, so they can design and build applications based on how the business operates, rather than creating applications to which the business must adapt.

This means that developers must move their technology expertise to the background and act like members of the customer-facing staff. They must help drive the organization forward by anticipating future business needs—and make sure to explain how the technology can be leveraged to help create practical solutions that will serve those needs.

Individuals who do this will elevate their worth to the company and become known internally as “business technologists.” It can’t be said often enough that advancing the business is the obligation of every team member.

In addition, application developers must keep a clear destination in mind. The current half-life of business software is relatively short, so what developers build must be stable and be usable for a short period—and then lend itself to being repurposed, rebuilt and enhanced.

The business and technology teams behind Find-A-Card agreed from the project’s start on a few overriding objectives. These included employing a common, parameter-driven back end that could be implemented quickly in many different languages and achieving seamless integration into other Web sites and delivery channels.

In addition, both sides reached consensus regarding the revenue-generating potential of the finished product: It was quickly agreed that lowering our customers’ acquisition costs and increasing card-application approval rates were essential to making this product a success in the marketplace.

The payoff? Although Find-A-Card’s overall development time was comparable to that of earlier one-off Web applications, this platform can be rapidly and easily reconfigured to accommodate new countries and other languages. Follow-on implementations, which once required three to six months of additional development, can now be accomplished in a day.

Managers must realign their organizations to foster Web services.

The attitudes and methods that organizations have traditionally used to develop core software systems do not apply in a Web 2.0-driven world. Managers have to commit to altering their organizational structure and culture. From the CIO down, supervisors must acknowledge that utilizing Web services is totally unlike building other customized software: It requires vigilance, constant management attention and repeated reinforcement of why it has value to the organization.

Successfully implementing Web services requires that all members of an organization share technology and best practices across silos, so that the software applications produced will be compatible and interoperable. That may require changes in corporate governance, less reliance on top-down directives and greater emphasis on midlevel cooperation. Compensation policies might also need to be adjusted to reward managers and developers who demonstrate that they can collaborate effectively.

Companies need to select a few senior-level technologists to make sure that the appropriate application development guidelines and procedures are adhered to throughout the organization. Such individuals should be charged with thinking across organizational boundaries and ignoring old-style concerns that an application might be “not invented here.”

They should also verify that new applications use available software components or facilitate future reuse. The best candidates for this role will think fast on their feet and bring credibility and persistence to the task.

Companies should adopt Google’s mentality: Fast is better than perfect.

Since the half-life of business software isn’t very long, it’s better to push a product into the marketplace quickly, rather than wait until a future date when it’s considered absolutely finished. Both developers and business owners must agree on which compromises they are willing to accept regarding an application’s functionality, features and stability, as weighed against achieving greater simplicity and speed to market.

Online users are now accustomed to applications that exist in perpetual development. Popular products like Google’s Gmail are released publicly while still at the beta stage and wear that label for years. Though the initial product might not include all the features and functionality users need out of the gate, this approach enables organizations to test their business case and solicit practical feedback from real customers, which can be used to improve the final product. As a corollary, the organization must be open to “failing fast and failing cheap” and learning from mistakes in order to improve solutions.

Of course, this approach runs counter to the traditional attitude in IT departments, which requires that every line of code be tested until the application is bulletproof. But if your organization decides to wait an extra six or 12 months to perfect a new application before launch, it might miss the market’s window for capturing significant revenue.

Be sure to acknowledge that adopting Web services requires time and effort.

Management should not underestimate the significant changes that implementing Web services entails, or the challenges it poses to employees at all levels. Adopting Web services represents a radical change from the way corporations have traditionally developed software systems.

This approach cannot be implemented overnight, especially in companies where existing application development processes have been in place for decades and reflect long-standing employee attitudes and management structures. It takes significant time to alter the way individuals think and work on a daily basis, especially across a vast organization that employs hundreds of application developers.

All team members must be made to understand why their organization is implementing Web services and what benefits that will bring. Adopting a new paradigm for application development is never easy, but, in this case, the final results are well worth the time and effort invested.

Source: http://www.baselinemag.com/

No comments:

Post a Comment