As a programmer there is good and bad about working inside a company who’s core business is not directly the software you are writing.
- No one knows what you do
- You can get to learn about other businesses/fields
- No one knows what you do
- You can end up being treated like the other
WhenÂ working inside of a company that doesn’t make software as it’s Core Business,Â I want nothing more than to support the people who do other stuff in the business. I get that we need the sales, mktg, and manufacturing people to sell, market, and make the widgets since that’s where the money comes from. When you are developing in house software, its rare that the end consumer is out there saying:Â “I am going to buy my widgets from ABC Corp since I hear their internal billing system is written in Node.js.”
However, I am getting really tired of being told “The business wants” or “This is a business requirement” or anything when the speaker is saying
YOU are just a programmer, the people in the offices with the windows THEY are the BUSINESS, just do what they say.
Its like they are saying that the developers can’t possibly understand what they do, so just let them write some stories about what processes need to be implemented and then write those up. Oh and when you are done we will have THEM do acceptance testing to see whether you suck or not.
Where is the WE? Where is the love?
The phrase “the business” is a kind of trump card.
Yeah, Yeah I hear you but the BUSINESS wants…
Here’s what’s funny, I have been at this a long time and sometimes maybe most of the time the users don’t really know what they want in house software to do. They only know what they do now and they have some vague ideas about what they would like to be different. They generally have a lot of good domain specific knowledge but they can be blinded by being so close to it they can’t really see what is going on. It is also the case that while they may be super smart in their area, they don’t really know much about process design issues.
The frustrating thing is that they have people in the company who are really good at thinking about logic and processes. Who can spot the weak points in a checklist, or notice what steps should be logged etc without even thinking hard about it. You think they would use this resource. And sometimes this happens. I remember a biz guy from Microsoft telling me that in his department anyway he always had the programmers review the contracts since they were the ones who were best at Math etc and could tell him whether there were any problems with his deal. So it does happen, but It seems to be rarer than it should be.
Its more likely that if the company perceives and issue with its processes, it will contract some expensive Six Sigma (or other religious) consultants to spend a week capturing ideas and process capabilities or whatever. Why would they invite the “computer” people?
So why would someone even think of working in a place like this? Often you have to fight against the grain of whatever the culture is to make something good happen. There are times when Agile isn’t nearly Agile enough etc. but If you persist and you are willing to take some risks you can make some good things happen and get some other benefits as well.
As I mentioned at the top, when you work somewhere that doesn’t do software as its core business you can learn a great deal about another subject. During my last contract job, I received a free education about clinical applications of human genetics from some super smart people. I was able to use and learn a variety of tools I selected to create the tool.
Nice work if you can get it, despite the fact that every now and then, someone is giving you the business.