Enough with the movements
codemanship.co.uk
Enough with the movements
1–10 of 27 posts
Re: Enough with the movements
#2 ... at the core of every movement, there's a little kernel of almost
universal truth ... become enshrouded in a shitload of meaningless
gobbledygook ... miss the underlying point completely
... there also tends to be a small kernel of software developers who
actually get it.
True evolution and progress in software development ... will require
us to drop the brands, dump the fads and the fashions, and focus on
what we know ...Re: Enough with the movements
#3Maybe Software Engineering is waiting for it's own Francis Bacon. Software Engineering is a young 'science' and the natural sciences went many hundreds of years before their watershed moment.
Of course then their is the argument that Software Engineering is a misnomer altogether and in fact it's an art/craft and well art is filled with movements all of which are untestable and (in)valid to the same extent.
Personally I think that Software Engineering is hard and most people are not up to the challenge and they latch on to movements as a safety net. Actual (real world) Engineers are weeded out during training in universities. We seem to let anyone call themselves a Software Engineer/Programmer and to be honest a lot of the ones I meet are well below par.
Re: Enough with the movements
#4This is not too long, and it's definitely worth reading. Here are some highlights: ... at the core of every movement, there's a little kernel of almost universal truth ... become enshrouded in a shitload of meaningless gobbledygook ... miss the underlying point completely ... there also tends to be a small kernel of software developers who actually get it. True evolution and progress in software development ... will…
The thing to do, is to focus on real value. That's hard sometimes and very natural other times. What empiricism works in software?
Re: Enough with the movements
#5I would say that software engineering is actually closer to architecture. Architecture has a solid basis built on science (otherwise the buildings won't stay up!), but a lot of it is being constantly refined through various movements. I don't think that its that surprising that software engineering got design patterns from architecture!
Re: Enough with the movements
#6I'm on board with the movements sucking part, but the "more complicated" argument is a strawman. Chess and physics are completely different from software engineering. Chess is different because the goal is strictly defined. Physics is different because it's attempting to describe a set of timeless, immutable and readily observable truths about the physical universe.
The problem with software engineering is that experimentation is very difficult. You can come up with all kinds of theories, but they are impossible to test in any kind of objective or reproducible fashion. Plus, even if you come up with something that seems universally true, it's not universally applicable. For instance, we know that NASA's dev process produces fewer bugs than other processes, but at a cost that's several orders of magnitude higher than typical business software development. In practice you care about concrete ROI and tradeoffs, so you might be interested in knowing whether unit testing or very strict static typing (eg. Haskell) is more reliable at preventing bugs. But even if you had unlimited time and resources to analyze all possibilities, I think you'd find it's heavily dependent on the type of software you're writing, and the types and applications of software are not stable or categorizable.
In short, software is not more complex, it's just less constrained. Software engineering is more like mathematics than chess, and more like economics than physics.
Re: Enough with the movements
#7Re: Enough with the movements
#8When I picture a proper, professional, employed software developer, I think of somebody who follows a "Right tool for the job. Go with what you know. Don't get caught up in the razzle dazzle" kind of philosophy/attitude.
Just seems like a lot of people in the industry don't always think this way, and I often wonder where/how they actually put these fantastic new technologies to use in the real world.
Re: Enough with the movements
#9- indirection
- abstract data types
- awareness / isolation of mutable state
- choosing the time of evaluation
what else? i am trying to get the fundamental, simple issues that underly "movements" or allow us to manage complexity (many gof "design patterns" seem to reduce to the above, for example). although i am not sure what movements encapsulate the above...
Re: Enough with the movements
#10> We've made it much more complicated than it needs to be. It's a lot like physics or chess (both set-theoretic constructs where simple rules can give rise to high complexity, just like code): sure, it's hard, but that's not the same as complicated. I'm on board with the movements sucking part, but the "more complicated" argument is a strawman. Chess and physics are completely different from software engineering. Che…
It's essentially the difference between science and engineering, and why so many people who are good scientists have trouble being good engineers. What is true today may not be true tomorrow when people are involved. Engineering is applied science. Applied by who? People.
The human brain is the universe for us, and it's not nearly as static as the universe that scientists work in. Brains learn, they adapt, they get bored and lazy, sometimes they make irrational decisions. They act differently depending on if/where the brain went to school, and what it had for lunch, and what the economy looks like, and how shiny an object is. That's what we're dealing with, and why there are so few "truths" in the field.