-
Get a monthly update on best practices for delivering successful software.
The flip side of my advice to business people to start treating your developers like adults is that developers have to start behaving like adults. What does that mean? Well, my point is that in order for business people to include developers in business discussions, developers have to be ready and willing to understand and participate in those discussions. And that means a little bit of homework.
For developers to understand why this is important, just think about the client/stakeholder you've worked with who has been the most willfully ignorant of the software development process -- the sort of client that demands things that are hard or impossible to do with software and then throws a tantrum when someone tries to explain this to them. Who wants to work with that person? No one. Think of how ineffective that appdev team is with this person gumming up the works and whipsawing the team with unreasonable demands.
Now put yourself in the shoes of a business person who is dealing with developers who are ignorant of basic business concepts. Why would you entrust such folks with any degree of authority for developing a new software product for your company? You wouldn't.
So, the homework for developers is to become conversant with common business concepts so they can become real partners in the product development process. How do we do this homework? I sometimes have developers ask me whether they should get an MBA. There are good reasons to get an MBA, such as building up a network of classmates with whom you will do business, but if what you really want to do is "understand the business better," then you can get that for a few nights of reading and less than $30.
Competitive Strategy by Michael Porter is just about the most accessible introduction to business concepts -- how companies compete in a marketplace -- that I've come across. If you want to come up to speed on concepts like "barriers to entry" and "market fragmentation," this is the book for you.
One example of how understanding business concepts can be helpful to developers is the different ways of competing: on cost, on quality, or on specialization. Suppose that the company you work for competes on cost. Normally, developers will want to build the best, most complete product possible. But if the resulting product will be too expensive for me to continue competing on cost, then I have to compete on specialization or quality, and changing your stripes, i.e. your brand, overnight is not an easy thing to do. If you understand the constraints on the product and, more importantly, the business reasons for these constraints, business people and developers can work cooperatively to optimize the product so it is both packed with features and inexpensive.
Another example concerns a business plan I looked at a while back. The basic idea was that a company would be delivering a service to laptop users. The state of the art at the time was to use cc:Mail to distribute the content of this service to the laptops and to reassemble it there. This was a complex and difficult part of the application that only folks with some experience with the technology could hope to develop -- a real, serious "barrier to entry," i.e. other folks wanted to get into the marketplace, but very few actually would.
If a technologist had been looking at the business aspect of this deal (I was just looking at the technical issues, though I did raise this as a business issue at the time), they could have quickly identified the Internet and Web as a threat to this business plan. Once this technology became ubiquitous, one major barrier to entry would be removed. As it was, the investment went ahead and was, predictably, not a success.
So, if you want to be treated as an adult, read this book and start thinking about your employer's business as if its success really mattered to you.
Related posts: