5 ms·
While I think this article is a great discussion about the increasing complexity of software and how the trends driving that complexity are marketed, but I thin
by eightysixfour 6y ago
While I think this article is a great discussion about the increasing complexity of software and how the trends driving that complexity are marketed, but I think any article discussing these trends without also talking about the organizational structures of the teams delivering and running the code miss the point a bit.
When you have an organization with hundreds or thousands of developers delivering code that works together to support a business there is some types of complexity that are inescapable. So the question is “where do you want the interfaces between people and teams?”
SOA and microservices push that interface to the API layer which drastically increases the complexity of the code, but is a logical place to put the complexity if you consider the organization, people, and code a single system.
- xupybd 6y agoI think you're correct but I also think the article is correct. At scale there are levels of inescapable complexity. There are a lot of tools that help manage this complexity. However too many in smaller teams emulate bigger companies and inject wasted complexity by using tools that solve problems they don't have.
- still_grokking 6y agoMost organizations don't have hundreds or thousands of developers working on some coherent product. In fact this is quite seldom. So all the tech that solves problems that occur in such constellation should be quite exotic. But it isn't. The reason is that computing "on a mainframe" (the cloud) can be sold orders of magnitude more expensive. The rest is marketing of the mainframe owners.
- eightysixfour 6y agoDepends on how you define product, there are a large number of tech enabled Fortune 500s that do not sell a tech product but have built an integrated internal product for their operations that do need that scale. Airlines for example. But yes, I agree that most companies jump to this level of complexity too quickly.
- still_grokking 6y agoAirlines? How many billions of flights and passengers do you have to manage daily as an airline? Don't forget, computers are fast. Also I think airlines do just fine on core system form the 80'ies until now. They also don't tend to have software development teams with "hundreds or thousands" of people to my knowledge. So maybe not a good example. There is only a hand full of companies globally really in need of all that "serverless" stuff as I see it.
- eightysixfour 6y agoI am intimately familiar with the software and IT organizations of multiple airlines. You are wrong, they have large distributed software development teams building very complex software to run every part of the airline’s operations. Some buy off the shelf, others buy components off the shelf and focus on custom where they feel it gives them an advantage, and others have built the whole thing themselves.
- still_grokking 6y agoSo airlines were one of the first cloud users because they couldn't scale otherwise? And they're doing "serverless" these days as their IT operations are a good fit for this paradigm? Or could it be that they're small enough to get things managed with off the shelf software and/or something built and run in-house?
- eightysixfour 6y agoAirlines have been running their own data centers and fully understand the costs associated with managing their own infrastructure and many have decided to migrate to the cloud because they have decided it is worth outsourcing that function, it is not a key competency and they cannot keep up with the pace of innovation in the IaaS market. If they look at their IT as a complete system, the extra costs of the cloud are offset in a number of key areas, including increasing their ability to scale. You mention of the shelf software, what do you think the organizations that build the COTS stuff (like Sabre) in this industry look like? Where do you think it is run? They’re all moving to microservices and cloud hosting too, including serverless where they think it makes sense (and a lot of times when it doesn’t, just like everyone else). The smart ones (who understand Conway’s Law) are making these moves because they are enablers of smaller, more independent teams which we know are better at delivering software. The really smart ones know they’re paying the price in increased complexity the comes with a distributed system, but are willing to pay it because that cost is lower than the cost of the collaboration necessary to build a monolith of that size. Logistics companies are one of the most interesting intersections of software and the real world. Most organizations are making a mistake by focusing on scaling their software too early or unnecessarily. Airlines and logistics are not, they have business problems that their existing software cannot solve in areas the COTS options do not fit in their operations.