Cowboy coding is an
undisciplined approach to software development that gives
programmers complete control over the development process. In this
context, cowboy is a synonym for maverick -- a loner who does things his own
way.
An organization might
permit cowboy coding because there are not enough resources to commit to the
design phase or a project deadline is looming. Sometimes cowboy coding is
permitted because of a misguided attempt to stimulate innovation or because communication
channels fail and there is little or no business stakeholder involvement or
managerial oversight. 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. They are free to select frameworks, coding
languages, libraries, technologies and other build tools as they
see fit.
The cowboy approach to
coding typically focuses on quick fixes and getting a working product into
production as quickly as possible. They may also edit code on a live production
server, skipping over the formal processes for quality assurance testing, regression
testing and documentation required by continuous
integration and other Agile software development methodologies.
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
with cowboy coding there are no agreed-upon best practices to provide
continuity.
Comments
Post a Comment