One of the ongoing challenges in the software industry is how to best take advantage of the new technologies that are constantly emerging. At what point does the gain outweigh the pain? Is your business going to get real value from that cool new technology or will you be replacing it again in 6 month’s time? Here are some principles that I find helpful when evaluating new technologies.
Take it seriously: The technologies you use to build your product have a significant impact on how the capabilities of the product can evolve into the future. Take the time to evaluate the technology and understand what it can do for your business. Don’t rush an important decision like this, or delegate it to someone who only has part of the picture.
Think outside the “technology” box: Any new technology worth its salt has implications that reach beyond the software development team. What new capabilities does the technology add to the product, either now or in the future? Does it enable entry into new markets? Make sure that product management and marketing people understand the implications that are being discussed; if the technical experts can’t explain the impacts of the new technology in non-technical terms, it’s a good indication they need to understand it better themselves.
Separate fact from emotion: Any proposal to try something new is likely to run into two competing emotional reactions: fear of the unknown (“Not another thing I need to learn…”) and love of novelty (“This is soooo cool…”). Neither of these on its own leads to sound business decisions. Encourage the cynics to come up with sound reasons why the new technology should be avoided; encourage the enthusiasts to come up with sound reasons why it is good for the business. Critique the arguments and get a robust discussion going.
Expect to fail: When you’re doing something you haven’t done before, if everything works perfectly the first time then you’re not setting high enough standards for yourself. Run a pilot project with the new technology that can afford to fail. Even if the pilot project is a “success”, don’t take this at face value. Was full advantage taken of the new technology, or are there further lessons to be learned?
Understand the ecosystem: Using a technology that is widely used in the marketplace may open up opportunities. For example, using XML in your product may enable interoperability with other products. The huge range of toolkits and components available for .NET is a perfect example how the ecosystem around a technology can be as important as the technology itself.
Clear decision making process: If a technology is still under evaluation, make sure everyone understands this. The clearer you are about how the evaluation is being conducted, the more useful input you’ll get from the whole team. Be clear about the decision points; otherwise there is a danger of the new technology gradually being adopted by developers without a real check on whether it meets the needs of the business.
Concept to Market - Stephen Fenwick