Cowboy coding can be common at the hobbyist or student level where developers might initially be unfamiliar with the technologies, such as testing, version control and/or build tools, usually more than just the basic coding a software project requires.
Many software development models, such as Extreme Programming, use an incremental approach which stresses that the software must be releasable at the end of each iteration.