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...