Advertisment

Not all Technology May Suit You!

upgrading to new technology doesn't necessarily mean that you will have to pay more for it. Often the fault lies in assigning and managing microservices.

author-image
Sunil Rajguru
New Update
Hammering a nut on a wooden board

ThoughtWorks is a company which provides software design and delivery, along with relevant tools and consulting services. Martin Fowler, the Chief Scientist, ThoughtWorks, is a regular public speaker and author of many books including Refactoring, which made the practice of code refactoring popular. We caught up with him and got his views on a few issues.

Advertisment

How agile is better and cheaper technology?

It comes down to our focus on technology. And this understanding, which a lot of people don't get, is that high-quality technology is cheaper and faster. In most of the things in our life, we're expecting to pay more for quality.

If you want the better phone or better car you pay more. For software, it’s not like that. The internal quality of the software – how well it's written, how well it's modularized and how well it's tested – the higher the quality, it's actually cheaper to produce.

Advertisment

And it's much faster to change. That understanding is something that we at ThoughtWorks do. Similarly, if you build the software fast, it doesn't matter how good it is, unless you have good collaboration with the rest of the business. That’s another area where we need to have an understanding. That's part of the whole agile software movement.

On the whole concept of microservices

Well, one of the things that we found is that some organisations have struggled because they’re building a very large piece of software. When they want to make some changes to parts of it, they can't because it’s just so big. The team of people producing it is similarly interconnected.

Advertisment

One of the things that happened was that we started talking about this about five or so years ago. The idea of microservices is where you take a big system and you break it down into small pieces. Each piece has a team of people behind it, but we’re able to work on that piece and deploy that particular piece only.

However, the question is, if you’ve got all of your systems now divided up into these separate pieces, what happens to the user interface (the front end). In some places that remains still one big thing. But then I can’t put my stuff into production without coordinating with everybody else, who is working on the same front end. So what is microservice? Does it break down the front end in similar lines?

So I can put my service, I can upgrade my service, upgrade the front end to that service and put the whole thing in production without affecting everybody else, without having to coordinate with everybody.

Advertisment

The micro front end is really just a development of this specific method of the front end in coordination with what we did in the back end. However, this isn't for everybody. It's not the approach you should use everywhere. In fact, it's not an approach that you should use in most places.

On Artificial Intelligence and Machine Learning

There’s still a bit of ML going on, but it’s still a very small portion. And to me, the real challenge with any kind of AI or ML system isn’t so much how it comes up with answers: It’s how it can explain the answers it came up with. That is a really open challenge with AI systems at the moment. What happens when you say to an AI: Well, why? What's the reason?

Advertisment

This is especially true when any disaster occurs. A good example of such a system is the 737 Max, taking over the human pilots and the crashing the aeroplane. No one cared about it until people died. That's always been the case with computer systems.

If you can't go back and figure out why you got the answer you did, then you've got problems. That's going to be an issue for many ML systems if they become more prevalent. But at the moment, it's still really a small part. Most of what we do is not AI. People talk about it a lot, but it's actually not that important.

On open source today

We’ve certainly seen a lot of improvement in the open-source movement. We are certainly seeing a lot more acceptance and we see it in our work too. Back in the early 2000s we really had to fight to use open source technology in our software development projects. Now it’s pretty much understood and straightforward. That’s true across the industry. People are used to using open source work.

Advertisment