Tuesday, April 18, 2006

Sell It to Me, Baby!

I had another end of iteration demo meeting today. Why bother? Once again, the same cast of characters had the same questions they always do. But, as an added bonus, this is the first real iteration planning meeting with the new bunch of people. However, if you don't really know what the product does, you will not be able to plan what the product should do in the next version. As such, more of the product roadmap and iteration planning will fall on the only people that know what is going on--the developers.

Here's the sole nugget of planning wisdom I was given (no fewer than five times): if you find a way to handle more scenarios in a generic fashion then we should do that. Thanks. My questions about what the market wants, where we should be heading, if we thought about finding early beta testers to get feedback and requirements from, or if we've made any progress on the equipment problems we've been having were all met by, "yeah, we should look into that." I've made a point of asking point blank who is going to follow up on that. "Follow up on that." That's a goddamn manager phrase. I'm a motherfucking programmer, bitch. If I have to ask that then something is wrong. And if I look over one more time and see the sales guy not paying attention to these issues while he idly plays with his cell phone, I swear I'm going to piss in his mouth. And by "piss in his mouth" I mean I'm going to urinate where he masticates.

We finished up the "planning" meeting with a "keep on doing what you do, whatever that is" mentality from management. The sales guy came out of his daze long enough to say he needed annotated screenshots from the developers explaining what the system does and why that is a good thing. This is so some other sales group can make an attempt at selling the software. If you've ever heard a better argument for not listening to a sales person, I'd like to know about it. Someone is going to try and sell me fantastically expensive Enterprise software after being handed screenshots by some other sales guy that just had some programmer piss in his mouth? And that's the extent of their experience with the system? What an industry.

And just when I thought I was out, they pull me back in. We have another Java project, Project B, at this company. The other developer and I were asked if we would like to work on Project B. I thought about dancing around it but decided to go with the honest approach: "Project B is based on too much proprietary code, the tech lead seems to be too controlling, it has a bad architecture, a messy code base, and in all likelihood is doomed to eventual market failure. I CAN work on it if need be, but it is not something I would ever choose to do willingly." Now, proprietary refers not to their vendor specific closed source stack, but rather to the fact that they re-implement every open source offering imaginable (like their own SSH client, HTTP client, etc). Mr. Sales looked like I had just cream pied his only daughter and forced her mother to felch her then to snowball her own daughter. Yeah, I'm watching too much internet porn these days...

Mr. Sales pointed out that I would get domain knowledge and that our domain is HUUUUGE. It's apparently the only domain that is growing, made money last year, and will get me paid and laid to my heart's content. Yeah, he's a sales guy alright. He also went on to say that he'd much rather hire a domain expert and teach him to program later than hire a programmer and teach him the domain. That of course is how you wind up a situation they're experiencing in their non-Java project. An unarchitected, underengineered, non-scaling steaming pile of shit in its last throes of death.

He went on to explain to me that customers buy a product regardless of what it is written in if the consultants tell them to buy it (which is true) and that boy, oh boy all the consultants are going to recommend our product (which is salesy). Fantastic.

I went on to point out that someone smaller and smarter will come along in the same problem domain and realize they can make a better solution faster and cheaper than you can because they don't need to re-implement the SSH client, the HTTP client, etc etc and can instead focus on solving the problem their software is designed to solve. They'll be more stable, more secure, and more scalable than you will ever be since they've got a free army of developers and beta testers all over the world for their core non-business logic technology. They'll be able to find additional developers that are already familiar with most if not all of their application stack and those developers will be productive more quickly than yours (especially since yours are really domain experts playing developer dress up). Once all of that happens, no force in the world can stay the hammer that'll lead to your, your product's, and your company's eventual extinction. You'd at least be better off locking yourself into various vendors' closed source offerings.

Mr. Sales ended the meeting by saying, "Well, don't decide now, think it over and let me know."

I'll leave you with: Confucius say, "The superior man understands what is right; the inferior man understands what will sell." And sometimes not even that...


Post a Comment

<< Home