This post originated from an RSS feed registered with Java Buzz
by Michael Cote.
Original Post: IT and Biz Must Become One
Feed Title: Cote's Weblog: Coding, Austin, etc.
Feed URL: https://cote.io/feed/
Feed Description: Using Java to get to the ideal state.
(For some weird reason, this Forrester piece on SOA kicked off this whole line of thinking tonight. I think the idea of needing "deep business-IT connections" to pull off SOA just struck me as immeditly silly; something like, "'deep connections'? Good luck with the connections part, brother.")
As Charles and I talked aboutat length in the recent podcasts, I've recently become a strong believer that the separation of the business and coding sides in software development is bullshit. The idea that those two dramatically different ways of thinking -- making money and writing good software -- can ever coordinate, between different people, seems ludicrous to me.
In my mind, the two of them need to merge. Coders need to become fixated not only on coding well, but on figuring out new business angles and customer facing features. They need to get obsessed with not only keeping up with the latest, whiz-bang coding crap, but the newest, money-making market hooplas. The same goes for biz people, just in reverse order.
More and more, it doesn't seem like there's money, or time, to keep those roles separate. It takes money to employ twice the people, and all the people and infrastructure you need to house those people. It takes time to get them to work together, just to understand what the fuck each other wants/can do.
Those Damn Coders
Programming has gotten easier and quicker over the years: you don't need to implement your own web server, app server, language, build system, and all sorts of other things. Unfortunately, you have to be smart enough to keep things simple, and re-use as much as possible: both of those often at the price of 100% perfection in your software. Point being, unless you're a dolt and/or work for one/some, you can have more time than your fore-fathers cause you can do less for the same effect.
What takes up coder time now-a-days is dealing with all those damn non-coders. They never seem to know what they want. Worse they rarely understand what you're saying. Don't they get that it's garbage-in, garbage-out with this pile of poop you have to work with? 6 months? Are they crazy? Is that their problem?
Da Biz!
And, Jesus, have you tried to deal with those damn programmers? All they ever tell you is that it'll take 4 times as long as you have to code something, and next thing you know all you have is some half-baked re-implementation of the last version of your software in which, you're told, the code is finally "scalable" and "designed well." "Whatever that shit means," you think while you're looking for a new job, "scale this compiler-boy."
How it Really Works
Of course, in the real world, the two of them do act hand-in-hand. Often, the roles are more there to enforce who gets the final say on things, not who's responsible for delivering good software in the end. The biz people get the final say on feature-sets and when to release. The code people get final say on how to implement things and de facto say on what can be done given the desired release dates.
While it "works" this way currently, it's still damn inefficient putting up with the link-up time between those roles and sorting out all the conflicts and battles.
Point being: all this time and money we spend keeping the biz and code roles separate seems like a waste. Why can't they just be one?