The Software Industry Can’t Have Nice Things?
I’m still very much enjoying Robert Glass’ The Facts and Fallacies of Software Engineering1
I’m still making my way through it, but I wanted to call out a corollary to one of the facts he covers (which even he calls out as possibly controversial):
An Australian colleague, Steve Jenkin, suggested to me his view of the rate of progress of the software profession. It’s average experience level, he said, has tended to remain constant over time. … [W]hat he meant was: with the explosion of newcomers arriving in this fast-growing profession, the increasing experience level of the growing-olders is more than overcome by the low experience level of the hordes of newbies. As I thought a bit about what Steve said, I came to this thought that I would like to introduce as a corollary:
The wisdom of the software field is not increasing.
If our experience level is not growing, then neither is our wisdom level. In fact, in our mad rush toward the new, we tend to discard much of the old. (For example, software’s newest and most popular methodologies, like Extreme and Agile, tend to make a point of rejecting the accumulated wisdom of the older methodologies.)
This insight particularly spoke to me.
It may be the local environment in which I work, or maybe the (professional) [echo?] chamber I choose to put myself in. Maybe it’s a pattern in the history that repeats every four-to-five years2, or maybe it is a fundamental shift in the industry.
In any event, the “DVCS solves all developer problems” and “Cloud solves all infrastructure problems” and “NoSQL solves all scaling problems” and “Rails is the only way to develop a website”-cacophony I often find myself in the middle of… may just be an indication that Glass’ corollary is, indeed, right.
Fred Brooks wrote almost 25 years ago that despite claims to the contrary, no silver bullet exists to reduce complexity of the software development process. And yet it’s become almost fashionable in the space to proclaim as loudly (and proudly) as one can: “Here’s a statement that implies I don’t know the history of the industry in which I practice my craft.”
If true, that’s certainly another point in support of Glass’ corollary.
I’m apparently not the only one who’s noticed the industry may be waking up to what Glass posits was true all along.
What do you think?
_______________
1 Thanks again for the reco, Ali!
2 What I tend to refer to as “an Internet generation”
When the industry complains it can’t get enough talent, I’m pretty sure some part of the problem is that talent is the last thing they’re actually interested in.
Tech has become decidedly shallow, but it’s not an accident. Professional ignorance (and the associated lower pay) is considered a good thing. “Cultural fit” is often coded language for “people who will go along with anything.” The last thing the industry wants is a bunch of people who recognize ideas that aren’t new and won’t work (past the sale of the company) when they see them.
Pretty sure he mentioned this repeatedly in the book, but I don’t have the copy I was reading anymore (it was a library copy) – it’s people with ridiculous claims trying to sell you on something. There’s just a lot more fake fluff to discard.
Sadly, no matter how smart (generic-) you think you are, you’re still affected by advertising. It’s not fashionable, it’s people trying to con you out of money.
(For “wisdom is not increasing”, I’d instead point to everybody building broken fragile solutions that will get discarded instead of fixed… but that’s totally something else, and not even software-specific.)
Ron, I work for a company that’s trying to build for the next 20 years, and I can tell you that not everyone who says “cultural fit” is looking for chumps. In our world it’s usually a filter for “annoying gasbag”.
-dbt
@Ron: I think that’s a bit of a cynical view, for sure, but there is a nugget of truth in there.
What’s interesting to me is the people making those claims often aren’t trying to sell anything related to the claim they’re making; it more seems that they’re trying to sell a particular reputation.
As a case-in-point, I’m reminded of Zach Holman and the numerous, very matter-of-fact “This is how we do things at github, and it’s so freakin’ awesome“-presentations and posts. There seems to be an implication that if you’re operating in the type of environment that isn’t-like-Github-Inc, then you’re just “Doing It Wrong.” I have trouble reconciling how holding these sorts of positions in translates to “good engineer”; good engineers recognize that not all environments have the same requirements, and good engineers adapt their solutions to the requirements; saying “Well, if your requirements are different than mine, they’re wrong” doesn’t seem to be the mark of what I’d call “a great engineer.”
(I don’t mean to single Holman out; I’ve never met him, so I’m basing the above on what I’ve read/seen of his, and maybe I’m reading it wrong; suffice it to say, lots of [loud] software engineers who seem to be selling a reputation possess this “You’re Doing It Wrong”-trait, about myriad topics. Linus Torvalds comes to mind. I’m sure we could all name others.)
@Mook: Agreed; though the interesting part is the bit above: a lot of the time, it’s people (working on some social-mobile-web-3.0 website that has nothing to do with the tools) advocating that the only way to build such a thing is with the buzzword technologies: has to be git, has to be Rails/node, has to be NoSQL, etc.
Despite these positions directly contributing to “The wisdom of the software field is not increasing,” I’m not quite sure how you’d start the conversation of trying to point this out.
(The more I think about it, the more I really do feel like a large part of it is the somewhat-hyperbolic locale in which I live/work, so I have a bit of sample-bias going on.)
@dbt: Yes, I believe “cultural fit” is the legally-acceptable way of saying “Does the team personally like this person?”