Live data from Hacker News

Business Requirements are Bullshit

steve-yegge.blogspot.com

1–10 of 87 posts

Re: Business Requirements are Bullshit

#3
I think that Mr. Yegge missed the real question - but the rant was worth it. I particularly liked "The easiest way to build a product that kicks ass is to start with someone else's great idea (camcorders, for instance), and take stuff away."

I suspect what the "business correspondent" wanted to know was something more like:

"My customer wants me to build him a new billing system. Their top managers have some defined strategic objectives but no-one I have met seems to actually know what this system should do in any detail. However, they can all detail the bad things that would happen if it did not do (whatever it is) perfectly from day one. Now how do I find out what to build them?"

Now that question is the one that development teams face every day.

Re: Business Requirements are Bullshit

#5
He raises many good points in the course of the rant, but I think that "only build for yourself" goes a bit too far than most of us are willing to go. I'd suggest, in the spirit of compromise, that "gathering (and understanding) business problems" is a better practice than gathering requirements, as user-proposed solutions (and the requirements which make them up) are often doomed to failure.

Re: Business Requirements are Bullshit

#6
I have read Steve's articles before with a certain amount of respect, but this time he addresses an area very near and dear to me, and all I can say about this one is:

I call bullshit.

This article was so full of it, the more I read, the more I had to change into higher waders.

As I normally do when responding to a post, I started pulling out the statements I wanted to respond to, highlighting them, and putting my response below. After 10 minutes, I had the Magna Carta. This is simply too much wrong with this article to respond in the usual way.

So instead, I'll just say this...

Get this and get this good, fellow hackers: When anyone says "analysis" or "requirements gathering" is bullshit, there can only be one reason why: they don't know how to do it.

Sure, there are antecdotes and case studies of people building great software without talking to users first, but they are in the extreme minority, and anyone proposing doing this all the time is doing a disservice to his readers.

In order to find out what people need from software, you don't "grill" them, "interview" them, or "role play" (whatever that means). You get with them and "live their lives" and suffer with them, understanding what they must accomplish, how they must do it, and what's stopping them now. How do you do this? Any way you can. Change uniforms and shovel shit with them. Do their job for a day. Put them together in a room, feed them, give them beer (optional), and get them to bitch about it. Identify every single data element related to their tasks. Connect tasks and data to objectives (You may find that half of what they already do is a waste of time.)

In short, do whatever it takes to find out what you need to know to develop your software. This is hard work. Hardly anyone does it now, and relatively few have ever done it. Steve Yegge certainly hasn't. If he had, the data in this rant would have been very different.

Sorry, Steve, I normally enjoy your columns. Do us all a favor and don't say something can't be done because you've never done it. Next time, write about something you've already done. Then we can all resume learning from you again.

Re: Business Requirements are Bullshit

#7
post #6

I have read Steve's articles before with a certain amount of respect, but this time he addresses an area very near and dear to me, and all I can say about this one is: I call bullshit. This article was so full of it, the more I read, the more I had to change into higher waders. As I normally do when responding to a post, I started pulling out the statements I wanted to respond to, highlighting them, and putting my re…

I'll second that call.

Formula for blog entry:

1) Pick an area that most newbies don't get (ie, requirements) 2) Blather on for a while about all the ways they are done wrong 3) Miss the point of the topic. In requirements, you list what you do, then do it. Instead confuse key terms, like "user" and "customer", or "grill" with "be immersed in" 4) Try to be funny 5) Make sweeping conclusions that are obviously incomplete in the real world "Code only for yourself" -- so everybody with a need now has to have a programmer with the same exact need? Wow. 6) Throw in some generally accepted wisdom ("find something good and take stuff out") as a way of tossing the crowd a bone 7) Profit!

As a general rule of thumb, if somebody comes to you with a common phrase from software engineering and makes a sweeping statement (a friend just blogged "reviews are worthless!") then they are either pulling your leg a little bit or don't know what the heck they are talking about. The usual method of attack is to describe how something is commonly done and then disparage the concept by way of association.

Re: Business Requirements are Bullshit

#8
One of the biggest, most consistent problems I saw as a Smalltalk consultant was simply poor communication between development and users. There were inevitably at least two groups or levels of management in the same group between the users and development. The result was always the game of "telephone" or "gossip" -- the one where you form a line and one person whispers a message to the next. Information, filtered through too many minds always gets distorted in the process.

I think you can do requirements gathering. But the right way to do it is to have smart actual users talking directly to smart actual devs. Even here, there is a chance for misunderstanding, but at least it's not compounded. (I suspect that the "telephone" game is an example of a nonlinear exponential process.)

Unfortunately, middle managers defending their personal fiefdom will sometimes actually tell you that it's specifically not going to happen. In large organizations, upper management generally wants their representative to be the filter between the devs and the users, because software is generally an instrument of control. (Through workflow, even if the app has no explicit workflow framework, but that's another story.)

Often in large organizations with a software project, devs and users will find some way to get together and talk face to face. It's a sign.

Re: Business Requirements are Bullshit

#9
post #4
post #2

this ( http://kerneltrap.org/node/5725 ) is soo much better.

More succinct, yes, interesting too, but I'd disagree with "better." It's like saying an apple is better than an orange.

Linus has an easier task. The hardware the kernel runs on and the software running on it act as an ironclad, rigorously defined spec. Dealing with human users is something else.

Re: Business Requirements are Bullshit

#10
We, the hoi polloi developers, work for industries (retail, transportation, insurance, etc.) we hopefully know some thing about, yet without having the same level of expertise (or even the same point of view) as our customers.

He should get himself familiar with the concept of division of labor...

Post reply on HN