Real Ultimate Programming Power

@Console

Chill out man…it was a joke. And in my opinion, a good one…

You missed one - Brute Force Development:

http://softwareindustrialization.com/BruteForceDevelopmentBFD.aspx

My name is Jeff, and I can’t stop thinking about programming. And neither should you.

I think this can be misinterpreted.

You don’t need to be obsesed, you only need to have a professional attitude. It’s a drag when the whole business world thinks that if you program, then you are not a profesional but a mere worker.

The best material you need to learn is not wrote by Software Engineering academics (who profess this corrupt programmer-worker analogy), but by Software DEVELOPERS in blogs and articles online.

Hate to be a bitch, but…

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. – …on his head…

Here’s one thing that I think messes up these software methodologies: as with many other management methods, there are a few relatively simple good ideas inside each of the software management methods.

Unfortunately, it’s hard to make a successful career as a consultant training people on a few simple insights. This is actually a shame, since it’s often very hard to get people to actually use the simple insights, and successfully training them to do so would be a real success.

Further, you can’t write a good book out of a few simple insights. This is why management books are always so full of chaff, anecdotes, and filler. It’s hard to sell an 84 page booklet as a trade paperback in the airport bookstore, so the authors always bulk them out.

I’m painfully conscious of that from having watched a very large company grab up scrum, which seemed to have a few good ideas in it about how to react to the unpredictability of the software development process.

But the large company sent everybody off to scrum school, which dressed the simple goodness up in a huge mass of stories, and story points, and heaven only knows what all else, until they had ended up with something as bloated as any waterfall process from the 1970s.

Now that I am writing this, it occurs to me that another problem is that a lot of the broadly agile processes are based on having a small number of excellent programmers work very intensely together. But large corporations that buy into the buzzwords all end up mis-fitting them onto some variation of human wave programming…

I think I’m gonna come out as well:
My name is David, and I can’t stop thinking about programming

(typed at 8a.m. at the start of my weekend, when I woke up early and thought ‘lets check coding horror and possibly work on a web app’… oh, and it’s supposedly something called ‘valentines day’?)

As for the A4 design idea… I don’t think he is that far off the mark. If you don’t understand an idea well enough to explain it in a single sheet of A4, you probably don’t understand it well enough to code it… go away and gain a better understanding. I think this should be hierarchical personally, but a single sheet of a4 for each bit of the system at each hierarchy level sounds better than reams of prose and diagrams that took months to create, still don’t give a decent explanation and that are so big that no one will bother reading them anyway…

@Roger Pence,

On the ShamWow Guy analogy; wow I think you have captured it PERFECTLY. That’s exactly what I’m seeing.

I do think a lot of this Agile/SOLID etc stuff is problematic. I think Uncle Bob did a pretty poor job of defending his position.

Nevertheless, I’m worried that Jeff is advocating a very lazy view. I
ve seen this a lot lately. I think the views he has been expressing the past several months are like:

Don’t worry about having in-depth knowledge of anything. It’s pointless. C is hard and performance is hard and probably a waste of time. Look, if you are reading this blog, you’ve already won the battle. You reading programming blogs, THIS BLOG, in fact, therefore you are elite. Congratulate yourself. Think about programming all the time; just don’t think very hard, you might hurt yourself. Remember, you’ve already won!

It just seems to be a very lazy view. Just because you read programming blogs doesn’t mean you have knowledge that others don’t. Even if it does mean that you have passed some magical level it doesn’t mean you’re right to just stay at the surface of everything. It just seems pretentious and self-congratulatory.

Jeff, this is so hypocritical. Go back and read your DRY post Curly’s Law: Do One Thing, where you actually quote from Bob Martin’s Single Responsibility Principle. Now, I am really confused with you about you and Joel were arguing about in your StackOverflow podcast.

I agree with your general principle about not drowning in methodologies and principles, but what you seem to be recommending and what you have actually done are contradictory. You have actually learnt what works for you and use that.

Would you be a better programmer if you didn’t learn everything you learnt over the past several years? If so, why are you advocating to others that it is a waste of their time.

Some John Smith originals, not poetic: This is my world and you are just a tourist.

vb coders != cowboy coders

Am I the only one who is afraid of clicking a link named NAMBLA?

Can someone explain NAMBLA from the point of view of someone

  1. not in the USA and pretty unaware of american culture
  2. has never heard of NAMBLA
  3. has not seen the Southpark episode
  4. has no access to youtube
  5. cant understand how the main google results for NAMBLA are relevant to a list of programming principles

I vote we throw a book at Jeff. Something like Programming Windows (Charles Petzold) should do. It’s a nice heavy volume. Solid, you might say.

For goodness’ sake, man, when you make a blog post that betrays a serious ignorance and you get lambasted for it, the last thing you need to go and do is right another completely off-base post, incorporating various stupid elements (religion, NAMBLA) to try and put your point across in a cute manner.

Your golden rules might well work for you, but maybe, just maybe, there are real, honest-to-goodness professionals who adopt a different set of core principles, and perhaps, just perhaps, they work for them.

This lecture on robust code and software quality is, of course, coming from a guy whose web site leaves a hell of a lot to be desired, and who follows no real process for quality - not even a real bug tracker.

Is NAMBLA the reason programmers get sacked at 40 and why they’re mainly male?

I’ve been reading this blog for a while now, and every time I finish an article I get the feeling I’m a worthless programmer.

I don’t think it’s because I actually am worthless (at least I hope not). I think it’s the tone. It feels elitist and condescending. The subject always seems to be, Do you adopt/know about this? If not, you’re an idiot! It’s painful to read in the same way that I imagine it’s painful to be shouted at by a drill sergeant.

I wouldn’t be so bold as to demand or even ask for a change. I just thought I had to say my bit.

I spend my time learning new web development technologies like RIA, AJAX, and open source web applications. I don’t have time to keep up with the latest programming fads being pushed by enterprisy fashionistas.

Hey Jeff, your Atwood System of Real Ultimate Programming Power list appears as all ones, instead of one through four, in Opera 9.63, because your generated HTML has wrapped your LI items with H1’s.

  1. DRY
  2. KISS
  3. YAGNI
  4. NAMBLA

@Leif Eriksen

Google has a great Define feature:
define:NAMBLA

It stands for the North American Man/Boy Love Association.

It is a pedophile organisation. Others have pointed this out before! I can’t really find a reference to explain any other meaning.

@Rob
I’m inclined to agree to an extent. For someone who has read so broadly, the development mistakes are staggeringly basic - like the SQL deadlock mistake a few months back. A rookie DBA would have known his thought process was flawed.

So - what does this tell us? Even someone who promotes professionalism in programming will not implement professionalism in programming?

Actually - I don’t think that is the full story. I think Jeff actually does a stand up job in development and in the development community. I just think that there might be a lack of objective introspection. That is - how can we rate ourselves when we are never independent?

It is my opinion that, reading every book ever written will help us to become better programers, but to be great programmers we must receive independed objective feedback from our peers (i.e. not management and not customers).

This is only a theory as I have never seen this implemented.

Jeff, I love your blog and StackOverflow! Keep it up!

I’ve come up with the latest programming paradigm! yay!.

FDD , or Fanboy Driven Development.

You get the latest idea or fad in programming , and stuff it down the throat of everyone who’s around you , to the extent that you proclaim that any previous code written must be garbage because it doesn’t use your throat-stuffing idea.