Using new technology will make it faster

Not necessarily!

I heard an interesting throwaway comment recently that I thought I'd share. To paraphrase...

The system is being rewritten with new technology, so it won't be slower than what we have now.

While it's true that new and updated technology *can* improve performance, it's also very easy to misuse that technology and come up with something that performs perceivably slower. I've seen this a few times, predominantly where simple websites have been rewritten using new technologies. One of the biggest contributing factors is that new technologies often provider "better" and more complex ways to solve the same problem. For example, it's easy to see how a simple two-tier web application could be rewritten with a web-MVC framework and a distributed middle-tier added to make the architecture more fashionably SOA-like. Here, the added complexity could result in net performance gains or losses, depending on how the technology is applied through the design and architecture.

There's nothing wrong with refreshing a software (or hardware) system with new technology, but it's naive to assume that performance won't degrade. New technology generally brings added complexity, and this complexity introduces more things that can go wrong. Any software/hardware architecture should undergo *some* non-functional testing before it goes live, and this still holds true for systems that are being rewritten as part of a technology refresh strategy. Don't assume anything ... test it.

About the author

Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.

You can find Simon on Twitter at @simonbrown ... see simonbrown.je for information about his speaking schedule, videos from past conferences and software architecture training.



Re: Using new technology will make it faster

What strikes me most about that quote is how modest the expectation is! It's hard to see the business case for rewriting a system to be no worse than it currently is.

I wonder if the expectation would be the same were you to decide to rewrite it with the existing technology selection.

Re: Using new technology will make it faster

lol ... in this particular case the system is being rewritten because the current technology is no longer being supported (and therefore, patched) by the vendor. There was an expectation that the new hardware infrastructure would improve performance, but not the software. I wonder whether that comes from past experience or naivety.

Re: Using new technology will make it faster

There has never really much debate about whether Service Oriented Architecture is a good idea or not. Based on principles such as loose coupling, encapsulation, location transparency, and the separation of infrastructure and applications, it has always had broad appeal.

I also found this link more about this technology and its quite helpful as well. http://www.nagarro.com/blog/soa-in-a-jvm/

Regards
Nikhil

Re: Using new technology will make it faster

I agree, SOA does have a very broad appeal and is still very fashionable. There's always the risk that project teams/architects will take the principles too far though, and attempt to build a "full" SOA rather than something that's just "service centric".

Thanks for the link.

Re: Using new technology will make it faster

From where I stand (or generally sit - feet get tired otherwise!), this harks back to one of the things your mum (or dad) probably told you. "If it ain't broke, don't fix it." While danger lies within this statement too (change resistance for its own sake is clearly bad) - it still carries a heavy amount of truth. If a system performs satisfactorily and meets all the business requirements, then it should be left alone! Over time, it may be that an update to a newer framework/platform/approach/technology/methodology becomes beneficial - and an eye should be kept out to that effect. But don't change something just because you can! :)

Add a comment Send a TrackBack