Better the Devil You Know
April 6, 2008 When you’re taking on a software project of any kind (be it web-based, desktop, or server software) for some reason the question of technology always comes up. Windows, Mac or Linux? PHP or ASP? The fact of the matter is that it doesn’t matter, and your users don’t care. Use what you know and what you’re good at.
A tip for those embarking on software development projects. Use tools that you know and are familiar with. Doing this means you spend more time developing, and less time learning the idiosynchronies of a new technology.
There are a few obvious exceptions:
- You’re extending an existing system that uses a particular technology. For maintenance reasons it probably makes sense to use that same technology.
- The client requires you to use a given technology. If this is for interoperability with existing systems, fine. If it’s a standalone new project, get them to use your tech. While the client may be able to dictate functional requirements, it’s your job to make them happen in whatever method is best for your team.
- You know and love Fortran. It’s time to move on.
There may be a few other circumstances where you’re limited by technology - but you’ll find whenever you have a choice, using what you know will get you to your end result with much less drama.
For projects that matter, the latest fashions in programming are not going to suddenly let you code without bugs or with more features - because you will certainly not be using your new-found technology in the efficient way in which it was designed. Your processes and methodologies will still be trying to fit your new technology into the moulds you used to develop using your old technology.
When we began developing WhisperGifts, we chose to use Django because it allowed us to get best ‘bang for buck’. We were already familiar with the way we needed to structure our project, and how we could achieve our goals in efficient ways. It let us focus on getting true user-facing functionality delivered with minimum effort. If we were to use PHP or Ruby on Rails, we would not have delivered the same product in the same time.
This is not to say that PHP or RoR cannot build a site such as WhisperGifts - of course they can. But that is not where our skills lie, so it would be a poor business decision if we were to use them for our projects.
Next time you sit down to start on a new project, unless you are doing that project with the intent to learn how to use a new tool, stick to what you know.
Save the big-time learning for projects that aren’t paying the bills.