12 Things Developers Wish the CIO Remembered
Every CIO wants to build a development team that’s hard-working, loyal, and devoted to creating quality software. The developers are willing! But they want CIOs to lead them and understand their needs. Here’s what developers hope their CIOs keep in mind to motivate them and make them happy.
I know that as you move to the upper reaches of management, it can be hard to remember what it’s like at the front lines of the IT world. On behalf of all the programmers, sysadmins, designers, and project managers who make things happen from day to day, here are some reminders to help you help us make you look good.
1. We want to make a difference to the organization.
As much as we love playing with new technology and making cool stuff, most of us don't do it for its own sake. We want to make a difference in the organization. When I set up a company-wide wiki, it's not because I think wikis are cool, but because I want to transform the company's culture of information sharing. When I spend time researching the latest tools, and choose tools like Orange to delve into datasets looking for patterns, it's not for my own gratification, but to help my co-workers do what they do even better.
Don't keep us in the dark. Feed us as much information as possible, because digesting and processing information is what we do. Give us numbers. Let us know future plans. The more complete the information we have, the more informed decisions we can make. You're not protecting us by holding it back; rather, you are hobbling us.
2. Marketing is not IT. IT is not Marketing.
Ever since the late 90s when someone in Marketing realized it was simple to put together an index.html, Marketing and IT have been locked in an ugly dance, with each partner trying to lead. All too often, they step on the other's toes.
It makes sense. Tools exist that let anyone in Marketing Communications with a shred of design sense (or not) create good looking webpages. It's just that, too often, Marketing doesn't understand the great responsibility that hides behind their great power.
Mr. MarComm can publish a new home page on the company website that looks great on his computer, but he doesn't realize that dragging and dropping a 2000x2000 JPEG into DreamDesign means that every visitor and bot will be pulling a 3MB file across the pipe. He doesn't realize that there's more to mass mailings than downloading a $19.95 copy of RoboSlammer Mail Deluxe, feeding it an Excel spreadsheet of 10,000 email addresses, and kicking off a mailing run before going out for a two-hour lunch, thus dragging the entire company to its knees.
On the flip side, just because it's on a computer doesn't mean it's our job. Help us push back against the requests to "Just change one little thing on the website" on Friday at 4:00pm.
None of this is to say that we can't help, too. It pains me every time I see someone from Marketing manually updating the footers in the website each January 2nd. We want to help with that. Work with us. We'll listen.
Marketing and IT need to work together, side by side as equals. Help us do that.
3. We need to be protected from the rest of the organization.
Nobody in HR has someone from outside his department come and ask for "Just a little favor, could you do one little thing for me? I've got this Excel file and I'm trying to make the columns do this..." But we in IT get it all the time.
I’m not even talking about requests for personal help: "Hey, do you know anything about Compaqs? My aunt has an old Compaq at home and do you think maybe you could help me with something?"
That's not to say that we don't want to help. Maybe part of how we can help the organization is by giving advanced Excel training classes, or even informal lunch 'n' learns. What we can't deal with is the death of a thousand ad hoc cut into our time and productivity.
4. Help us stay humble.
We developers are used to doing magic, and we are proud of it. That’s even more so if our work is the face of the company, and especially if our work is the company's product itself. We can get big heads about it. Remind us that we're not gods who walk the earth.
Remind us what the rest of company is doing. Our work in IT is meaningless if Marketing can't attract new customers, if Sales can't keep them, if HR can't bring in new blood, if Accounting can't keep track of the money, and if upper management can't provide high-level strategy. Help us appreciate the rest of the people and departments who are as important as IT to the success of the organization.
5. We don't ask for stuff just for the hell of it.
I regularly see people asking on the Internet questions in the form, "How do I get my boss to X?" X might be "buy me a better chair" or "use Ruby" or "let us work more flexible hours." Whatever “X” is, this points to a big problem in the organization.
The very phrasing "get my boss to" implies that the person asking expects to be shot down on all suggestions at best, and that there's an adversarial relationship at worst. Does your team feel that ideas and requests are welcomed by you and other managers? Are you sure? When was the last time someone asked you for something?
Perhaps more than anything else we ask for, hardware matters. We're not trying to build Alienware gaming consoles. We just don't want slow hardware to slow us down and hold us back during the day. We want to see as much screen real estate as possible in our endless pursuit of multitasking. The bang-for-the-buck ratio of a good second or third monitor is fantastic.
6. Noise matters.
You know why people want to work from home? It's not because we want to work in our underwear. It's because our homes don’t have the sounds of the office’s surrounding cube farm. Whether it's chit-chat from other cubes, or an overhead paging system crowing, "Susan M, please dial 81" a few times an hour, noise takes us out of the zone, that state where our brains are 100% engaged on solving problems and creating code. When that disappears, it may not come back for hours.
We developers are not special and we don't need special treatment. We're different. A programmer’s needs are different than someone in Customer Service. If you can budget for a second monitor on our high-end desktop computers, you can budget for a quiet space for us to work. Don't tell us that giving us different space might be unpopular, or politically difficult. That's why you're the leader.
7. Join us for the tough times.
It sucks having to pull all-nighters for router upgrades, but we know they need to get done. A final testing frenzy in the home stretch before release of the Big Project is part of the game. When those things come around, it's nice when you pull $50 out of your wallet for us to get pizzas. It would be even better if you helped out. Plus, you can't expense a night at the office.
(You do know that we're close to release on that Big Project, right?)
8. There is no silver bullet.
Back in 1986, Fred Brooks wrote his classic essay No Silver Bullet (PDF), warning against relying on any given piece of technology to improve quality and productivity. I’m sure you’ve read it. It's easy to be lured by the appeal of moving to a new language or platform, or allowing your people to work from home, or stopping them from working from home, or putting a fridge in the common area. Not one of them is going to have a lasting impact. Improvement has to come from all parts of the department, and it has to be sustained.
9. Technical debt is real.
“Technical debt” has been getting a lot of press in the past few years, and there's a good reason. It lets us put a name to what we've always understood: Doing a lesser job now only makes the next job cost more.
But “technical debt” is not a buzzword. The interest on the debt increases every day we stay on an outdated system, and every time we have to code around an unfixed bug in a library, and every time one of us has to go talk to another developer to get an explanation on how to do things because it's not in a manual.
10. Be glad we spend so much time on automated tests.
Yes, the team is spending a lot of time writing tests. Yes, it really is worth it. Test-first development saves us time in the long term, even if it appears to come at the expense of short-term wins that we can demonstrate to users. Assuming that the overall health of the project is more important than getting up-front visibility, then leave us to it.
More importantly, a solid test suite allows us to make the changes that you want made quickly. When we can turn around a project in a short period of time, it's because we are confident that the rest of the system isn't going to crap out because of an inadvertent bug introduced.
Or think of it this way: When we write tests, it's like we're hiring QA testers for whom you don't have to pay a salary.
11. Give us a reason to stay.
Any geek with a webpage, a LinkedIn profile, or a GitHub account gets contacted by headhunters regularly. For me, it's at least three per week. If we want another development job, we have no end of other employment opportunities.
Remember that for most geeks, money is not a motivator but a hygiene factor. A bump in salary probably isn't going to be enough to draw us away from a job we enjoy. What is? New tech, better projects, and better quality of life are at the top of the list. If we've got those things in our current position, chances are we'll tell the headhunter, "Thanks, but I'm happy where I am." If not....
12. Lead us.
The reason you're the CIO and we're not is that you want to deal with the big picture and we don't. You’re good at thinking strategically; we tend to focus on the tactics and the daily details. We developers want to do amazing work, but we need your guidance to make sure that the company is heading in the right direction in what we do with technology.
Show us where we're going. Share your vision for the future. It not only lets us make decisions that help steer toward the goal, but it also lets us have something to shoot for.