Why does it take so long to build software? (2020)
111–120 of 180 posts
Re: Why does it take so long to build software? (2020)
#112This is but one part of it, but what I see is that software has a uniqueness to it because so much of the complexity is hidden. Really, nobody can see it being created except the actual developer building that piece and maybe one level up if they are good enough to review the code. But to everybody else its a mysterious black box. Now this not only hides the complexity but actually amplifies it because at the ground level people are highly incentivised to inject complexity into their work. It feels good to make something complex. You feel productive and it definitely helps your resume if you can claim to have worked on something highly complex. Everybody else is impressed. The team gets more resources to support this amazing thing being created.
So hiding the complexity not only prevents exposure but means many people in the production chain incentivised to create complexity can get away with gratuitously injecting it into things. Whole frameworks will be deployed where 10 lines of code would have worked, new libraries will mysteriously appear and get used for 1 function. Layers of indirection in the design will appear to abstract things that have only 1 concrete implementation. etc etc. All of this is invisible above 1 management layer and therefore unmeasurable and unmanageable. But the outcome is, the end result takes much longer than you would surmise from the bare bones functionality or requirements.
Re: Why does it take so long to build software? (2020)
#113Earlier quoted context omitted.
I agree, feels like we've conditioned to accept software playing dumb and being unreliable. A couple decades ago, random glitches attracted much scrutiny, today we just take it for granted.
Is that really true? I remember routine blue screens and system hard-crashes a couple decades ago. They're not commonplace today. We're primed to remember the past rosily.
Windows 2000 was the most solid and stable Windows OS I've used, no issues at all with it, even the pre-releases.
Re: Why does it take so long to build software? (2020)
#114Earlier quoted context omitted.
> The conclusion is that the tools to build software from a known specification to working code are sub-optimal. That may be true, but I don't know that your example supports it. Cloning an app doesn't mean you had a specification for the app. The tools to build a known specification from an existing app are sub-optimal, as are the tools to build a known specification from scratch. I've only rarely in my career had t…
> The tools to build a known specification from an existing app are sub-optimal, as are the tools to build a known specification from scratch. That actually reinforces my point ;-) All the steps in the toolchain could benefit from more agile interactions, allowing the programmer to spend less time fiddling with syntax errors and recalling which functions need to be applied in what order, and more time evaluating and…
I keep going back to the example of elixir/erlang (mostly because I'm getting into it now) but the tooling that is available in erlang is much more powerful than any newrelic or what ever monitoring/introspection tool we use now. And we've had it for years, but we've just ignored it.
Re: Why does it take so long to build software? (2020)
#115Earlier quoted context omitted.
If that were true, it wouldn't take long to build from scratch a functionally identical clone of an existing application. Yet it does. The conclusion is that the tools to build software from a known specification to working code are sub-optimal.
I don’t want to sound smartass but building an identical clone of an existing application is very fast and often totally automated. That’s what your compiler chain does.
Re: Why does it take so long to build software? (2020)
#116Earlier quoted context omitted.
> The equivalent of a car being assembled is a compiler building an executable from source I disagree. The equivalent of a car being assembled is copying the binary executable from one storage medium to another; building an executable from source would be the equivalent of building the production process for a single car model, while coding is the equivalent of designing and testing that model.
This is where the analogy breaks down somewhat - so I propose you imagine a universe in which `cp` doesn't exist and you have to build each copy of an executable from scratch :). (Perhaps you're signing each copy with a different key, or something.) I insist on connecting compilation to construction of individual cars, because the source code corresponds to the engineering plans of a car , and not to the plans of the…
But looking at getting functionality to users, looking at the business problem, the time/effort/risk is spent on car design and software development, and much less time and risk is in the copying business. (Yes, Tesla recently had car copying problems, but they brute forced their problem, and now they are pretty good at factory copying too.)
Re: Why does it take so long to build software? (2020)
#117I really like Dorian Taylor's analogy of software to movie production: https://doriantaylor.com/softwares-ailing-mythology Their point is that software is a refinement of a process to the point where it can be executed by a computer (in a generally bug-free manner). Just like a movie spends a lot of time in pre-production and writing the script, we must spend a lot of time on refining our own understanding of our pro…
To continue your analogy it would be like hiring script writers, camera operators and editors basically off the street that have never worked on similar projects, raising money and hiring more of them when things don't go as well and spending most of the time figuring out how does one make a movie instead of focusing on the creative parts
Re: Why does it take so long to build software? (2020)
#118When someone asks "Why does it take so long to build software?" and you want to verify whether said person has any intelligent thoughts on the matter, ask them: "How long do you think it should take to build software?"
About as long as it takes to figure out what the software should do. Add one day for each 1000 lines of code for typing carefully and adding automated tests.
Re: Why does it take so long to build software? (2020)
#119Earlier quoted context omitted.
I refuse to write anything that supports any IE version < 11 on principle. And I will relish the day I can kill support for IE11, which is hopefully rapidly approaching. I admit I do enjoy a stack which includes text files, though.
It seems to me like that stance does nothing helpful, only lets the developer off the hook of attempting something difficult and annoying. At the same time, it leaves human users who can't change their browser high and dry.
Re: Why does it take so long to build software? (2020)
#120Because we don't dare making bold decisions like: * Throw out all MySQL/MariaDB installations and replaced them with PostgreSQL because it is objectively, provably better. * Stop writing build-systems in untyped languages, because they are less productive when used by a team.