A blog on consulting, developing, simplicity, and business in general.

Arguing is good. Not obnoxious.

Well, mostly. I argued with my mother-in-law today about some punctuation on a sign, and was just doing it to be obnoxious. But that’s not the kind of arguing I’m talking about.

When you’re writing software, there’s a good bit of subjectivity as far as methods and quality go. From which design patterns to use, to how a method is coded, to where a method’s placed, to the colors put on the splash screen, to the number of toppings on the company bought pizza, to the font picked for the menus, and on and on. If you have 2 people trying to pick, you’ll probably have at least 7 solutions in the room. Each new person brings up the number of solutions and variations exponentially.

This isn’t bad; it’s brilliant. As long as people can keep their feelings off the table and argue about the ideas and the different benefits and pains that each brings, if you can reach a happy consensus with everybody, odds are you’ve got a good thing going. Software design will be better. Colors will make more sense. Pizza will be more tasty.

It’s important not to get too personally attached to the ideas, because once they become personal and you treat them as reflections of yourself, attacking the idea becomes a personal attack. Suddenly, arguing about what’s best for the product becomes a pissing contest, and it’s one everybody wants to get out of as quickly as possible.

Arguments with lots of personally-involved feelings yield camels instead of horses. It takes the worst part of each idea, eliminates all consistency and beauty, introduces things that nobody but the feature’s authors care about, and creates a product that begs to be put out of its misery.

I’d rather argue and get a mustang than shy away from conflict and get something that spits at me when I push it too hard.

-terry