How tech-focused do we need our developers to be?
Published on: 2011-12-21
In several earlier posts, I have written about how I think it's time for software developers to stop thinking so much about the technology they use and start focusing on the business problems they solve. There are two primary reasons for this:
- Writing maintainable software isn't easy, but it's getting easier every day. Integrated Development Environments, such as Visual Studio or Eclipse, give developers the tools they need to write, refactor, and debug software at their fingertips. Modern programming languages give developers needed functionality out-of-the-box, while abstracting some of the lower-level concepts, to help developers be more productive than ever before. Finally, and perhaps more importantly, with the thousands of technical bloggers and bulletin boards out there, it's easier than ever to find answers to your questions using your favorite search engine.
- The average technologist doesn't know about the inner workings of a business process, nor do they seem to care. "Tell me what to build and I'll build it" is an attitude that's all too common among technologists today. On the flip side, too many business people know little to nothing about the technology that they're using and managing. Their attitude seems to be "that's a technology issue, so the technology people should deal with it". Someone needs to bridge the gap in order to create solutions that bring out the best of both worlds.
Business analysts are supposed to fill this gap, but too many times true business analysts are simply not present, or not focused on what truly makes a project a success. I've heard about some cases where business analysts function as middle-men that just get in the way, because they don't know enough about either the business or the technology. Project managers should be able to fill this gap too, if they are to truly have the knowledge necessary to be the ones primarily responsible for delivering a product, but they so rarely do.
I used to think that software architects should be the ones to fill this gap. They are, after all, the ones in the best position to understand what the software can or cannot provide. But staying on top of software development trends is difficult. Software development trends and tools change every year or so, and it's difficult just to keep on top of them, much less take the type of business training necessary to understand the business problems as well.
The best answer that I see is that projects should be run by business/technology hybrids - people with hands-on experience both in business and with technology. Teams could then be populated with project managers to make sure that the project is staying on track, the business analysts could create documentation so everyone has the same story, and tech-heavy developers would be architecting and writing code. But it would be the business/tech hybrid who would ultimately be responsible for the product as a whole. This would not be easy to implement for several reasons, not the least of which is very few technologists have an interest in business, but necessary if we are going to enable our technology to meet business needs more easily.