views:

401

answers:

9

Is there a book or an article online somewhere that can explain all the perils of programming without any technical jargon for non-programmers?

The managers in the company I work for know nothing about what it takes to write a good program. I want them to understand why best practices like DRY and encapsalation are so important, and that programming is more than just writing code but architecting, and that just because a program looks complete doesn't mean it's ready for launch. I can try to explain this to them but I find it very hard to explain to people who have no understanding of programming. Even if I could explain it, I have coworkers who do things the wrong way and argue that I am just preaching my personal preference. It would be much more convincing for them to read it from a published book.

So is there a book I can buy and have my managers read so they understand?

+10  A: 

The Mythical Man Month targets software management, and does a good job of doing so without delving too deeply into 'techy' software issues.

Peopleware is another one that many people mention as a management eye opener. Though I have not yet gotten to it myself.

Matthew Vines
Excellent suggestion!
Rik
Peopleware is written in with a somewhat anti-management slant, and may therefore not be taken seriously. Read it yourself, though. The Mythical Man-Month would be completely irrelevant if software was well understood by people. As it is, it's extremely relevant, and should be recommended to anybody who manages software, and many who just do it.
David Thornley
The Mythical Man Month is great until management goes "Yea I've read it and I don't believe it...."
PSU_Kardi
Or, they go: "This is over 30 years old! Surely, it's out of date by now." Which, of course, it isn't.
Rik
A: 

The Deadline: A Novel About Project Management by Tom DeMarco

Peopleware is also a good book, but has a higher chance of scaring managers away. There is a lot of sad truth inside about how programmers are managed, and it might seem that you're complaining about something.

wuub
+1  A: 

I like "Peopleware" by Tom DeMarco and Timothy Lister. This makes the case for a good programming environment and support as well as the need for good practices. It is a very good book to give to non software managers.

Ian
+1  A: 

Spolsky's Joel On Software is very readable for non-programmers and does a good job at explaining some of its pitfalls.

Rik
Spolsky's Joel On Software is somewhat targetting larger companies. Smaller companies will still find his writings highly relevant, but there is a little bit of a slant to it.
Brian
A: 

I love the previous suggestions. I might also recommend books on requirements and estimation by Steve McConnell and Karl Weigers, and others, that really speak to the challenges and value of the up-front parts of software projects, the parts that always get the short shrift when unenlightened management gets their hands on what they think are "easy" software projects.

Bernard Dy
A: 

The Pragmatic Programmer is a book targetting programmers. However, a major chunk of the book is focused on how to interact with coworkers and managers for best results. E.g. the best time to try to get your boss to adopt version control is after someone introduces a bug and nobody can figure out how/when it got there.

Brian
A: 

Well, you could show them e.g. http://www.infoq.com/presentations/principles-agile-oo-design

nos
+2  A: 

So is there a book I can buy and have my managers read so they understand?

I recommend Software Estimation: Demystifying the Black Art because:

  • It's a topic which managers can understand
  • It's a topic which managers should understand
  • It's the topic which managers and developers have in common, i.e. the topic about which they communicate
  • The book may give them (and you) a realistic view of what's normal and possible
  • It includes many details which answer your "just because a program looks complete doesn't mean it's ready for launch": e.g. Table 21-8 on page 239 suggests 15% to 35% of the total effort (depending on project size) is spent on system testing.
ChrisW
A: 

I can vouch for the noted books as they are each excellent, but I'm not sure they will help your case. If you really want your managers to know what programming is all about, educating them is a task best left up to you.

I've found it is all about context. Try to come up with analogies which your managers can understand. The DRY Principle, for example, can be applied to most any task if you think about it. I bet your managers write documents. Have they ever created a Word Template? Why? They understand the value of Don't Repeat Yourself. Try explaining DRY in their terms.

When conducting interviews, I would occasionally ask the candidate how they might explain multithreading to a 4th grade gym teacher. This might seem like a really difficult task, but once you start thinking like a gym teacher, the analogies become obvious. I ask the question because communication (specifically getting one's point across whether you're talking to your manager, your customer, QA, etc) is such an important but understated aspect of our profession. It's okay to offer your managers a book to read, but also challenge yourself to continue teaching them yourself. Everyone will be the better for it.

Ben Griswold