While perusing the Internet the other day, I was shocked to hear that “Victoria from Reddit” (/u/chooter), a paid employee of the company who has been an instrumental voice in assisting celebrities posting in the extremely popular /r/IAmA subreddit, has been fired suddenly.
By now, most developers (and computer users in general) know the mantra “Save Early, Save Often”. During a heavy storm a week or two ago, I was reminded of the importance of this, and its implications for software development. However, in addition to never having a file go unsaved during catastrophic failure (such as the power outage which trashed our designer’s latest Photoshop work), the concept of save early, save often can be applied in several other areas of the software process, and often with beneficial results.
In honor of the long holiday weekend starting tomorrow, our company announced earlier this week that today would be an “Extreme Casual” day. This is just our fancy way of saying that instead of, say, khakis, nice shoes, and button-ups, we could wear things like blue jeans, shorts, T-shirts, sandals, and hats. I like wearing hats, and I just got nifty new shoes that I really like. Also, because of the holiday, there were only about half as many people in the cube farm, and it was a lot quieter. My boss had taken early vacation for the day as well, so it was only me, the project manager, and the other developers.
I can’t tell you the last time I’ve been this productive at work.
Let me just say this, to start: I’m a big fan of good, functional, effective software development tools. On the flip side, I can’t stand being forced to work with a tool that makes it harder for me to work. Where I am now, I do Java EE development with Struts; I have a few tools that make this easier (and a few which do nothing to help).
A good software tool doesn’t get in your way, does what you expect it to do, and makes it easier to do common tasks, which allows you to be more relaxed, focus more, get more done faster, and in the end, create better software. In other words, it makes software development not suck. A bad tool, on the other hand, does the opposite; it takes too long to run, or it gets in the way, or you can’t quite tell if you’re supposed to be using it the way you do, or whatever. It just makes software development suck more than it should. Developers shouldn’t have to fight with their tools just to make good software; their tools should help them by conforming to their concept of what should be done, and never surprising them.
My name is Nick Iannone, and this is my new blog about software engineering. Expect a (hopefully rant-free) look at my experiences and thoughts on software development, web design, and whatever else tickles my fancy. Enjoy!