Ask HN: Incentivising maintainable code from freelancers?
I'm just embarking on a fairly large webapp/api project which I know I'm going to need to bring some a front end freelancer onboard to make a react based web-app front end (My existing team will be working on the backend).
I am really concerned about getting maintainable code from any freelance talent I bring in, e.g. well written SASS/LESS. Paying for a working front end at a project price (can't take day-rate risk at this time) doesn't seem to incentivise writing maintainable code which my team will be able to look after for years to come.
Beyond asking (and praying) for maintainable code, what can I do to help increase the chances of getting better commented, maintainable code?
Thanks!
7 comments
[ 3.1 ms ] story [ 30.4 ms ] threadA less rigorous option is that you could require regular drops at which point you look at the code and only agree to buy the next drop if the existing drop meets your need.
This is a curious statement because time and materials arrangements don't guarantee maintainable code either. Poorly managed, T&M is more likely to incentivize billing than it is quality work product.
The keys to a successful outcome here, regardless of engagement structure, are:
1. Contract with an experienced freelancer with whom you've discussed the importance of code quality and maintainability. Screen out candidates who can't speak intelligently about these topics and can't point to real-world examples of quality, maintainable code they've delivered.
2. Establish clear requirements before the engagement begins and incorporate them into your contract. A fixed-price contract can actually provide you with more leverage in this regard, as you can tie milestone payments to code reviews. Of course, you must perform these code reviews and take them seriously.
Many thanks!
I’m always eager to offer this to clients and I sleep better knowing I’m not going to piss off the next developer who has to look at my work. But with startups in particular, where requirements change every few hours, this really gets in the way of the planning and execution needed to write maintainable and scalable code.
if you assess maintainability when you see the code, make what you pay them depend on how maintainable you assess it.
if you assess maintainability over the lifetime of the code pay the freelancer a small retainer over that lifetime based on how few problems maintaining it there were.