The holiday season is upon us, so it's a good time to consider a few things you can give your software development team to make their lives easier and to bring some happiness into their work life. Not all of these are physical items, either. Some are changes you can make in how you handle your team and their challenges. While you surely can't get all of these things for your team this year, you should definitely try to see what is possible -- especially given the loyalty and dedication they have probably shown you over the last few years of these challenging times.
Note: This article is also available as a PDF download.
JetBrain's Resharper is one of the most useful tools out there for .NET developers. It just does a great job of making lots of minor tasks a lot easier. If your .NET team isn't using Resharper yet, this is a great way to put a smile on their faces.
2: Innovasys Document! X
Document! X is an excellent way to turn in-code documentation for .NET projects into useful help files. Not only will this make things easier to for your dev team, but it will improve the lives of the people who have to work with their libraries and code. It even hooks into Visual Studio 2010's new Help system, so F1 works for your custom code.
I have not talked to any developers who were unhappy because they moved to Mercurial for their version control needs. I made the switch myself for personal projects recently, and I could not be happier. If you want to take away the pain of working with source control, give Mercurial a shot. It's an open source project, so the experiment won't cost you a thing, and there are hosted solutions that are dirt cheap.
Developers spend eight hours a day (on a good day) in a chair in front of their PC. The upfront cost of ergonomic equipment such as specialty chairs, desks, mice, keyboards, and better, bigger, and extra monitors may seem a lot. (My home office setup cost a bit over $3,200).But when you consider that it is a one-time expense you do not lose even if the employee leaves, and when you factor in the long-term benefits, it is actually a good bargain.
5: More CPU power, RAM
It's no secret that the tools developers use take up an awful lot of horsepower on the desktop. All too often, the development team is saddled with the standard corporate machines that hold them back. While getting a beefed up machine won't be the difference between "on time" and "a month late," it will definitely reduce the day-to-day frustrations of your team.
6: Growth opportunities
When you talk to employees about "growth opportunities", they usually think about raises and promotions. While I've never met a programmer who has ever turned down a raise, "growth opportunities" mostly mean "chances to learn new things." The best programmers are the ones who truly love to program. Becoming management is not on their agenda, but writing great code and staying up to date are primary goals. If you can find ways for your team to experiment with new technologies, not only will they be happier, but they won't be looking to go to another job just for that chance.
7: Learning and training resources
One constant when I talk to other developers is that their employers do not give them the tools to learn, whether it be the latest-and-greatest techs that they want to experiment with or the bread-and-butter items they need to improve how they do their jobs. Your development team is a bunch of really smart people, but you can't expect them to know everything intuitively. If you give them access to books, training classes (or online presentations), test machines, and the time to learn, it will reap huge dividends in both productivity and morale.
8: Better deadlines
Many, if not most, development projects are behind on their deadlines. The ongoing joke since the first line of code was ever written is that management asks how long a task will take and then completely ignores it and declares some arbitrary deadline. If you want to do something to make your team happier, start being realistic about deadlines. The simple fact is, no deadline can be guaranteed. Instead of picking a date and holding your developers to it, have them produce an estimated time of completion (not a "deadline"), treat it as a rough estimate for business purposes, and then work on getting more accurate estimates down the road.
9: More support from leadership
All too often, the development team feels that when the chips are down, they are on their own. Of course, it is impossible to always do things the way the programming staff wants them to be done. At the same time, though, you can try to take their needs into consideration. One of the biggest mistakes made, time and time again, is when managers let pressure from their bosses flow straight through to the workers. Keeping this from happening will go a long way toward having a team with better morale.
10: QA resources
Development teams do not always see eye-to-eye with the QA folks, but that doesn't mean that programmers are against QA. In fact, developers often cite a lack of QA resources, such as special testing tools, time to test as part of the development cycle, dedicated QA personnel, test labs, and so on, as a major source of frustration and a cause of poor software. If you want to help your team deliver better software, look into getting them the QA resources that they need.
Are you planning to give a gift or two to your developers this year? What items would you add to this list? (If you're a developer yourself, what sort of gift would make you happy?) Share your thoughts and suggestions below.
Justin James is the Lead Architect for Conigent.