Software Ideologies
-
Recently, I became older. Over the course of my life, this has been a disturbing trend. However, the alternative doesn't seem much more appealing. I'd be willing to "Benjamin Button" it for a few years, but that doesn't seem to be on the menu. Now, don't get me wrong, I'm simply getting older. "I'm not old", he says, quickly concealing his gray hair. I've noticed many older people ranting. It seems like it might be fun? So, I thought I'd experiment with it (in this post). I originally wanted to post this to my blog, but then realized I don't have one. So, I'm posting it here instead. I'm hoping that the villagers will keep their pitchforks and Tiki torches in the shed. At the moment, I can't afford to pay a bridge troll its fare to pass. So, anyhow, here goes...ranting powers activate... I've been thinking a lot about software methodologies lately. Mostly, because there is no beer left in the fridge. They always start out well-intentioned. "We keep falling behind our delivery schedules. Let's do something about that." Yeah! Initially, much like a Mogwai, they start out all "cute and fuzzy". Then, someone feeds them after dark. Suddenly, they're trying to eat your face off. OK, I digress, that might be some other critter. Honestly, I don't know much about Gremlins. I just know they're bad! I think a better name might be software ideology. After the good intentions are long forgotten, the dogmatic elements become dominant. "You can't do it that way." Why? Because, the methodology says its wrong. My favorite example is the Manifesto for Agile Software Development (http://agilemanifesto.org/). We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. I continue to agree with absolutely every one of these goals. If anything, its almost an anti-methodology. I suspect, but cannot prove, the pain of those well-intentioned heroes. However, it suffers the fate of most good intentions. It follows a life-cycle familiar to many of us. Step 1: Save the World - Some people with good intentions, recog
Yes.
-
You are becoming wiser. That's what is is. Not old, but wise! :) BTW, I do agree. I am wary of pattern lovers for the exact same reasons.
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
Yah, but a spiral is sort of a pattern too...right? :)
-
Recently, I became older. Over the course of my life, this has been a disturbing trend. However, the alternative doesn't seem much more appealing. I'd be willing to "Benjamin Button" it for a few years, but that doesn't seem to be on the menu. Now, don't get me wrong, I'm simply getting older. "I'm not old", he says, quickly concealing his gray hair. I've noticed many older people ranting. It seems like it might be fun? So, I thought I'd experiment with it (in this post). I originally wanted to post this to my blog, but then realized I don't have one. So, I'm posting it here instead. I'm hoping that the villagers will keep their pitchforks and Tiki torches in the shed. At the moment, I can't afford to pay a bridge troll its fare to pass. So, anyhow, here goes...ranting powers activate... I've been thinking a lot about software methodologies lately. Mostly, because there is no beer left in the fridge. They always start out well-intentioned. "We keep falling behind our delivery schedules. Let's do something about that." Yeah! Initially, much like a Mogwai, they start out all "cute and fuzzy". Then, someone feeds them after dark. Suddenly, they're trying to eat your face off. OK, I digress, that might be some other critter. Honestly, I don't know much about Gremlins. I just know they're bad! I think a better name might be software ideology. After the good intentions are long forgotten, the dogmatic elements become dominant. "You can't do it that way." Why? Because, the methodology says its wrong. My favorite example is the Manifesto for Agile Software Development (http://agilemanifesto.org/). We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. I continue to agree with absolutely every one of these goals. If anything, its almost an anti-methodology. I suspect, but cannot prove, the pain of those well-intentioned heroes. However, it suffers the fate of most good intentions. It follows a life-cycle familiar to many of us. Step 1: Save the World - Some people with good intentions, recog
The trouble with "methodologies" is that, sometimes, they fit the job at hand and the instigator/author gets all excited and writes a book about how well it all went and we should follow along and do the same thing, etc, ad infinitum blah, blah, blah. The problem, of course, with this is that no 2 businesses are the same. No 2 groups of people are the same. And therein lies the rub. All processes, no matter how well orchestrated, are people driven. And people, for the most part, act like mindless cats and are impossible to herd in any meaningful way. So, for me and me alone, the best approach has been to hire really smart people and let them get on with it. And they still all have personalities and characters and great ideas that tear down the "methodologies" and show them up for what they really are: a one size fits all problems that ends up being the problem. Yeah, I like the notion of agile but I'm damned if I'll follow along slavishly. That is dumb. Anyway, do what you want - people always do anyway. ps I am also gaining age - it's been and is being a fun run. Never let the bastards grind you down is the only pattern that really works for me. Have a nice weekend, cats.
Keep your friends close. Keep Kill your enemies closer. The End
-
Recently, I became older. Over the course of my life, this has been a disturbing trend. However, the alternative doesn't seem much more appealing. I'd be willing to "Benjamin Button" it for a few years, but that doesn't seem to be on the menu. Now, don't get me wrong, I'm simply getting older. "I'm not old", he says, quickly concealing his gray hair. I've noticed many older people ranting. It seems like it might be fun? So, I thought I'd experiment with it (in this post). I originally wanted to post this to my blog, but then realized I don't have one. So, I'm posting it here instead. I'm hoping that the villagers will keep their pitchforks and Tiki torches in the shed. At the moment, I can't afford to pay a bridge troll its fare to pass. So, anyhow, here goes...ranting powers activate... I've been thinking a lot about software methodologies lately. Mostly, because there is no beer left in the fridge. They always start out well-intentioned. "We keep falling behind our delivery schedules. Let's do something about that." Yeah! Initially, much like a Mogwai, they start out all "cute and fuzzy". Then, someone feeds them after dark. Suddenly, they're trying to eat your face off. OK, I digress, that might be some other critter. Honestly, I don't know much about Gremlins. I just know they're bad! I think a better name might be software ideology. After the good intentions are long forgotten, the dogmatic elements become dominant. "You can't do it that way." Why? Because, the methodology says its wrong. My favorite example is the Manifesto for Agile Software Development (http://agilemanifesto.org/). We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. I continue to agree with absolutely every one of these goals. If anything, its almost an anti-methodology. I suspect, but cannot prove, the pain of those well-intentioned heroes. However, it suffers the fate of most good intentions. It follows a life-cycle familiar to many of us. Step 1: Save the World - Some people with good intentions, recog
In my experience the problem is mostly just programmers who can't write decent software. I've heard programmers say "software architecture isn't going to work for us, that's only nice in theory." So no UI, business and data layers, no abstractions, no nothing. No matter your software ideology, that's going to end bad (they were lucky that the software didn't change all that much). Then I've seen software with a gazillion useless layers, just as bad. Or software that took a non-DI library and used it as DI (the result was a very awkward method to instantiate objects when you need them, and no DI of course). A completely wrong implementation of an ORM and the programmers who made the mess cursing the ORM (the problem really wasn't the ORM)... Or a "core" library that every application depended on, but which changed almost daily. These are programmers of all ages, not just the old farts. No matter how clear or vague the business requirements are or how well your business structure is or how good the tools are you use, such software never ends well. Maybe we should just learn to write software properly first. After that we can worry about tools and methodologies.
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
In my experience the problem is mostly just programmers who can't write decent software. I've heard programmers say "software architecture isn't going to work for us, that's only nice in theory." So no UI, business and data layers, no abstractions, no nothing. No matter your software ideology, that's going to end bad (they were lucky that the software didn't change all that much). Then I've seen software with a gazillion useless layers, just as bad. Or software that took a non-DI library and used it as DI (the result was a very awkward method to instantiate objects when you need them, and no DI of course). A completely wrong implementation of an ORM and the programmers who made the mess cursing the ORM (the problem really wasn't the ORM)... Or a "core" library that every application depended on, but which changed almost daily. These are programmers of all ages, not just the old farts. No matter how clear or vague the business requirements are or how well your business structure is or how good the tools are you use, such software never ends well. Maybe we should just learn to write software properly first. After that we can worry about tools and methodologies.
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
I wrote that post with you in mind specifically ;p Just kidding, I only talk about you when you're not around ;) If you read between the lines I'm just saying "not only the old farts are bad programmers, it's the young people too." Of course it takes a younger person to read between the lines ;p
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
In my experience the problem is mostly just programmers who can't write decent software. I've heard programmers say "software architecture isn't going to work for us, that's only nice in theory." So no UI, business and data layers, no abstractions, no nothing. No matter your software ideology, that's going to end bad (they were lucky that the software didn't change all that much). Then I've seen software with a gazillion useless layers, just as bad. Or software that took a non-DI library and used it as DI (the result was a very awkward method to instantiate objects when you need them, and no DI of course). A completely wrong implementation of an ORM and the programmers who made the mess cursing the ORM (the problem really wasn't the ORM)... Or a "core" library that every application depended on, but which changed almost daily. These are programmers of all ages, not just the old farts. No matter how clear or vague the business requirements are or how well your business structure is or how good the tools are you use, such software never ends well. Maybe we should just learn to write software properly first. After that we can worry about tools and methodologies.
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
In my experience the problem is mostly just programmers who can't write decent software.
I have worked with some real jerks. One guy in particular found an old and odd definition of a csv file, different to Lotus and MSFT (and everyone else for that matter) and he insisted on using his version in his code. Result, it couldnt read a csv created by say excell. And he did it just because he could argue he was 'right'. Crazy eh? Yet his line leader and manager let him get away with it. They were scared of offending him. I have worked with other plain incompetent engineers who dont know why a UI locks up when its thread is asked to do heavy processing. That team actually threw away an app I wrote just to write their own, and because they couldnt understand function pointers, and made a complete mess of it. One of the main reasons is fear of the new, the unknown. It is surprising how many SW engineers once they know something, cling to it, desperately. How unadaptable they are to new ways of thinking, and how attached to their code they are, as if it is their flesh and blood. All of this makes for a very bad engineer.
-
Yah, but a spiral is sort of a pattern too...right? :)
:laugh: The most common in the universe!
-
In my experience the problem is mostly just programmers who can't write decent software. I've heard programmers say "software architecture isn't going to work for us, that's only nice in theory." So no UI, business and data layers, no abstractions, no nothing. No matter your software ideology, that's going to end bad (they were lucky that the software didn't change all that much). Then I've seen software with a gazillion useless layers, just as bad. Or software that took a non-DI library and used it as DI (the result was a very awkward method to instantiate objects when you need them, and no DI of course). A completely wrong implementation of an ORM and the programmers who made the mess cursing the ORM (the problem really wasn't the ORM)... Or a "core" library that every application depended on, but which changed almost daily. These are programmers of all ages, not just the old farts. No matter how clear or vague the business requirements are or how well your business structure is or how good the tools are you use, such software never ends well. Maybe we should just learn to write software properly first. After that we can worry about tools and methodologies.
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Agree. It truly is amazing how many people with no real aptitude for programming choose it as a career. Then again, without them, I'd have a lot fewer contracts cleaning up their messes. So...for me, not sure if bad programmers are a good thing or a bad thing :)
-
Agree. It truly is amazing how many people with no real aptitude for programming choose it as a career. Then again, without them, I'd have a lot fewer contracts cleaning up their messes. So...for me, not sure if bad programmers are a good thing or a bad thing :)
Your current contracts are about cleaning up a mess, not your favorite pastime I think. Without those bad programmers your contracts would be about building cool new functionality in well-built systems that are ready for the next level. Functionality that's not possible or too expensive in the current software because it's such a mess. At least that's what I like to think :)
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
Sander Rossel wrote:
In my experience the problem is mostly just programmers who can't write decent software.
I have worked with some real jerks. One guy in particular found an old and odd definition of a csv file, different to Lotus and MSFT (and everyone else for that matter) and he insisted on using his version in his code. Result, it couldnt read a csv created by say excell. And he did it just because he could argue he was 'right'. Crazy eh? Yet his line leader and manager let him get away with it. They were scared of offending him. I have worked with other plain incompetent engineers who dont know why a UI locks up when its thread is asked to do heavy processing. That team actually threw away an app I wrote just to write their own, and because they couldnt understand function pointers, and made a complete mess of it. One of the main reasons is fear of the new, the unknown. It is surprising how many SW engineers once they know something, cling to it, desperately. How unadaptable they are to new ways of thinking, and how attached to their code they are, as if it is their flesh and blood. All of this makes for a very bad engineer.
Munchies_Matt wrote:
Crazy eh? Yet his line leader and manager let him get away with it. They were scared of offending him.
I've worked with people like that. The problem was that the really bad programmer pretty much build the system single handed and he was the only one who really knew what was going on. He got mad and stressed when he saw something he didn't understand, like lambda's in any other setting than LINQ :sigh: And in the Netherlands it's quite difficult and/or expensive to fire anyone, so that's not really an option as long as he delivers something.
Munchies_Matt wrote:
It is surprising how many SW engineers once they know something, cling to it, desperately. How unadaptable they are to new ways of thinking, and how attached to their code they are, as if it is their flesh and blood.
They sound just like people ;) The scary part is that this type of behavior is pretty much the default human configuration. Doctors, lawyers, politicians... They all share those same traits :~
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
I wrote that post with you in mind specifically ;p Just kidding, I only talk about you when you're not around ;) If you read between the lines I'm just saying "not only the old farts are bad programmers, it's the young people too." Of course it takes a younger person to read between the lines ;p
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
-
Munchies_Matt wrote:
Crazy eh? Yet his line leader and manager let him get away with it. They were scared of offending him.
I've worked with people like that. The problem was that the really bad programmer pretty much build the system single handed and he was the only one who really knew what was going on. He got mad and stressed when he saw something he didn't understand, like lambda's in any other setting than LINQ :sigh: And in the Netherlands it's quite difficult and/or expensive to fire anyone, so that's not really an option as long as he delivers something.
Munchies_Matt wrote:
It is surprising how many SW engineers once they know something, cling to it, desperately. How unadaptable they are to new ways of thinking, and how attached to their code they are, as if it is their flesh and blood.
They sound just like people ;) The scary part is that this type of behavior is pretty much the default human configuration. Doctors, lawyers, politicians... They all share those same traits :~
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Yeah, As Jung called it, 'To have or to Be'. Very good book about human psychology. (At least I think it was Jung...) https://en.wikipedia.org/wiki/To\_Have\_or\_to\_Be%3F Nope, its Erich Fromm. Bloody good read actually, it discusses for example intelligence. Is it a set of known, possessed facts, or is it a process, an ability to learn new facts? Too often we see it as the former, and act that way, but really, it is the later. And the more act that way the better we are in our work.
-
Recently, I became older. Over the course of my life, this has been a disturbing trend. However, the alternative doesn't seem much more appealing. I'd be willing to "Benjamin Button" it for a few years, but that doesn't seem to be on the menu. Now, don't get me wrong, I'm simply getting older. "I'm not old", he says, quickly concealing his gray hair. I've noticed many older people ranting. It seems like it might be fun? So, I thought I'd experiment with it (in this post). I originally wanted to post this to my blog, but then realized I don't have one. So, I'm posting it here instead. I'm hoping that the villagers will keep their pitchforks and Tiki torches in the shed. At the moment, I can't afford to pay a bridge troll its fare to pass. So, anyhow, here goes...ranting powers activate... I've been thinking a lot about software methodologies lately. Mostly, because there is no beer left in the fridge. They always start out well-intentioned. "We keep falling behind our delivery schedules. Let's do something about that." Yeah! Initially, much like a Mogwai, they start out all "cute and fuzzy". Then, someone feeds them after dark. Suddenly, they're trying to eat your face off. OK, I digress, that might be some other critter. Honestly, I don't know much about Gremlins. I just know they're bad! I think a better name might be software ideology. After the good intentions are long forgotten, the dogmatic elements become dominant. "You can't do it that way." Why? Because, the methodology says its wrong. My favorite example is the Manifesto for Agile Software Development (http://agilemanifesto.org/). We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. I continue to agree with absolutely every one of these goals. If anything, its almost an anti-methodology. I suspect, but cannot prove, the pain of those well-intentioned heroes. However, it suffers the fate of most good intentions. It follows a life-cycle familiar to many of us. Step 1: Save the World - Some people with good intentions, recog
Eric Lynch wrote:
Ranting wasn't as much fun as I hoped. I tried it. I don't think its the thing for me after all.
Your rant is too verbose, lacking insults, too intellectual, and not sufficiently emotive. ;) Here's a rewrite: > Software methodologies implies people have the intelligence to actually come up with logical methods. Instead management creates arbitrary rules in knee jerk reactions resulting in arbitrary software ideologies that we become mindless slaves to, genuflecting to the process god hoisted onto his throne, only to be cast into oblivion and replaced by a new god by the next manager and his particular psychosis. OK, still too intellectual, probably still too verbose. :-D
Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
-
Eric Lynch wrote:
Ranting wasn't as much fun as I hoped. I tried it. I don't think its the thing for me after all.
Your rant is too verbose, lacking insults, too intellectual, and not sufficiently emotive. ;) Here's a rewrite: > Software methodologies implies people have the intelligence to actually come up with logical methods. Instead management creates arbitrary rules in knee jerk reactions resulting in arbitrary software ideologies that we become mindless slaves to, genuflecting to the process god hoisted onto his throne, only to be cast into oblivion and replaced by a new god by the next manager and his particular psychosis. OK, still too intellectual, probably still too verbose. :-D
Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Yup, what you said :)
-
Agree. It truly is amazing how many people with no real aptitude for programming choose it as a career. Then again, without them, I'd have a lot fewer contracts cleaning up their messes. So...for me, not sure if bad programmers are a good thing or a bad thing :)
Yet another victim of the [broken window fallacy](https://www.investopedia.com/ask/answers/08/broken-window-fallacy.asp) :sigh:
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
Eric Lynch wrote:
Ranting wasn't as much fun as I hoped. I tried it. I don't think its the thing for me after all.
Your rant is too verbose, lacking insults, too intellectual, and not sufficiently emotive. ;) Here's a rewrite: > Software methodologies implies people have the intelligence to actually come up with logical methods. Instead management creates arbitrary rules in knee jerk reactions resulting in arbitrary software ideologies that we become mindless slaves to, genuflecting to the process god hoisted onto his throne, only to be cast into oblivion and replaced by a new god by the next manager and his particular psychosis. OK, still too intellectual, probably still too verbose. :-D
Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Marc Clifton wrote:
still too intellectual, probably still too verbose.
:elephant: software methodologies! Neither intellectual nor verbose. :) Can anyone beat my record of three words?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
Yet another victim of the [broken window fallacy](https://www.investopedia.com/ask/answers/08/broken-window-fallacy.asp) :sigh:
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
Thanks. I was unfamiliar with that one. I like the analogy.
-
Eric Lynch wrote:
Ranting wasn't as much fun as I hoped. I tried it. I don't think its the thing for me after all.
Your rant is too verbose, lacking insults, too intellectual, and not sufficiently emotive. ;) Here's a rewrite: > Software methodologies implies people have the intelligence to actually come up with logical methods. Instead management creates arbitrary rules in knee jerk reactions resulting in arbitrary software ideologies that we become mindless slaves to, genuflecting to the process god hoisted onto his throne, only to be cast into oblivion and replaced by a new god by the next manager and his particular psychosis. OK, still too intellectual, probably still too verbose. :-D
Latest Article - Building a Prototype Web-Based Diagramming Tool with SVG and Javascript Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Speaking as a master ranter! Don't get me wrong, I look forward to reading your rants.
Never underestimate the power of human stupidity RAH
-
In my experience the problem is mostly just programmers who can't write decent software. I've heard programmers say "software architecture isn't going to work for us, that's only nice in theory." So no UI, business and data layers, no abstractions, no nothing. No matter your software ideology, that's going to end bad (they were lucky that the software didn't change all that much). Then I've seen software with a gazillion useless layers, just as bad. Or software that took a non-DI library and used it as DI (the result was a very awkward method to instantiate objects when you need them, and no DI of course). A completely wrong implementation of an ORM and the programmers who made the mess cursing the ORM (the problem really wasn't the ORM)... Or a "core" library that every application depended on, but which changed almost daily. These are programmers of all ages, not just the old farts. No matter how clear or vague the business requirements are or how well your business structure is or how good the tools are you use, such software never ends well. Maybe we should just learn to write software properly first. After that we can worry about tools and methodologies.
Best, Sander Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
Fir point although I don;t think our collective gripes are about software, per se, rather the gift wrapping it all seems to come with now mostly forced upon people by gullible managers. Still, each to their own.
Keep your friends close. Keep Kill your enemies closer. The End