Hacker News new | ask | show | jobs
by dqdo 4152 days ago
So I by no means am talking about following the Southwest model religiously. There is always a tradeoff between over using a tool and having too many different tools in place. Ultimately you have to choose the right tool for the job. But more often than not, people tend to choose the trendy tools because they sound cool. Leave the experimentation to side projects where there is less risk involved and the codebase does not need to be maintained for years.

My general philosophy about software development is to keep things as clean and simple as possible -- and no simpler because then you wouldn't be solving the problem in the first place. So I am not suggestion that you over use (for example Jquery) to do everything in the web. What I am suggesting is to think about building software the same way that we build houses. You want to choose carefully the tools that will stand the test of time and not just the fad language or tools. For this I usually check out the community behind the software.

When I architect a software solution one of the parameters that I think about is how long will it take to get someone totally new to my technology stack up and running (and hopefully productive). Most people don't think about this deliberately and so a project might have legacy code that takes months for a new person to come to grip with. Imagine trying to recruit for this type of role. My general rule of thumb is to have the choice of tools/modules as standard as possible and aim for a 2 week preparation period for anyone to get acquainted with the code. For this reason when I use ExpressJS I stick with EJS rather than Jade. I still use CSS rather than Less or Sass (these are my personal opinion).

I also take this philosophy a step further by creating certain software patterns and try as many of the well tested patterns as possible. Thing brings consistency to the codebase.