Stories
Slash Boxes
Comments

SoylentNews is people

posted by Fnord666 on Monday August 27 2018, @01:54AM   Printer-friendly
from the programmer-boids dept.

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/


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 3, Insightful) by Thexalon on Monday August 27 2018, @01:38PM

    by Thexalon (636) on Monday August 27 2018, @01:38PM (#726882)

    Software development is a complicated discipline

    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.

    it is performed by several people working together

    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.

    we can think of software as something that evolves.

    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.

    Being able to measure that evolution is then crucial

    I think this is trying to say "Have a changelog".

    if we want to be able to tell if the product we are building is holding up in terms of quality

    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.

    It provides extensive metrics

    Ah yes, the never-ending and completely pointless quest by non-technical managers everywhere for the magic "Do my programmers suck?" button.

    allows for the creation of custom rules

    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.

    while supporting integration with a continuous integration workflow

    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.
    Starting Score:    1  point
    Moderation   +1  
       Insightful=1, Total=1
    Extra 'Insightful' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   3