Ask Slashdot: What's the Best Working Environment For a Developer? 360
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.
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.
Private Offices (Score:5, Informative)
Start with that. The best hardware on the planet is useless if you can't think due to noise and interruptions.
Re:Private Offices (Score:5, Insightful)
Start with that. The best hardware on the planet is useless if you can't think due to noise and interruptions.
Or at least high cubicle walls. A developer's most valuable resource is their attention, and other humans are extremely good at demanding one's attention. Even the reflection of someone walking by behind me is enough to cause a momentary distraction and a dip in productivity. It's no mistake I do my best work when I'm the only one around, to optimize productivity give people the ability to cut off distractions.
Exactly that (Score:5, Insightful)
I'm out of mod points or I'd mod you up.
My two cents - we have an open office plan where I work. So I like to stay after hours and work. Why? Because the lights are off, I don't have to listen to people milling around me all the time having conversations about the weather or last Sunday's game. Just me and the work I have to do. No distractions. It's blissful.
I can get more done in 2 hours like that than the previous 8.
Re: (Score:2)
You should just work during non-business hours or from home. ;)
Re: (Score:3)
Re: (Score:3)
I don't sit here tearing my hair out doing nothing waiting for everyone to leave so I can type.
You might also get more work done if you stay off Slashdot during work hours too... :)
Re: (Score:3)
Noise canceling headphones, with or without music, and the neighborhood chatter fades into the background.
Add music and you are in your own world.
Re:Exactly that (Score:5, 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.
Re:Exactly that (Score:5, Insightful)
Very valid points, of course; the whole idea of open plan is stupid in so many ways; just to take a thing like indoor climate: small offices for 1 or 2 people can have individual heating and aircon, so the ones that like it hot can have that without hearing complaints from those that prefer it cold. You might even have a windows that could open a little bit.
But just as important as the physical environment is the freedom to choose your tools. Developers are skilled workers - I hesitate to use the word 'engineer', I think it is overused and easily misconstrued; an engineer can be anything from the guy that used to shovel coal on a steam locomotive, to a highly academic civil engineer. We skilled workers know best which tools are suitable for our needs. Some people like to use highly complex IDEs with suspicious colour schemes (which remind me of my misspent youth in Soho's nightlife), others actually prefer vi and make scripts in xterm - both setups can be equally productive. Managers prove again and again that they have no clue about what is important for skilled workers; they seem to think we are sort of like sales people, but not as clever, and since sales people fall for glittery kitsch and think the word 'leader' means 'alpha male', that is what they try to serve up to us as well; hence Dilbert.
Rant's over - I have real work to do.
Re: (Score:2)
A developer's most valuable resource is their attention
That's debatable, nevertheless this is a statement fit to print, frame, and hang on the wall. Your boss' wall preferably.
Re: (Score:3)
stupid bosses dont want this because they think they can get more work out in a room with 15 people and NO VENTILATION.
TRUE STORY.
also the boss thinks that ac pumps air from outside. it doesnt.
If you're that angry, don't stew. Polish up the resume and look for work elsewhere. Engineers are still very employable.
Almost never do you hear anyone say "Man, I wish I'd stayed at that dump longer".
Re: (Score:3)
look for work elsewhere
Yeah! If you can't get anything done in an open-plan office for this employer, you should go try to get something done in an open-plan office for a different employer!
Re: (Score:3)
Add a "no radio/music/etc unless you wear headphones" rule. A private office is useless if people are allowed to pump noise through them.
Re: (Score:3)
Re: (Score:3)
More details on why
https://stackoverflow.blog/201... [stackoverflow.blog]
Re: (Score:3)
I work on a team. With a high functioning team, the ability to ask and clarify a question, while typing the code, is amazing.
And no, despite your best efforts to describe the effects of interruption, there was none. We were working to the same sprint.
I now work on a different team. Lord, don't interrupt a single one of them. It's almost like circumstances play a role. But if that were true, Slashdot would cease to exist.
Re: Private Offices (Score:4, Insightful)
People don't notice the productivity hit when they're typing code that could basically be written in their sleep. Most programmers have worked on projects where they do need to concentrate.
For those whose coworkers are thinking hard, I would recommend writing down your questions and asking them in batches of three or so. This has a lot of benefits:
You'll be able to answer some fraction of your own questions, either just by thinking more or by exploring the surrounding problem more.
You'll get a clearer understanding of what was missing from the design (or code or your own knowledge), making it easier to understand how to improve it the next time around.
You'll practice clear communications.
You'll amortize the cost of interruptions, which your coworkers will appreciate.
Re:Private Offices (Score:4, Insightful)
I disagree. I think members of the same team should be located together, rather than isolated in private offices. That way, if you need to bounce an idea off of a teammate, all you need to do is to turn around and talk, rather than having to get up and look for them.
The best teams I've been on worked pretty closely with each other, and often identified bad ideas before they got too far.
Re: (Score:3)
I disagree. I think members of the same team should be located together, rather than isolated in private offices. That way, if you need to bounce an idea off of a teammate, all you need to do is to turn around and talk, rather than having to get up and look for them.
... and disrupt three other people in the process. Because, you know, their work isn't as important as your "bouncing ideas".
Besides, a few years ago, someone came up with the concept of instant messaging, which not only is nice for short messages, but can also tell you whether someone is available without having to get up and look for them. If that's too new for you, there's always this thing called a "telephone".
Re:Private Offices (Score:5, Insightful)
"bouncing ideas"
This infuriates me more than it probably should.
I have a co-worker who constantly feels the need to bounce ideas off me while I am usually busy and very focused on something.
We've recently started a slackboard for just this exact issue. Post your shit there instead of interrupting everyone because you need to think out loud.
Re:Private Offices (Score:4, Interesting)
The best teams I've been on worked pretty closely with each other, and often identified bad ideas before they got too far.
The best teams I worked on had people having enough private space and time to think about the ideas enough so they figured out why the ideas were bad themselves and didn't bother others with them unless they were good ideas.
Re:Private Offices (Score:4, Interesting)
Last night I read a bit about the Pomodoro technique [cirillocompany.de] and specifically what is said about distractions and how to avoid them. One view was that many websites (esp. social media) are geared to grab more and more attention to keep eyeballs on it longer (e.g. YouTube suggesting more similar videos, Facebook trying to serve up stories in your story line that they think will interest you, StackOverflow having all these very interesting questions from other StackExchange sites on the right - even Wikipedia that has hyperlinks to more interesting articles :-) ). And the one suggestion is to avoid such web browsing during your short rest periods, since they will inevitably lead to those rest periods becoming much longer...
Then it hit me: Open plan offices are social networks embodied in physical workplaces - long before social media even was a thing.
An open plan office (Score:5, Funny)
With a no headphones rule.
Re:An open plan office (Score:5, 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.
the Best one is the unaffordable one (Score:2)
As far away from Silicon Valley as possible (Score:2)
Well, you asked.
As much dev control as is practical (Score:2, Insightful)
BYOD followed by CYOD followed closely by a Linux laptop with sudo access. Development is a creative process, and every developer has their own set of tools and workflow productivity scripts and utilities that make their process work best for their mindset. Hiring a developer and than insisting that they use your management chosen laptop, with your management chosen OS, with your management chosen text editor and so on and so forth is like hiring a painter to make a portrait, but insisting they use your eas
MacBook Pros... (Score:2)
Re: (Score:2)
I agree, I have been doing python, flask, jinja, and heroku lately. The Mac is a breeze to setup and use. I still don't have my dual boot Windows 10 working quite right yet. However, if you are using Visual Studio, native Windows is probably the best way to go. :)
The other thing I like about the Mac is the touchpad. I can actually use it for development sitting in a comfortable chair unlike the best Windows 10 touchpad. The right/left click dividing line and lack of useful gestures is painful.
Sounds like they already answered this (Score:5, Insightful)
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.
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.
Re: (Score:2)
It seems like our uber powerful dev machines are turning into expensive terminals and the ESX cloud is our new time sharing mainframe.
From a security point of view, it should be that way. If the laptop or workstation gets physically compromised (i.e., lost at the airport or stolen in shipment), the thieves will only have the hardware.
Re: (Score:2)
They only have the hardware if the drive is encrypted and the user is using a decent password. You'd want the drive encrypted anyway since there's likely to be sensitive material stored locally by the user in addition to what IT knows about. This isn't a valid reason to force developers to use VMs, IMO.
Re: (Score:2)
They only have the hardware if the drive is encrypted and the user is using a decent password.
Encrypted hard drives for the desktop is coming to my work this year (laptops are already encrypted). Users need to have their badge (something they have) and PIN (something they know) to access their laptop or workstation. The only local data users may have is their Outlook archive.
Re: (Score:2)
Hardly. You can get self-encrypting drives (SEDs) if you're that concerned, or let the CPU cores that normally go underutilized do something useful. Even my Android phone has encryption. If a phone can do it without killing the user experience or the battery, there's no reason a PC can't.
Re: (Score:2)
Re:Sounds like they already answered this (Score:4, 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.
I would like you to share your experiences on BYOD (Score:2)
Good Setup (Score:5, Interesting)
1) Give them the choice of OS, Linux or if they have to suffer, Windows / Mac.
2) Unlock the notebooks so they have absolute full control of them, that includes admin accounts.
3) Stop using Ultra-books, use high end notebooks with loads of Ram, good M2 / SSD Storage and high end processors.
4) Don't use any kind of virtual environment, they just have no performance to offer and should never be used in a desktop setting.
5) Open the development tools and let them use what they want.
5) Standardise to GIT for the SCM, as it's the only good SCM tool on the market.
6) Use good team communication tools.
7) Try to steer clear of Microsoft based tools, for instance TSF, it's a giant pile of steaming shit.
8) Allow BYOD.
9) Give every developer a multi head setup with good keyboards and mice, this never gets acknowledged, but a good Mechanical keyboard is essential.
10) Every developer should have a stand up desk, that can also covert to a sitting position.
11) All the developers should have isolated build servers, that they have near full control over, maybe not the root account, but damn near.
12) Don't allow IT to dictate how the computers for the developers are used.
13) Buy high quality chairs that are designed for long work sessions, they can be pricey but they're worth it.
14) Allow developers to have full flex time, so they don't have strict hours, they can work 8 hours over the course of the day.
15) Don't allow management to over plan meetings.
Basically treat the developers like the rockstars they are.
Re: (Score:2)
Often IT does not understand how important a lot of RAM is to developers. I basically can't use anything with less than 32GB of RAM. Anything less and my environment will start pounding on the disk and everything takes 5x as long to run. One time I was forced to use a 4GB machine and a build that normally took an hour turned into 18 hours. Phooey on that, I made myself an EC2 login on AWS and started building there until I got my 32GB laptop back. CPU performance doesn't seem to matter that much, current
Re: (Score:2)
Windows devs, eh? (Score:2)
32 gigabytes bare minimum for you guys? I take it you're running Visual Studio or other Microsoft tools.
Vim, fully pimped out for dozens of languages, does fine with 32 MEGAbytes.
Re: (Score:2)
Using VIM or EMACS
Re: (Score:2)
funny I can design half a car including every screw and not use a full 8gig while slashdot is loaded at the same time, quit writing shit
Re: (Score:2)
Having been in the position of the IT guy dumping crap laptops onto developers; I'll point out that IT understands perfectly how important RAM is to developers... good CPUs and SSD, or at least Fusion, drives too. If IT is issuing 4GB skinny-disk laptops, it's not by their choice. It's because some PHB/MBA type is golf buddies with a sales weasel from Dell or HP; and they locked the company into a contract for (usually) leased laptops in a standard "on size fits all" configuration that was decided on with
Re: (Score:2)
To much tech talk.
8) hu? who knows what that acronym means?
5) hu? sure, I prefer GIT, too. But your statement is just idiotic!
1) what is the difference between Linux and Mac OS? Considering your post I doubt you will be able to correctly tell me 5 differences.
9) 'multi head set up', wow, who again is comprehending this kind of slang?
Ah yes, the point why I actully answered was 4)
How much CPU performance do you lose running you beloved Linux in a VM on a Mac under Mac OS X?
Hint: a person can not notice the d
Re: (Score:2)
8) BYOD is commonly a understood term, if your management team / IT team / Development team, doesn't understand what it means, your in trouble. Even if they didn't , which I'm pretty sure would be grounds to leave the company, if you can't explain it's "Bring your own device", you probably shouldn't work there.
5) Not at all, I've used many different SCM's and all of them are garbage compared to GIT.
Perforce decided to random delete and corrupt several repo's, causing massive data los
Virtualization 10%-15% more CPU (have many Ghz) (Score:2)
>> How much CPU performance do you lose running your beloved Linux in a VM
> I could test this right now using Virtual Box, and if I boot up a Windows 10 VM, then try to load Visual Studio 2015, Altium Designer, Excel and a few other apps.
Windows 10, Visual Studio, Excel, etc aren't actually Linux. You bring up a good point though - if you set the VM to have some small amount of memory, then load up a bunch of huge, memory hogging applications, can certainly cause trashing. If you're going to run
Re: (Score:2)
Multi-head is lame. Get a nice ~40" 4k display. It's nice. You'll never want to go back to multiple mini-monitors.
Re: (Score:2)
Re: (Score:2)
1) ensure nothing will work with eachother, bombard IT with endless complaints that their twinkie app doesnt work with obscure bsd
2) they will be pawned in a second
3) yes I agree with this, give them a 35lb ailenware with dual geforce 1080's in them, see how far they wander from their desks
4) performance is very important when developing a iphone app
5) see number 1
5 (pt 2?) GIT sucks nuts
6) impossible since you gave them freedom on 1 and 5, snowflake #1 will use irc and snowflake #2 will use irq
7) yes cause
Re: (Score:2)
14) Allow developers to have full flex time, so they don't have strict hours, they can work 8 hours over the course of the day.
Some flexibility is fine, but not fully. Sometimes you need to communicate with colleagues, or more likely, they need to communicate with you. If you don't want to be disturbed or talk to anyone, you might as well work from home. I find 4 hours of common work time for all team members a rather good compromise.
Make their computers less restrictive? (Score:4, Interesting)
Nothing virtual (Score:4, 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.
Re: (Score:2)
"remote big iron"
Who's stuck in the 80's now?
No admin privileges!!? (Score:5, Insightful)
Are you freakin' kidding me? How is a developer supposed to develop software that "requires administrator privileges" if he or she can't write to arbitrary directories and / or registry keys during normal, post-installation use? While you're at it, you might as well require your developers to use a 1080p screen, thus restricting their interfaces to actually rendering correctly on the displays of 99% of their users! What's next? Requiring the end product to run in an amount of memory likely to be supported on a single-socket motherboard and asking that code manipulating a database not be executed on the database server itself!!? Wow, just wow.
Re: (Score:2)
How is a developer supposed to develop software that "requires administrator privileges" if he or she can't write to arbitrary directories and / or registry keys during normal, post-installation use?
On a test machine, with a locked down network. And ideally, in its own test domain.
Picking your post apart: (Score:5, Interesting)
I work for a company with more than a thousand developers /. comments.
- Already, you're in the wrong venue. Unless you're a C-level executive, don't expect much change. You need white papers and golf clubs to change your company's policies, not
and I'm participating in activities aimed at improving the work experience of developers
- You're an outside consultant tasked with reducing the workforce by improving productivity. Don't forget that when you deal with your developers.
Our developers receive an ultrabook
- A real developer can't work on an ultrabook
that is rather powerful
- It's an ultrabook, not powerful
but not really adapted for development (no admin rights, small storage capacity, restrictive security rules, etc.)
- Your company is treating your developers like sales and customer support. Are you sure you're dealing with developers and not glorified tech support? If you are dealing with developers, you will also see high turnover and rather little experience. You're probably dealing with a developer sweatshop, not a well-managed tech house, change the culture around hiring first before you call these people "developers".
- They also have access to VDIs (more flexibility)
Virtual desktops are for things that you require little interaction with or that can easily be destroyed, not for development.
- but often complain of performance issues during certain hours of the day
Well, what do you expect, again, you're treating developers like tech support, your company's priorities are wrong.
- 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.)
If they don't have those, they're not going to be very productive developers. If you have thousands of developers without even basic version management and build tools, you better quit now, the company is doomed.
- We recently had a presentation of VMWare on desktop and application virtualization (Workstation & Horizon), which is supposedly the future of the desktops.
Who got to play golf? VMWare is well behind on the market and only survives through inertia and takeovers. It's the Microsoft/IBM of VM.
- It sounds interesting on paper but I remain skeptical.
Citrix did it better in the 2000s. It failed. For good reason.
- What is the best working environment for a developer, offering flexibility, performance and some level of free choice,
You answered your own question
- without compromising security, compliance, licensing (etc.) requirements ...) get a site license. Your developers should be smart enough to maintain their own security if they need admin rights, the ones that aren't can be weeded out immediately.
Recommend replacing management first. Compliance and licensing is a managerial thing and should be hardly required since the most powerful development tools are open source, for everything "necessary" that deals with evil business partners (Adobe, VMWare, Microsoft,
- I would like you to share your experiences on BYOD, desktop virtualization, etc. and the level of satisfaction of the developers.
BYOD: If your company is too cheap to provide the necessary machines then they get to deal with the headaches of BYOD.
Desktop Virtualization: Tried and failed in the previous dotcom bubbles.
Level of satisfaction is directly related to your management.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Your developers should be smart enough to maintain their own security if they need admin rights, the ones that aren't can be weeded out immediately.
Indeed, most are smart enough. But it takes just one dumb (or groggy) developer to let an adversary yank a useful credential and start moving laterally through your network. I mean, even your developer's normal-privilege git account is enough to plant a backdoor in the code [theregister.co.uk] without any fancy persistent-threat-acrobatics added on top.
Don't get me wrong, I still think devs should have super-user privileges on their development machines. But things like IDS, monitoring, logging and other tools are quite useful
The absolute best. (Score:2)
The absolute best environment? Sitting on my couch, in my pyjamas, with easy access to my refrigerator and tunes.
However, if I catch one of your developers on my couch wearing my pyjamas and helping themselves to my 'fridge while listening to my tunes, there's going to be trouble.
Ultimately, as a developer my preference is to a) have the entire power of the system in my hands, b) not be tied down by local system restrictions, and c) not being tied to specific developer tools, especially an IDE.
Breaking tho
It depends on the developer (Score:2)
Basic resources, with few restrictions (Score:2)
A good desk and chair. It's sorta too open still, but the rows aren't crowded close like the last place, so it's quiet.
And that's it for the corporate contribution (!)
On my machine I run a vm or a container with the exact configuration of our production machines, one of a number of copies
Easy (Score:2)
Re: (Score:2)
MacBook Pro VmWare Fusion
So you want a MacBook to work in Windows? Are you also a drinker of decaf coffee and alcohol-free beer?
negative on virtualization (Score:2)
That way, you can run your script on a production server. Quickly set up a new instance and ins
No more than one status meeting a week (Score:2)
and keep it short. My company has daily stand-ups that don't help me. Sure they are short but they are in the middle in the morning right when I'm getting into the "zone". It takes might right out of the "zone" and, with all the other stupid office distractions it can take me another hour to get back into my work. If the dev team needs daily stand-ups to stay on track then you don't have the right crew.
Another thing is don't make developers multitask. That is don't assign them to more than one project.
Our IT has the formula (Score:2)
2. Come up with a naming scheme that encodes OS, os vesrsion, processor name, memory, diskspace, acquisition year as an impossible to remember server names. Like CentITLinRH73_i7_256GB_4TB_2016_num[serialnum]. IT
Re: (Score:2)
What about your remote intranet access? Can it detect when you're on a mobile network and make sure to force you to download 12MB of compressed javascript on every page?
A wall of pixels (Score:4, Insightful)
You want as many pixels on your screen as you can get. Dual-head is better. (Triple- or quad-head is better still). This follows from the simple observation that the more information you can see at one time, the faster you can work and the fewer mistakes you will make.
Remember that the pixel-width of your screen is more important that the physical width of your screen. The physical width should be sized so that it completely fills your field of vision when you are seated comfortably and ergonomically. Your goal should then be to put as many pixels inside that fixed physical width as you possibly can.
Avoid programming on laptops. You cannot work efficiently while looking through a soda-straw.
Beware of VDI (Score:4, Insightful)
Remote virtual desktops are okay for basic use, but even on high-end infrastructure there's a tiny latency which is quite annoying when coding (unless you type real slow). It's not "in your face" but you can feel it and it makes the experience unpleasant.
Secure your data. (Score:2)
A real laptop computer to share ideas on, walk around with.
A secure internal network to store work well away from the outside world.
A computer to search the web and use social media on that is not work connected, an entire different physical network.
If staff have to travel to other nations give them a brand new work phone and new laptop. Trendy looking but consumer grade.
The only contact is their boss and legal support. The computer device only has a few produ
Give me an office (Score:2)
2: clear tasks
3: an office with a door I can close
4: reasonable deadlines
5: an office with a door I can close
6: time to finish the job without working 60+ hours a week
7: an office with a door I can close
Ask Slashdot (Score:2)
What's the Best Working Environment For a Developer?
In your position, the answer is obvious. You should 'ask your developers'. Seriously, you are planning to do something that will affect a majority of your developers. Asking them is the best way to get the most favorable end result.
The next step is how to ask them. You should create a poll or a survey for your fellow developers regarding the new plans.
Only after you get those down, you can finally pick a few topics for your plans. Start with Office Resour
100% remote (Score:2)
Ive become convinced the best developer environment is 100% remote. Corporate IT is so out of touch with network/application development they can't possibly help or do anything but hinder...
At least dual monitor desktop (Score:2)
Remote into ESXi (Score:2)
supposedly the future (Score:2)
> which is supposedly the future of the desktops. It sounds interesting on paper but I remain skeptical.
Who supposed that? Employees of VMware? You will likely to consider other options for virtualization or containerization.
An environment with less acronyms, perhaps? (Score:2)
Use english if you remember it...
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
My thought was: There are still people forced to do work on a VD/VM? The last time a company made me use a Citrix instance, the entire office went to the premier of "The Matrix".
I'm not talking about testing and running final software compiles, but running an IDE over a home-Internet or shoddy company WiFi, even a VirtualBox or VMWare instance just kills productivity.
Vmware works for me (constant CLI, some GUI) (Score:3)
I use VMWare for development and it works quite for my needs. We take advantage of the vmware software within the guest for a shared clipboard and shared storage. Setting up the network initially, with the corporate VPNs, was a bit of a hassle to figure out, but that was a one-time event.
My particular setup is Mac hardware and I spend most of my time SSHed to a local Linux VM. For the Linux environment, the fact that it's a VM is completely invisible - it looks and feels *exactly* like running it on metal (
VMs are key (Score:2)
I agree with everything you said, I use VMs too. There's another benefit of using VMs: you have a frozen environment per version. I work on software that releases a couple of versions a year and every 2 years or so a big version jump. With these big version jumps we e.g. upgrade UI controls and introduce necessary breaking changes. When I start on these major version jump versions I move to another VM, cloned from the original. This leaves the previous version's VM in tact so I can fix bugs in that version'
Re: (Score:2)
Yes, believe it or not VM's aren't perfect. They can't virtualize everything.
Game developers, for example, can't run in VM environments because even the "best" of VMware's offerings for Linux, MacOS and Windows only support OpenGL 3.3 and DirectX 10. If you want to be a cheap-ass and try to use VirtualBox then you're limited to OpenGL 2.1 and DirectX 9 which is basically unusable for anything modern.
Re: (Score:2)
Game developers, for example, can't run in VM environments because even the "best" of VMware's offerings for Linux, MacOS and Windows only support OpenGL 3.3 and DirectX 10.
It could be argued that you don't need to run the programs on the development box. The majority of PS4 developers don't develop on a PS4, for example.
I'd even argue that development velocity goes down if you frequently interrupt your development work with execution.
Re: (Score:2)
No way. Develope velocity goes way up when you have the program automatically restart tests whenever you press save. I run development with Livereload. When I change one singe thing in CSS or html the webpage updates in an adjacent window. Instantly. It is like you are chaning thing interactively on the fly. Nothing makes me more productive than that.
Re: VMWARE is the future? (Score:2)
And if you have multiple screens a vm isn't working well in all cases either. And I have figured out that three displays are ideal.
Re: (Score:2)
I am confused. Why would I develop in a VM?
My machine is setup the way I need to develop my codes. Sure, when I deploy web code, I usually deploy it in a VM. (Though probably I should switch to container.) But what benefit would I have in developing a C library in a VM?
Re: (Score:3)
There can be a number of benefits to developing in a VM, at least when what you're developing allows you to do it. One of the main benefits is hardware independence - it's very easy to pick up your VM guest and move it to a shiny new computer, such as getting new hardware upgrades every year, or even changing host operating systems from Windows 7/8/10 to Linux or MacOS.
If your host dies, due to a hardware problem, power spike, etc., you can run your guest(s) up on a new host from backups very quickly, avoid
Re: (Score:2)
Re: (Score:2)
What are you talking about? Or, are you still using a CPU without virtualization flags?
Re: (Score:2)
What's easier to backup and restore? Hint a virtual machine image.
Run your tooling inside a Docker container instead. Processes run as local processes without the overhead of virtualization, and the container images can be backed up by pushing them to a repository in a single command. On top of that, Docker container images are way smaller than comparable VM images, as they don't need to store an entire OS as part of the image. In fact, as Docker images are created in layers, two images that share the same base OS layers don't need to store that base OS image layer twi
Re: (Score:2)
Re: (Score:3)
You learn more about your dev environment by actually installing and configuring the tools. If you have it done for you, you've missed out on some potentially useful knowledge. I'd rather take a very slight hit in productivity by maintaining my own system and not having to worry that the machines we're timesharing on are going to end up overloaded and lag like crazy (which they do). It's even worse if the VMs aren't hosted in the same facility. The WAN has a hiccup and next thing you know, productivity
Re: (Score:2)
What's easier to backup and restore? Hint a virtual machine image.
Backing up a 40 GB file to catch a few minor changes? Or automated snapshots that freeze up your VM at the most inconvenient moments, and still are far too far between?
The easiest backup/restore is, in my opinion, to use a version control system.
The OS and apps can easily be restored from nightly/idletime backups; it's the data you actually work on that should be backed up. Checking in your work in progress shouldn't be more than a couple of keystrokes, to a file system that automatically trickle-backups
Re: VMWARE is the future? (Score:3)
Virtualization is good for test environments but running development shall be in a non- virtualized computer.
I have never seen any advantage with a virtual machine for development since there are too many snags and performance penalties involved.
Re: (Score:3)
Each to their own. Personally, I never cared for the editor that comes packaged with that OS.
Re: (Score:3)
I have a high-end Dell laptop [...] quad core i7, SSD [...] separate dedicated graphics card for CUDA work [...] full admin rights [...] Corsair mechanical keyboard [...] I have my own office [...] two large widescreen displays [...] I also have a desktop machine in my office to use as I please [...] Some of my coworkers have standing desk configurations [...] I am free to download and install whatever software I want [...]
Hope this helps.
My current laptop at work has a carboard cpu and needs the pagefile to run two instances of notepad. So no, your description doesn't help at all.
Re: (Score:2, Troll)
Then let them quit. OP has over a thousand devels and giving everyone admin access and the ability to select their own tools will turn into a nightmare. There will be a thousand different environments. One person quits, gets sick or goes on vacation and his cow-orkers will have to reverse engineer all of his shit to keep production running. Nobody in a shop that size is that good.
If you want free reign to select your own tools, work for yourself in your basement.
or surreptitiously, as necessary.
You're fired.