Accelerating Agile: Prefer simple over easy

3638360458_3f756a949c

We, the programmers, have in the last two decades split in two groups - framework writers on one side and framework users on the other side. The first group can make a framework out of even the simplest functionality, while the second group cannot develop even a simple routine on their own anymore. Frameworks have clear benefits, of course. Nobody has the time these days to develop a a full fledged web application without the help of Django, Play, or some other framework. But if you are rolling just a rudimentary web service using the full web framework introduces lots of hidden complexity, from extensive possibilities of configurations to all the hidden bugs and side effects latent in the code of a typical web framework. So, even though you might be a Django expert avoid the temptation of using it for all purposes. In many cases it's much better to use a microframework such as a Flask instead or even simple BaseHTTPServer. While this requires some extra work that you could avoid by using a framework, your application will be much simpler overall and there will be substantially less chances of nasty surprises. As Greg Young put it in his keynote at QCon

You own all code in your project! Your boss doesn’t care if the bug happened in someone else’s library!

Enhanced by Zemanta