Software takes a long time to build because it's always new. That is, software is trivially copy-able, so there is no reason to spend effort duplicating any software that already exists. (Legal reasons and "not-invented-here" syndrome notwithstanding.) This is a huge different from how the "real" world works, where almost all of the work involved in building, say, a car, is actually just the work of assembling identi…
> Software takes a long time to build because it's always new. And yet it feels like authentication and authorization code need to be rewritten for every application.
Why does it take so long to build software? (2020)
101–110 of 180 posts
Re: Why does it take so long to build software? (2020)
#102Software takes a long time to build because it's always new. That is, software is trivially copy-able, so there is no reason to spend effort duplicating any software that already exists. (Legal reasons and "not-invented-here" syndrome notwithstanding.) This is a huge different from how the "real" world works, where almost all of the work involved in building, say, a car, is actually just the work of assembling identi…
> Software takes a long time to build because it's always new. And yet it feels like authentication and authorization code need to be rewritten for every application.
What keeps giving though is CRUD. Naming things, forms, APIs, persistence, every time, rinse and repeat.
Re: Why does it take so long to build software? (2020)
#103Software takes a long time to build because it's always new. That is, software is trivially copy-able, so there is no reason to spend effort duplicating any software that already exists. (Legal reasons and "not-invented-here" syndrome notwithstanding.) This is a huge different from how the "real" world works, where almost all of the work involved in building, say, a car, is actually just the work of assembling identi…
I think focusing on this comparison to the real world assemblies and constructions doesn't yield much insight. The equivalent of a car being assembled is a compiler building an executable from source. You can consider factories to be just very, very long compiles, and forget about it. The question of why software takes a long time to build pertains to the coding phase, to which real life's analogue is drafting/design…
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.
Re: Why does it take so long to build software? (2020)
#104Software takes a long time to build because it's always new. That is, software is trivially copy-able, so there is no reason to spend effort duplicating any software that already exists. (Legal reasons and "not-invented-here" syndrome notwithstanding.) This is a huge different from how the "real" world works, where almost all of the work involved in building, say, a car, is actually just the work of assembling identi…
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.
Car specs are (certainly as opposed to software specs) very exact and constrained by dimensions, chemistry and physics. None of those have version numbers.
Creating a particular model of a car is decidedly single-paradigm. The same cannot be said for a functionally identical clone. You could make a functionally identical clone of an app in OOP or FP, nodejs, Rust or C++, MVC, MVVM or MVU, as a polyglot SPA + backend combination...
All this to say: software as an industry also lacks standardisation, process documentation and documented best practices. Software "best practices" are more like "accepted dogma at the time" or "least likely to bite us later", not "will work 99.999% of the time". Software as a product is immaterial to start with.
Re: Why does it take so long to build software? (2020)
#105Earlier quoted context omitted.
Totally agree. Move fast and break things? Let’s not. Let’s build carefully and methodically. Teach others how to build quality software. Stop regurgitating what you watch on YouTube 4 hour course. I’ve seen horrific, I mean absolutely bottom of the barrel code being taught to others. Especially in JS community - yes, I’m picking at you guys again. When teaching goes to shit, you’re breeding and propagating, institut…
Move fast and break things itself doesn't imply you shouldn't go back to patch it up and make it cleaner. People should be moving fast so they don't end up in endless discussions regarding or spend too much time on creating a foundation for a solution that doesn't work, and to inhibit perfectionism. People should also be transitioning from "make it work" to "make it good" once it works, prior to delivering or finaliz…
Re: Why does it take so long to build software? (2020)
#106Earlier quoted context omitted.
Fully agree. At first I was inclined to comment "it doesn't" because I can easily build small but useful tools in a matter of days. But your comment made me realize that maybe the reason is just that I keep using the same old C++ libraries to avoid surprises. In my last Ruby project, critical APIs changed multiple times during development. But Boost / openssl / curl / TBB / MKL are surprisingly API stable, given how…
I'm a high-level guy, and I avoid using anything under 20 years in existence. All the easy problems are already solved and well-documented, and less likely to break my code with a new release. I then try to write code in such a way that it would have worked 15 years ago and today both, working around platform changes. My current stack is Perl, HTML, CSS, SSI, PHP, SQLite, PGP, txt, and JavaScript. And yes, my sites d…
Re: Why does it take so long to build software? (2020)
#107Software takes a long time to build because it's always new. That is, software is trivially copy-able, so there is no reason to spend effort duplicating any software that already exists. (Legal reasons and "not-invented-here" syndrome notwithstanding.) This is a huge different from how the "real" world works, where almost all of the work involved in building, say, a car, is actually just the work of assembling identi…
While producing a machine, there are two steps;
1) designing the blueprint (takes a lot of time, unpredictable)
2) mass production (takes a lot of time, predictable)
Those steps in software development;
1) building the software (takes a lot of time, unpredictable)
2) deploying the code (takes virtually no time, predictable)
So the real difference is this: software is almost all about doing something new, each and every time. It's all flesh and has no bone: e.g. devoid of a long, very stable and predictable mass production stage. It's almost all about R&D, all of it's length. Hence 98% of the process is novel work therefore takes time and hard to predict.
Re: Why does it take so long to build software? (2020)
#108Software takes a long time to build because it's always new. That is, software is trivially copy-able, so there is no reason to spend effort duplicating any software that already exists. (Legal reasons and "not-invented-here" syndrome notwithstanding.) This is a huge different from how the "real" world works, where almost all of the work involved in building, say, a car, is actually just the work of assembling identi…
> Software takes a long time to build because it's always new. And yet it feels like authentication and authorization code need to be rewritten for every application.
Re: Why does it take so long to build software? (2020)
#109Earlier quoted context omitted.
I'm a high-level guy, and I avoid using anything under 20 years in existence. All the easy problems are already solved and well-documented, and less likely to break my code with a new release. I then try to write code in such a way that it would have worked 15 years ago and today both, working around platform changes. My current stack is Perl, HTML, CSS, SSI, PHP, SQLite, PGP, txt, and JavaScript. And yes, my sites d…
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.
Re: Why does it take so long to build software? (2020)
#110Earlier quoted context omitted.
I think focusing on this comparison to the real world assemblies and constructions doesn't yield much insight. The equivalent of a car being assembled is a compiler building an executable from source. You can consider factories to be just very, very long compiles, and forget about it. The question of why software takes a long time to build pertains to the coding phase, to which real life's analogue is drafting/design…
> 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.
(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 production process.