Anybody care to explain what is NAMBLA and what is the hype about it to non-Americans?
I’ve read this blog for years, and I care about the code I produce. However, we still whip out cowboy code in a pure chaos environment. It’s not something I can control!
When your management and customers ‘just want it now, and f%*k the spec’, when they don’t understand what you do and don’t want to, then it is very difficult to do anything else. And they all care about Agile/Waterfall/RUP/RAD/JAD/acronym-of-choice, but only so long as they don’t have to learn about it. Hence, even when you do have some design patterns, they can be poorly understood and implemented.
The ones you call unreachable are the ones who are constantly tasked to do miracles in short timeframes. They juggle dozens of projects at any point in time, and fundamentals are the last thing on their mind, and the last thing that their management cares about.
Your inclusion of a disgusting reference to NAMBLA - even in jest - says a lot about yourself.
I agree - what a sick, sick joke - Jeff you should be ashamed of yourself
It is really quite amazing to see the number of comments that pick apart all Jeff’s articles, misinterpret it in some way and then argue strongly against that misinterpretation.
I would say that Jeff’s goal is to create an entertaining blog that tries to gently push software developers in the right direction. He is not writing the holy doctrine of software development.
Also, sometimes he posts about certain topics before he has mastered them completely. This provides unique insight into the learning process that all software developers are constantly undergoing.
So anyway, thanks Jeff. I enjoy your blog and find it both useful and entertaining (even if I don’t always agree with you).
Wow!
Agile/TDD/SOLID people think they are better than others. When someone posts on their blog an article that says their NOT adapting the hype then, guess what? You see BS comments all over. When these zealots posts on their blog on how a certain methodology changed they way they code then no one complains. Why?
It certainly is amusing to read the comments here. A phenomenon that can be seen in other blogs as well.
NAMBLA. wow.
Hey Jeff, don’t miss the 97 things every architect should know (Oreilly).
You should also check out the Get’er-done methodology. Too much process indicates you are managing automatons.
Scrum master sounds very cool.
How about SCRUBLA, Jeff? New methodology focusing on, erm, scrubbing. Sort of like screen scraping, but for koderz.
Throwing a book of rules at a terrible programmer just creates a terrible programmer with a bruise on their head where the book bounced off.
So, I’m, uh, skeptical that throwing a copy of Strunk White at someone who’s a terrible writer is somehow going to work better than this. Yet when I say that, I get all kinds of grief from the True Believers who think that placing a copy of that tome carefully on the shelf will turn a typist who produces vacuous, flabby, pedantic, jargon-filled text into a Good Writer.
Does not compute.
I was hoping for some ninja moves.
The number of modern programming systems and concepts have now expanded beyond the time or ability of any single programmer’s ability to master.
And to what end are all these wonderful new names for distinctly not-new ideas? My Windows machine is arguably no faster and no more or less troublesome than my old DOS 6 machine. We’ve replaced unscheduled crashes that require a time-wasting reboot with scheduled security updates that require a time-wasting reboot, followed by an inane suggestion that I review the updates. (Gosh, yes, I’m so excited about the latest Windows updates I’m about ready to s**t my knickers! Aren’t you?).
My Ubuntu machine is little better. The device driver recognition that was solved with Windows is so poor that I can’t see any USB or even print using an LPT1 port without major machinations.
So what, exactly, have we bought with object oriented programming, agile development techniques, et. al? My day-to-day application experience hasn’t changed much at all. I’ve got video and sound on the computer now. Yay. And I can handle bigger files in memory. Yay. Oh, and I have a cartoon colored point-and-click shell. Yay.
And so what? I think my best trade-off point was Windows 2000. Nothing much has improved since.
Are you people not aware that this blog’s purpose is simply to get your comments, boost page views, self-linking, etc?
This blog is for marketing Jeff.
I have to say you are dead on. I won’t go into it much further, but I appreciate your post on the subject. Oftentimes the best approach is a little more balanced.
It is really quite amazing to see the number of comments that pick apart all Jeff’s articles, misinterpret it in some way and then argue strongly against that misinterpretation.
… Jeff’s goal is to create an entertaining blog … He is not writing the holy doctrine of software development.
So anyway, thanks Jeff. I enjoy your blog and find it both useful and entertaining (even if I don’t always agree with you).
Here, here! Yeah, what he said! I second the motion!
@ThatGuyInTheBack:
I think my best trade-off point was Windows 2000. Nothing much has improved since.
For me, it was the PDP-8. With no peripherals. Only front panel switches.
(OK, just kidding. At least there were no holy programming writs back then to make a programmer feel guilty for blasphemous ignorance.)
The most interesting part of this debate, I think, is stackoverflow.com, though it hasn’t been mentioned much. Jeff and Joel have already put their money where their mouth is in backing an idea on how to better the state of programming in the industry. Unlike a lot of the pie in the sky fantasy systems out there (TDD, SCRUM, SOLID) which are boring, bureaucratic, process heavy, and easily misused their solution is fun, has a low cost of entry (virtually none), is immensely practical to programmers at every skill level, and is virally infectious. Not to mention that it is flexible to the needs and state of the industry.
Stack Overflow is only a few months old and already it contains many a substantial critical mass of collected wisdom from across the breadth and depth of the software industry. Ultimately I think the full impact of stackoverflow.com in advancing the state of the industry will be very substantial and will vastly exceed many of the fad processes, checklists, and rulesets of today.
Wrote a reply on my blog here:
http://nothingyoumissed.wordpress.com/2009/02/16/caveman-marketing-jeff-atwood-and-solid/
To keep it short, I (mostly) disagree.
Jeff, you nailed this one down so good, people are gonna scream your name for generations to come, and point to your blog when someone will try to sell them principles ever again … and the other 80%, well they still won’t know neither side of the story …
I can fell the hurt and the damage your produced out there …
Good job, I felt this way all along …
I’m not disagreeing with your comments, but would like to expand on them a bit. And MAYBE lower the heat a bit.
Like you, I experienced the structured debate first hand in the 70’s, and the new ideas since, like object orientation. Before languages came along that supported those ideas with built-in constructs, they had to gestate in an environment of more primitive, but popular, languages. To apply those ideas meant manually, mentally, forcing them into more primitive code.
For example, I started structured programming in unstructured Fortran, COBOL, BASIC, and various assembly languages. How did I do that? By adopting fill-in-the-blank patterns of ifs, gotos, and labels (templates, of a sort) that simulated do while, case, etc. Lacking good editors, cut paste, macro facilities, etc., it required typing in those patterns, filling in the blanks, every single time. That took time and mental effort. The benefit to me was the clarity afforded by structuring, but that was lost on others who hadn’t grasped the ideas yet. And they weren’t interested in learning, because it meant more work, and there are always more pressing priorities.
In the 80’s, I experimented with doing OOP in C, using similar conventions, patterns, and mental gymnastics. There was some value to it, but it did add work, and was not appreciated by others who found it weird.
The real advances came, not when the ideas were born, but when mainstream languages became widely available that supported them directly. Those higher-level, more abstract, ideas then became easy and natural (and the debates went away).
I think one aspect of the debate about SOLID and other formalized principles is that they add work (mental, training, or otherwise); an uncooperative C++ must have the ideas hammered onto it manually and deliberately.
Languages and tools down the road will likely support many of those principles directly (some may already, but I don’t want to get tangent debates started). When that happens, it will all be easy and natural, and the debate will go away.
So, both bashers and cheerleaders of SOLID have valid points of view. Bashers are looking at the here and now, the costs and practical difficulties that get in the way of using better, but more abstract, ideas. Cheerleaders are striving for a more idealized situation that doesn’t exist yet, and won’t, until the tools catch up and lower the level of abstraction to that of convenient, built-in, and invisibly supported, so that Jeff’s bruising book of rules is no longer needed.
In the meantime, bashers focus on getting deliverables out the door using the resources and people at hand, while the cheerleaders blaze better trails.