Submitted via IRC for SoyCow4408
Software development is a complicated discipline, especially when you consider that it is performed by several people working together.
Comparing it to emergent systems is useful because it provides a perspective where we can think of software as something that evolves.
Being able to measure that evolution is then crucial if we want to be able to tell if the product we are building is holding up in terms of quality.
I also describe a tool named NDepend that serves exactly this purpose (and as far as I know has no competitors). It provides extensive metrics and allows for the creation of custom rules, all of this while supporting integration with a continuous integration workflow.
Source: https://www.blinkingcaret.com/2018/08/22/software-development-emergent-system-ndepend/
(Score: 3, Insightful) by Thexalon on Monday August 27 2018, @01:38PM
It depends entirely on the application. A remarkable percentage of a wide variety of software development is simply a matter of shoving information from a UI into a database, and retrieving said information from a database and displaying it in a UI. With a little bit of basic arithmetic, statistical analysis and reporting maybe thrown in.
Except when it isn't, which is most of the time, because shops usually assign a ticket/story/task to individual programmers to get done, and while they can ask someone else for help ultimately they're mostly working on their own. And if you don't believe me that an individual and not a group is responsible for each change, watch what happens when those changes aren't occurring in accordance with the desired schedule.
Except that it isn't that at all, it's we hope intelligently designed, unless you're doing some sort of evolutionary algorithm kind of thing.
I think this is trying to say "Have a changelog".
There ain't no such thing as a software tool that can determine quality. Nor can such a software tool even theoretically exist: For example, all high-quality software should always be able to finish processing for an operation under all circumstances, and a generalized tool to determine if that is happening is something that cannot exist per Alan Turing's famous discovery decades ago.
At best, we can tell if the product we are building stands up to automated and manual testing by qualified QA folks.
Ah yes, the never-ending and completely pointless quest by non-technical managers everywhere for the magic "Do my programmers suck?" button.
a.k.a. "vendor lock-in", a.k.a. Some strange rules language that fits some designer's idea of what someone might possibly want to do but is less flexible than shell scripting.
It has a git repository, and a trigger on commit to run your automated testing suite. But this wording makes it buzzword-compliant.
Count me among those who isn't impressed by SoyCow4408's perfect expression of what comes out of the back of a cow.
The only thing that stops a bad guy with a compiler is a good guy with a compiler.