This is going to be a little different to most of my blog posts, I usually try to share some snippets of code or explain something technical, this time I’ll be writing about my thoughts on development and business.
I’ve been doing web development professionally for almost 10 years, from back in 2006 when I was younger and inexperienced to now as the lead developer in a diverse and ever changing development team.
During this time I have also freelanced or been self employed and worked with clients directly (I’ve also studied Business, Business Management and Legal Studies for 5 years in total), there is a pattern I’ve seen over the last 9 years with developers that seems to be quite universal. The pattern is that developers usually strive for perfection, we are proud people and we want to deliver the best as well as learn and expand, we want to refactor, we want to try the latest tech, we maybe even want to reinvent the wheel or maybe we’re just comfortable and like to keep at a steady pace.
I’m the type of developer (as well as many others I have worked with) who maybe strive for perfection, maybe we’ve spent some time learning new skills, doing new courses or checking out the latest thing on github. We’re not happy doing the same job over and over (i.e. WordPress), we like a challenge and we like to think about everything.
You have a nice custom job to work on, you’ve been able to pick an MVC framework to work with that fits the job nicely and you know what is needed as well as the timeline and revenue coming in. It can be hard for “the hungry developer” to not start getting carried away, let’s install React.js, maybe we can integrate a nice migration system, I’m going to spend a couple hours adding a test suite and writing scripts to generate data and test our methods. All of this is great in the development world, the more we do the more solid and perfect the end product is, the more time we spend doing the best we can – something people would be impressed with (under the hood), the more proud we are and the more we learn and improve.
My issue with this comes with the business standpoint, and it’s an ever-conflicting one for me. If you give me an infinite budget and infinite timeline, rest assured the end product is going to be the very best I can ever make it, but when you work for an agency or you work to a set budget you have to restrain yourself.
If a client is spending £6,000 for a front facing website and CMS, we need to deliver that at a cost under £6,000 to make a profit. We sell time, everybody in this industry sells time. When the hungry developer gets carried away and spends 30 minutes here, 2 hours there, 6 hours here to create something great, we may end up delivering a £12,000 project for £6,000.
Myself personally, I am a perfectionist, everything has to be consistent. I may not have the best conventions, but whatever my convention is or however I do it, rest assured it’s consistent, well documented and it’s DRY (Don’t repeat yourself). It’s an interesting conversation for me, where do you draw the line between perfection/quality and scope?
I’m fortunate enough to work for an agency with the most rigorous and high standards of quality control, when the job is done and ready for go-live, it has to be to our standard. We never knowingly release a project without it passing our checks, and that’s not to say bugs don’t appear or there won’t be issues, but the company I work for care about the clients as well as their own business – that’s why I accepted their job offer and refuse subsequent offers I receive from recruiters.
Where do you draw the line?