The 3 Kinds of IT Shops: Which is Yours?
IT culture is one of those things that is difficult to quantify but easy to feel. So much of what we do crosses multiple disciplines, and it is easy to think our workplaces are as nuanced and multi-dimensional as we are.
Not so.
In my time working at different companies and organizations, I have seen 3 distinct cultures:
- The SQL Squad: These places tend to think of everything in terms of databases. Tables, views, stored procedures, CRUD… they can’t get enough. If you don’t have an administrator in your pocket (usually through bribes of some sort) you can’t get anything done. Signs your workplace may be part of this group: You use Oracle or DB2, know what XSQL is, or threaten to REVOKE friendship on all those who oppose you.
- The Application Formation: These guys like application frameworks a lot. They swoon over Rails and salivate over CakePHP, but always end up building their own systems anyway, just cause they can. When they use databases, they see them as little more than fancy filesystems. One database user is all you need, ever. Signs your workplace is in this group: You use Ruby or PHP, think MVC is the way to be, or think coffee extends beverage and implements caffeinated.
- The Design Division: This shop places an emphasis on design and front-end functionality. They are on the forefront of new web design practices, and were doing AJAX back in the ActiveX-only days. With graphics guys running the show, not as much attention is paid to the back-end systems and maintainable code, since it is all about pushing it out and getting on to the next project. Signs you may be in this group: You see Flash as a viable replacement for HTML (sometimes), include Photoshop in your developer baseline config, or compete with your coworkers in CSS Zen Garden submissions.
There are some organizations that are able to cover multiple categories, or have several different groups within a single department. Even then, though, there is usually one that is dominant.
Why does this matter? Glad you asked.
If you are a developer working in a culture that is different from how you approach technology, you are likely to butt heads a lot with your coworkers. It’s sort of a square-peg-in-round-hole situation.
Once I was working at a place that was squarely in the SQL Squad camp. Our inventory management software was very feature-rich, but was overkill for many of our customers. As the person who handled all of our customer support, I was acutely aware of this pain.
“What the hell is a Master Item?” they would ask. “Why can’t I just add a jar of pickles?”
The solution to this seemed obvious to me: Come up with a way of hiding fields and functionality that users didn’t need to see. Change text on the site to things that made sense to different target audiences. 3PL providers will see “Master Items,” lunch ladies could see “Products.” Provide customizations on a per-customer basis.
Things weren’t quite so easy. Being a database shop, the company built the software to make extensive use of CRUD privileges. Every application user was also an Oracle user. If a user couldn’t create new items, they wouldn’t be given CREATE privilege on the ITEMS table. Easy. Unfortunately, this didn’t allow much customization on the front-end, and they certainly didn’t let you get granular enough to hide certain fields from certain users.
When I brought up the idea of handling permissions at the application level, my managers looked at me like I was speaking broken Greek. How could we possibly do that? Then any user could modify data in the database! If they ever figured out their Oracle password and hacked through our Cisco firewall for some reason, they could mess up everyone’s data! The humanity!
It isn’t so much that what they were saying was incorrect; it almost certainly wasn’t. It is just that their priorities were different than mine. Things that I valued highly (such as user experience and maintainable, consistent code) were much different than the things they valued highly, such as absolute data security and an elegant schema design. Software is all about choosing between varying tradeoffs, and the culture of the workplace often determines which tradeoffs are acceptable.
Til next time.
Posted: February 21st, 2007 under Personal.
Comments: 8
Comments
Comment from Rob Crowther
Time: February 21, 2007, 7:26 am
I think I can add a fourth to that list, though it’s really a variation of number three:
4. The Sales Force: This shop places an emphasis on adding features to match competitors and building interfaces which impress executives, with purchasing power, in demos rather than make life easier for end users. Almost no long term planning is possible because what you’re doing today depends on who is getting a demo tomorrow or which client is jumping up and down because the ‘features’ they were promised don’t work. Signs you may be in this group, you hear phrases like “But we can do it this way quickly in the short term, then do it properly later.”
Comment from Rafa
Time: February 22, 2007, 1:20 pm
LOL!
Ron, I was missing that one, too. That’s where I am. Damn! If you know of any way to let those guys understand that they’re building crap (even worse, I am the one having to build it, or having to confirm that the 3rd party programmer we took was building the crap), tell me!
Pingback from wagnerblog.com » Blog Archive » Mike-O-Matic ยป The 3 Kinds of IT Shops: Which is Yours?
Time: February 23, 2007, 11:47 pm
[…] (more…). […]
Comment from LornaJane
Time: February 26, 2007, 10:42 am
What a well-timed post. I’m more at home in organisation type 1 I think, I love oracle, PHP and elegance. In one week I start my job in a type 3 organisation … eek! Is any chance of a follow-up article on fitting in strategies for each type (ideally starting with type 3)?
Comment from Mike
Time: February 26, 2007, 4:54 pm
LornaJane,
If I had the answers to that, my job might be easier. :)
-Mike
Comment from Craig M. Rosenblum
Time: March 7, 2007, 12:02 pm
As a ColdFusion Developer that has has to wear many hats, I don’t tend to belong to any of those cultures…
I’ve seen the cost of not respecting and developing solid relationships wth all 4, so as to get the end results, delivering a usable web application that both scales and is secure.
I think you have some good points, but I think also it’s a bit over-simplification, not everyone fits in to square peg-holes, some of us are round :)
Pingback from Mike-O-Matic » Web Standards and You: Happy Together
Time: March 15, 2007, 10:24 am
[…] The other day at work an interesting debate unfolded. I’m sure anybody working at a Type 1 organizations similar to the one in question can relate to this: New developer comes into a workplace, flailing his arms in the air. […]
Comment from bandung
Time: July 21, 2007, 7:19 pm
nice explanation

















Write a comment