All the good developers I’ve known like to have fun, both while they are developing and when they are taking a break. Whether it is listening to loud music on headphones, making bawdy jokes to each other, or playing a quick game of hangman on the whiteboard, fun is an essential part of good software development.
Fun provides a break from the mental calisthenics demanded by software development and without a break things start going wrong. If there is no fun factor in the environment and things start to go wrong, it gets even less fun and the whole situation spirals into a pit of drugery.
A bigger problem with no fun is that of alienating developers and destroying their enthusiasm for the job. If people aren’t having fun at their job, they stop caring. And if they stop caring, the start doing only what is necessary to get the job done. They start punching clocks and not putting in the effort that would normally be there if they cared. I’m not saying they slack off. Many of these developers still end up being more productive than the average developer but the development effort will not be taken to the next level of quality and productivity. In other words, the software will not live up to the potential of the developers building it. This is a shame.
Personally, I’ve never been a part of a successful software development team that wasn’t fun. I’ve also never been a part of an unsuccessful development team that was fun. If I or the people around me can’t goof off once in a while and have some fun then there really is no point in continuing. I know the team won’t be building the best software they are capable of and what is the point in that?