Jenkins easily runs on a $20/month digital ocean box and should take less than 2 hours to setup. I scripted jenkins to shutdown and wake up the workers on heroku during off hours. It took me less than five minutes to script up the job and saves us $35 a month per environment. Effectively, jenkins costs nothing per month (actually saves us money).<p>Most testing services are horribly over priced and you don't get that level of control. Maybe you want to reconsider that one?<p><a href="http://travis-ci.com/plans" rel="nofollow">http://travis-ci.com/plans</a><p><a href="https://circleci.com/pricing" rel="nofollow">https://circleci.com/pricing</a><p><a href="https://www.digitalocean.com/community/articles/how-to-install-and-use-jenkins-on-ubuntu-12-04" rel="nofollow">https://www.digitalocean.com/community/articles/how-to-insta...</a>
Is NIH syndrome such a big deal with engineers that they need to implement EVERYTHING? I'm leading a team of 3, including myself, and I can't imagine a worse way to spend your time. Why would I spend precious hours re-implementing a non-core problem badly when there's someone already doing it well?<p>When you support a SaaS service, assuming the product is good, you're essentially paying for an entire team to work on a problem you don't like that much but need, but which they love. You're also paying for the future of that product. Unless the software is really bad, or you need something so specialised that a current solution is out of the question, how does an engineer not understand this?<p>You only have limited time in the world. Work on something you find meaningful.
The risk of outsourcing to an SaaS is that the vendor can disappear - it may be a small startup that goes bankrupt, gets acqui-hired, pivots to a different product, etc. Or maybe they can't provide the bandwidth you need to grow or the 99.9% uptime your customers are demanding. At that point you have to scramble to find a replacement SaaS or implement the service in-house.<p>I have nothing against paying for software that someone else wrote, but I'd feel much more comfortable buying the software and running it on my own servers (with a contract that says that if the vendor goes out of business, I retain the right to use the software).
I have mixed feelings about this, but that might just relate to a certain subset of SaaS products we've used - namely products that require heavy integration with your data.<p>I'd sooner spend engineering time writing our own report generators than writing code to push data to another service, in the format they expect, pre-empting which data we might want to have in that service down the track, understanding exactly how the different reports are calculated, and then inevitably having to write a few custom ones of our own as well.<p>Of course, the exception to this are services have a huge set of useful features and take basically no time to fully integrate with, like Google Analytics.
The "we don't buy software here" syndrome is going away.<p>GitHub is a bit part of it. At a lot of shops you have time to drive to the next town and back to update the Wiki or close out a trouble ticket. Uncompromising speed is a feature that turns your developers into winners.
An engineer reinventing the wheel, other than an intellectual exercise, can be a symptom of them being bored with their work or not feeling ownership of the company mission.<p>Building something from scratch exactly how you want to is stimulating, gets you respect from peers inside and out and is something you completely own.<p>When an engineer develops NIH it can be a cry for help. Their leaders need to inspire them to refocus on their customers.
Agreed. I used to think it was best to "do it yourself so you know it" but was quickly abused of that notion. Do important things yourself (if you can do it better -- the stuff the makes or breaks your business). SaaS is a godsend.<p>TRWTF is that the author knows someone who reimplemented NodeJS in house.