Ask Slashdot: What Makes a Good Work Environment For Developers and IT?
An anonymous reader writes: I've been unexpectedly placed in charge of our small technology department at work. We have three dedicated developers, two dedicated IT people, and one 'devops' guy who does some of both. It's the first team I've managed, and I'd like to do a good job of it, so I ask you: what makes a good work environment? I have my own likes and dislikes, of course, and I'm sure everyone can appreciate things like getting credit for their work and always having the break room fridge stocked. But I'd like to hear about the other things, big and small, that make it more fun (or at least less un-fun) to come into work every day. This can be anything — methods of personal communication, HR policies (for example, how can reviews be not-terrible?), amenities at the office, computer hardware/software, etc. I also wouldn't mind advice on how to represent my team when dealing with other departments.
Bah.
I don't get people.
I don't want free drinks. Video games to play at work. A ping pong table. Any of that.
All of that, just EXTENDS the work day. You're not going to go in, play ping-pong for 4 hours, and then work 4 -- and get paid for 8. Instead, the expectation will be a longer work day.
In reality, all of these silly perks are just non-cash compensation for long work days.
You know what? Keep the free drinks, the catered lunch, the free this and that. Keep the ping-pong table, the toys.
JUST GIVE ME MONEY. Give me MORE money, and keep all of that!
Keep my hours SHORTER, so I can go out and PLAY WITH PEOPLE I WANT TO PLAY WITH. While people at work MAY be fun, when *I CHOOSE* who to play with, *I KNOW I WILL HAVE FUN*.
People should be able to choose their personal work space.
Most people would probably like an office with a door, but it people want something else, each person should be able to choose for themselves.
Do not tell IT anything and then blame them and throw them under the bus when it doesn't get done. Give a wonderful Window at 3pm on a Friday for somehting that needs to be ready by Morning. Also having IT management do 15% layoffs each quarter do wonders for morale too
Never invite them to meetings as they are a cost center. Create a culture of constant reminders of this and you will obtain the best and brightest talent
http://saveie6.com/
Open plan is bullshit. Headphones and earbuds aren't an adequate substitute for walls.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Make sure that everyone knows what they're supposed to do, what's expected, and when it's due. It's really not that hard, except that apparently it's really hard.
One of the smartest things the company I work for does is let people choose how they want to work, so long as it doesn't interfere with others. Lights off? Lights on? Headphones? Door closed? Door open? Window? No window? Within reason, it's our choice, and that means that we can tailor the environment to whatever works best for us. The end result is that we're not only happier, we're also more productive. Some people work better with ambient noise, others can't stand any distractions at all. Letting each choose their own is the only way to make it work for everyone.
Likewise, as you manage people, understand that they are each individuals. Understand what makes each of them tick. Understand that what works for one will not work for another. Learn them and then meet each of them where they are, rather than asking them to meet you where you are. Again, you'll get better productivity out of them if you understand their strengths and then tailor the tasks to those strengths, rather than expecting them to fill a role they're not good at.
I'm in a similar situation as you, OP.
Managing distractions is the key thing I am working on.
I manage a team consisting of a systems engineer, one help desk person and a bank operations clerk that depends heavily on the technology group.
We are unfortunately not back office, we are very accessible to the general bank staff. This has its blessings but far more detractors in my opinion. There's an expectation by the rest of the bank staff that my people are accessible at any time for walk up questions. This is far from the case, we all have our projects and work queues.
So what I have been doing to deflecting these walk ups and ad-hoc requests as much as possible. I find these distractions to be the biggest hindrance to productivity and employee happiness for my group. My people just want to keep things running and solve business problems. They do not want to help people download photos of Mr. Sniffles to their "hard drive".
Long story short, consider the distractions whether it be operational, logistical or even political. If you can insulate and protect your people from the minutia that is the modern workplace, I think you will find them productive and happy. Your people should feel like they completed something each day they leave. Also leave at good hours and be able to leave the office behind on the weekends.
What could possibly go wrong?
... was an older man who started by making it clear that his job was to stand between us developers and the management, and to shield us from all the shit that was raining down from above. He was also technically competent and understood what we were doing, that helped a lot. But most impressive was his integrity. He always gave credit to the guys who did the good work, and was always willing to take the blame when things didn't work well.
Try to minimize distractions. Make sure you don't interrupt your employees constantly for trivial matters.
You might not have a lot of control over your layout, but also try to avoid placing people in situations where other people will distract them. For example, keep the coffee pot in a physically separate room, so chit-chat doesn't interfere with people trying to concentrate.
Sometimes you might need to enforce quiet hours.
No, I will not work for your startup
The most important thing - do not micromanage. Trust your employees.
To be perfectly honest, you want to be in a position where the only thing you're doing is making sure they don't get overworked and aren't doing projects that don't make sense. All you need for that is a simple repeating team meeting where you talk about what you've been doing and whats coming up.
If you have a problem employee, deal with /that/ employee. Don't fuck the whole team because of one jackass.
In short, treat them like fucking professionals.
--jcbender
The problem is that the day-to-day emergencies get in the way of the 11-month-projects.
But the day-to-day emergencies are soon forgotten and the 11-month-projects are what you are judged on.
Most people here are probably familiar with the "annual performance review" and how much they hate it. So drop it.
Instead, replace it with a LOT of shorter, more frequent reviews. Weekly if possible. Every 4 weeks at the very latest. Lasting between 10 and 15 minutes. Then the annual review for HR is simply a roll-up of 52 weekly reviews.
This helps because EVERYONE knows what the situations are AT ALL TIMES.
There will be problems and the sooner you've identified them and resolved them (or mitigated them) the better.
Try to listen more than you talk.
Be decisive. Don't micromanage, but there are some times where you have to make a decision. That's now your job. If you ever want to get things done, you need to decide things after an appropriate amount of time and then see it through.
You're not always going to be right, but you can't let that paralyze you. Better to be wrong and learn from it, than to do nothing when something needs to be done. Which is not to say that you don't think about it first.
Get goals from your boss. You don't have to make all the decisions. That's what your boss gets paid to do too.
Think about the business. If you're a middle IT manager, you're probably still at least a little technical. That's fine. What you aren't is a pure technician/admin/dev anymore. You need to start thinking about what makes sense for your team and your place in the company as a whole. Hint: retaining your staff is as important from a business angle as cutting costs, but you should think about both.
You're probably a supervisor now. That means you should take evaluating your team seriously. Reviews aren't there so you can give them all 3s (or 5s), they are there so your team knows how they are doing. That's *important*. Most people want to know how to make you happy so they can get raises. The others... need to know when they are screwing up. If you aren't spending real time and thought on giving good feedback, you're a shitty manager and you should resign immediately.
Be willing to do anything that you expect your team to do, including stay late or up early. However, again, you're not there to do the same things as the people on your team. Stay late and coordinate if that is needed. If not, go home and get some sleep so you aren't crabby the next day. Or so you can cover for the guy who was up all night.
Your team should be able to do their job without your assistance unless they are in a really bad spot. You are important because you will be the contact between your boss and your team. You will get the team the resources they need to get their job done. If they need Dev support, you contact the Dev manager to make sure they know about the need. If they need more network cables, you get the network cables.
Overcommunicate. You make sure that your boss and higher ups are not harassing your team for statuses. You provide the statuses. You manage up, as well as down.
If you are hiding in your cube coding or something all day, you're not doing your job. Walk around a bit and see what is going on and if anyone needs something.
You may not be their buddy, but you don't have to be aloof. Find out about the people on your team and what's generally going on with their lives.
When people leave your team... thank them for their work and congratulate them on their new opportunity. Even if they were an asshole.
Noise levels have been an issue at many places I worked, forcing me to use noise cancelling headphones and to play music whenever I was trying to get any actual coding done. And it's not just noise -- it's interruptions from people sneaking up behind you and tapping you on the shoulder when you're obviously busy.
As a result, even cube-land is vastly preferrable to the "open office" that some work environments provide. An "open office" just lets management see whether everyone is working at a glance -- it provides zero benefits to the people who are actually trying to get the work done.
I'm not advocating closed-door offices, though -- those destroy the team environment, and turn everyone into isolationists.
But damnit, man, don't insult your people by expecting them to put up with hearing everyone else's phone conversations and cursing-at-the-computer at full volume because there are no dividers in place to reduce visible distractions and dampen noise levels!
I do not fail; I succeed at finding out what does not work.
The absolute worst thing that can happen is when some clueless manager gets a powerpoint sales pitch, then comes in and says "we're doing everything in now!"
Inevitably, the sales pitch is either grossly exaggerated or outright lies, the "solution" costs a fortune, it's not flexible, anytime you have to customize something (and you will if your business does anything worth doing) it costs a fortune and requires an army of consultants, and you're just going to annoy staff into submission with both inferior and more expensive tools.
I've dealt with this. They come in and promise it can do the moon. Then you ask said manager if it can do any specific thing that we're actually doing right now. They stammer and have no idea, but they're sure it must be able to, because the salesman said it could do anything. In a couple of years when they realize it actually can't without five times more effort than what you had before, said manager will of course never admit their mistake.
If you're going to be making those decisions, involve your staff. They know what you actually need, since they spend every day dealing with it.
Also - walls. Walls are good. Open plan offices are productivity destroying monstrosities. The biggest problem developers have is distractions, and open concept offices are designed entirely to create more distractions. If two people need to talk about something, the entire office doesn't want to know about it.
-- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
Read Tom DeMarco on this -- I think the book is "Managing Programming People". In order to be productive, people need quiet and unmolested time. This means offices.
Also read "Slack" by DeMarco. In order to be happy, they need PROGRESS. And in order to get progress, they need time to solve the problems which come up which are not directly related to the deliverables. If you give them slack, you get less deliverables in the first part of any project, and way more by then end. You also have programmers not quitting.
Take a weekend and read everything DeMarco wrote.
I get it, you want a broad scope of opinions, but don't forget to ask the six people you're managing. We can't tell you what will make them happy.
A clean quiet workarea with no visual or auditory distractions.
All I want to do is code all day long.
All you want me to do is code all day long.
Then, you bombard me with people walking by, talking around me, interupting me, IM'ing me, it never ends...
And I get NOTHING done... do you get it?
No, you never will. You manage by interupting me...
Sent from my ENIAC
The first place i would go would be to my staff. There's only a few of them, just ask them what they want from a manager - that'd be a fucking first!
Don't hire assholes. If you have assholes on your team, find a way to get rid of them quickly, and replace them with people who are not assholes.
I don't really care - and neither should you - if the person is the most technically amazing person that has ever graced the Earth. If they are an asshole, it will sow resentment, make your team less effective, and make your job harder in the long run.
Not sure if you have assholes? Start weekly 1-on-1s with each team member. These are good practice in general, to help find and solve problems before they become major issues. But you will also be able to pick out the assholes pretty quickly.
You may think I am being silly, but I am not. If you think back to any unpleasant experience you have ever had at work, I am willing to put money on the fact that it was caused by someone who was an asshole.
Ridding your team - and hopefully, your entire organization - of these types of people will result in a group of people who are willing to do anything for you or each other.
The world moves for love. It kneels before it in awe.
It all boils down to the important thing is removing the distractions. It takes something like 15 uninterruppted minutes to get in the zone where everything just starts to flow and constant interruptions screw that up.
Here is a handful of his blog postings on the subject, you should just read his entire archive, its all his opinion and view points but its pretty good stuff.
http://www.joelonsoftware.com/articles/fog0000000022.html
http://www.joelonsoftware.com/articles/BionicOffice.html
http://www.joelonsoftware.com/articles/fog0000000070.html
http://www.joelonsoftware.com/articles/FieldGuidetoDevelopers.html
...Even if he just has to pretend that he/she cares, I'd take that in a heartbeat any day. For example, I have worked many places, and one of the best places I've ever worked...was at Lego in Denmark (Their graphics department), the boss in there constantly wanted to know how I was, if I needed a break, if he could bring me some coffee or anything, and he didn't give up before I actually gave him a proper answer. My colleagues where playful and we often fooled around during the day, not wasting work at all...because of this we usually worked 3 times as fast because we felt so free that the work became inspiring to do. That's how I want my workplace to be. Makes me want to come in to work every morning, can't wait to do my job. Sadly, not a single workplace I've ever been to after that...has even come close to that work environment.
What this world is coming to - is for you and me to decide.
I keep seeing all sorts of posts talking about how work perks aren't really free, but no one is accounting for a couple important realities. Number one, if that money were not spent on lunches, it would almost certainly not go to your paycheck, it would go into an executive bonus or shareholder dividend. Companies tend to set pay based on market rates, so if you're getting the market rate and a lot of great perks, chances are you're getting the best deal you're going to get, and the perks are effectively free to you. Secondly, companies have to pay various taxes on all the money they pay as salaries. Those payroll taxes do not apply to free lunches and ping pong tables. So there is some "free" money that gives the company the ability to spend more on perks than they could if they paid it out n cash.
Give some sort of budget for workspaces. I may want a bigger screen, while my neighbor may prefer more ram and the other guy may prefer to keep his PC for an extra year so he can have both. A little flexibilty to design what works for ME goes a long way towards keeping me happy. Just be sure to keep it somewhat balanced so that the people not on the favorite team don't feel disenfranchised.
go read "peopleware" by demarco and lister. this classic addresses what makes a productive workplace in creative technical work. indispensable.
You sound more like Stalin surrounded by Yes people than a real manager. Ruling by fear is not leadership. Jesus Christ Man - glad I don't work for you. I would be in the isolation chamber by now.