Over a million developers have joined DZone.

I Make Tools and I Share

DZone's Guide to

I Make Tools and I Share

· DevOps Zone
Free Resource

Download “The DevOps Journey - From Waterfall to Continuous Delivery” to learn learn about the importance of integrating automated testing into the DevOps workflow, brought to you in partnership with Sauce Labs.

Sharing code with the community is a habit that every developer should have.  Yes, it does take work to put it up on GitHub, and yes it does mean that you'll have to write documentation and probably deal with bug reports.  But James Turnbull, the VP of Tech Operations at Puppet Labs, says that someone may need those tools that you just made.  James is a sysadmin, and he remembers the times when community tools saved him from a lot of work:

The way I solved a lot of those problems, automated a lot of those tasks or just generally made things better was by steali^H^H using other people’s code and tools. If others hadn’t made their cool solutions and tools available then my life as a sysadmin would have sucked a whole lot more. The fact that others went to the trouble of making things that made my life easier matters to me. So in turn helping solve other people’s problems or making their lives easier matters to me too. And that’s why I make tools.  -- James Turnbull

Of course, James knows all about helping out sysadmins in need.  The open source tool, Puppet, which he helped create is a godsend to many development and operations folk.

Source: http://kartar.net/2011/11/why-am-i-a-tool-maker%3F/

Discover how to optimize your DevOps workflows with our cloud-based automated testing infrastructure, brought to you in partnership with Sauce Labs


Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}