Shooting from the hip
Not enough resources to commit to the design phase? A looming project deadline? Or the yearning desire to skip over the formal processes for quality assurance testing, regression testing and documentation required by continuous integration and other Agile software development methodologies?
Cowboy coding is when you make live changes to a website everyone can see. If you do anything that might break your site – you’re cowboy coding. Being free to select frameworks, coding languages, libraries, technologies and other build tools as programmers see fit – that’s the shady ranchers’ approach, typically focusing on quick fixes and getting a working product into production as soon as possible. You’re simply pulling the trigger and hoping something doesn’t break.
“I don’t always test my code, but when I do – I do it in production.”
An individual developer or small team might be given only a minimal description of requirements and no guidance regarding how these objectives should be achieved. Sometimes cowboy coding is permitted because of a misguided attempt to stimulate innovation or because communication channels fail and there is little or no managerial oversight.
Cowboy coders code in the moment with little affection for considerations of the future or even the past. Instead of producing lean, well-written code, cowboy code often has errors that cause failures upon deployment or make it difficult to maintain over time. Integrating the various components of the code may also be a challenge, since there are no agreed-upon best practices to provide continuity.
Garage Shop Enterprises
However, there’s a branch of the cowboy discipline that thrives on the blue-sky possibilities of software, discussing what is going to be done until the sun rises. An emphasis on ingenious creativity as opposed to plodding team play sometimes could, though rarely, end up with amazing results. Apple might be an example.
Sometimes the cowboy is driven by a vision of what could be done. The work can then be elevated to a higher plane of artistry, in aid of some hitherto unattainable goal. University environments often nurture cowboy visionaries surrounded by gunslingers. And some truly great software can actually be created.
Have you edited code on a live production server lately? Or just hanging out at the local saloon, talking about having complete control over the development process? Keep hacking.