Slashdot Mirror


Ask Slashdot: What's the Best Working Environment For a Developer?

New submitter Dorgendubal writes: I work for a company with more than a thousand developers and I'm participating in activities aimed at improving the work experience of developers. Our developers receive an ultrabook that is rather powerful but not really adapted for development (no admin rights, small storage capacity, restrictive security rules, etc.). They also have access to VDIs (more flexibility) but often complain of performance issues during certain hours of the day. Overall, developers want to have maximum autonomy, free choice of their tools (OS, IDE, etc.) and access to internal development environments (PaaS, GIT repositories, continuous delivery tools, etc.) . We recently had a presentation of VMWare on desktop and application virtualization (Workstation & Horizon), which is supposedly the future of the desktops. It sounds interesting on paper but I remain skeptical.

What is the best working environment for a developer, offering flexibility, performance and some level of free choice, without compromising security, compliance, licensing (etc.) requirements? I would like you to share your experiences on BYOD, desktop virtualization, etc. and the level of satisfaction of the developers.

5 of 360 comments (clear)

  1. Private Offices by Anonymous Coward · · Score: 5, Informative

    Start with that. The best hardware on the planet is useless if you can't think due to noise and interruptions.

  2. Re:An open plan office by Mr0bvious · · Score: 4, Informative

    I second this - developers need to remove them selves from their environment and become engrossed in what they are doing.

    No headphones? That's would be business suicide, any decent developer will likely move very quickly.

    What's the most important thing for devs? IMO being surrounded by like minded devs who enjoy their work. All the fluffy stuff around the office is not going to do anything to keep good devs, we can buy our own fluffy feel good stuff we don't *need* it from our employers (although it is welcome).

    Hardware choices? That's not about keeping devs happy, it's a economic decision. Get them the best hardware you can afford if it makes their job quicker/easier/etc. There's nothing more to it..

    We have our own toys already, I don't give a hoot what hardware I use at work as long as I'm not slowed down or restricted by it. If I am, then you've failed as an business since you're costing yourself hours of waiting for each dev each week, not a smart move.

    --
    Never happened. True story.
  3. Nothing virtual by Trogre · · Score: 3, Informative

    For development, where you need actual performance for reasonable build times, run nothing virtually nor remotely.

    Grunty desktop PC, triple monitors, with local storage and frequent scripted rsync backups to a shared server.

    Also pop tarts and Xena tapes.

    --
    "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
  4. Re:Exactly that by Xest · · Score: 4, Informative

    Which is why as well as a quiet space, I also think a good environment for developers is one that supports flexible working. I start at 7:30 and finish at 4, because at least I can get about an hour and a half to two hours in of decent code first thing before the office gets too noisy. Some of the other devs prefer later starts and do 10 until 6:30. As long as everyone is in between 10 and 3 then that's ample time for collaboration.

    You shouldn't have to work an extra 2 hours over to get your work done, you should be able to come in 2 hours later.

    Developers need to be well slept, and able to focus - a quiet working area is only part the equation, not being forced to work extra hours because the working environment is shit is another part of it. Home working at least every now and again can also often help with this for some people.

  5. Re:Sounds like they already answered this by geekmux · · Score: 3, Informative

    If they want to pick their own tools, let them. I don't understand this fear of giving developers admin access to their machines. What do you think is going to happen if they get this supremely powerful level of access? If some are happy with VMs, let them use VMs. If some want to install, configure, and update their tools manually, let them. If it becomes a problem for a specific developer, steer them towards a VM instead. If you can't trust developers to maintain their system then you probably shouldn't be trusting them to write your company's code either.

    From a security point of view, you've painted a fucking nightmare. Look at how the average user chooses passwords when given the complete freedom to use "123456". Update tools manually? That would be never, because maintaining security patches takes time and effort they don't want to be bothered with that. Give them local admin rights and they'll install any development tool they feel like using, including ones that may need to be licensed properly in order to be legal in a business or corporate environment. They would bitch about disk encryption slowing their system down, so of course let's disable/uninstall that, dismissing any concern of IP or weeks of work gone due to laptop theft or loss, which of course leads into the next issue of local storage, as they would bitch about network speeds being too slow when doing work across any wire, so all work will be stored locally with no backups, ready to fall victim to hardware failure.

    There's a reason you hire competent IT professionals and developers, because the latter does not replace the former; has nothing to do with trust.

    It seems like our uber powerful dev machines are turning into expensive terminals and the ESX cloud is our new time sharing mainframe. Everything old is new again.

    Users suck at security. Always have. Nothing is new, other than the threat of compromise or data loss increasing year after year, and tools being rather necessary to counteract that threat. Risk mitigation is the name of the game today.