Today i was reading a post by Rob Conery in which he discussed both his thoughts on developer productivity in relation to the creation of a new OS project (ASP MVP), and how he may have thought that in some instances hiding behind WebForms and not touching MVC was really just laziness or ignorance mistaken for productivity. Additionally i also read another post by Scott Bellware in which talks about a similar subject, in that developer productivity when viewed in isolation, is really a myth.
While i think Rob may have been a bit aggressive in singling out someone's pride and joy (these guys have obviously put a lot of effort into this project so if they prefer their I-Snack 2.0 to their Vegemite, all the more power to them), both these posts make some important points in relation to short term, long term and invisible productivity for web developers (and others, but we’re talking about web developers today).
Sometimes spending less time creating a web page is not the best thing for the web page
I started web development outside of the WebForms world and believe that a lot of ASP.Net developers need to get out more, as sometimes using a atom bomb(webforms) when a stone(html page) will do the job has a much better long term result. If this means spending a bit more coding time, don’t whinge, do the right thing. I understand business is business and fastest can sometimes mean you keep your bosses happier but making the wrong call can bring other issues into the system that will add time somewhere else (refactoring, performance tuning etc).
Just because you can use a control in the designer that does what you need (as well as everything else) doesn’t mean you should use it
Using a easy to use control in the search of productivity can be a mistake. Learning to use the right tool for the job is usually the best thing for the task at hand. This sometimes trying/learning something new.
If taking up a new technology seems like a bad idea just because it has learning curve then maybe your priorities need readjustment
Sometimes a better brand of Kool-Aid comes along, and you may miss it simply because you don’t have time to try it or because of any number of other reasons. If this Kool-Aid was a new framework that could give you a lot of cool things that solve some problems the project has, and maybe also save development time then making time may save you time, and more importantly give you a better end product.
Sustainable productivity is the only productivity that matters
If you have to rewrite something later because the tool wasn’t right for the job, or any other reason that comes down to your previous attempts at gaining productivity then it may be that your shooting yourself in the foot.
Productivity is about product
The main goal as a developer is to create something great. This doesn’t always mean the easy or more familiar route. Sometimes it means the slow more complicated route or trying something new. Deciding the right tool for the job, really comes down to whether the product in productivity has something to gain.
But some of those points contradict each other?!
This is where it gets tricky (or not so, depending on how you look at it). Working as a programmer/web developer/enlightened-one means that you have decided to make a career out of being the go-to-guy when it comes to creamy web coding goodness. Your work is a reflection of You.
I’m not saying that WebForms or MVC or HTML/JQUERY/WebServices is a better choice. Every project has different needs, and sometimes using one over the other (or reinventing the wheel in MVP’s case) is the right decision. Choosing based on taste/presumed productivity alone may be a simple folly.