Content deleted Content added
m Date maintenance tags and general fixes: build 588: using AWB |
m →Advantages: HTTP to HTTPS for Blogspot |
||
(122 intermediate revisions by 72 users not shown) | |||
Line 1:
{{Short description|Derogatory term in software development}}
{{External links|date=January 2009}}▼
{{multiple issues|
{{procon|date=July 2013}}
{{original research|date=January 2011}}
{{globalize|date=January 2011}}
}}
{{Use mdy dates|date=February 2016}}
'''Cowboy coding''' is
A cowboy coder can be a lone developer or part of a group of developers working with minimal process or discipline.<ref>{{cite web |last1=Scott |first1=Welker |title=cowboy coding |url=https://searchsoftwarequality.techtarget.com/definition/cowboy-coding |website=searchsoftwarequality |publisher=TechTarget |access-date=2 March 2022}}</ref> Usually it occurs when there is little participation by business users, or fanned by management that controls only non-development aspects of the project, such as the broad targets, timelines, scope, and visuals (the "what", but not the "how").{{Citation needed|date=January 2011}}
"Cowboy coding" commonly sees usage as a [[pejorative|derogatory]] term when contrasted with more structured [[software development methodology|software development methodologies]].
==
In cowboy coding, the lack of formal [[software project management]] methodologies may be indicative (though not necessarily) of a project's small size or experimental nature.<ref>Hughes, Bob and Cotterell, Mike (2006). ''Software Project Management'', pp.283-289. McGraw Hill Education, Berkshire. {{ISBN
===
Lack of [[estimation (project management)|estimation]] or implementation planning
===
Cowboy coding can be common at the hobbyist or student level where developers
This can result in underestimating time required for learning
===
Custom software applications, even when using a proven development cycle, can experience problems with the client concerning requirements. Cowboy coding can accentuate this problem by not scaling the requirements to a reasonable timeline, and
===
Many software development models, such as [[Extreme Programming]], use an incremental approach which stresses
==
* Developers maintain a free-form working environment that may encourage experimentation, learning, and free distribution of results.
* It allows developers to cross architectural and/or tiered boundaries to resolve design limitations and defects.
* As discussing architectures, writing specifications and reviewing the code all take their time, a single developer (if sufficient) may well produce a working application faster by cowboy coding. Tasks like research or prototyping may not require the code quality more complex methods provide.
*
▲* By coding in their own time, a hobby project may come to fruition which otherwise wouldn't have<ref>K, Alex. Google's "20 percent time" in action http://googleblog.blogspot.com/2006/05/googles-20-percent-time-in-action.html, Official Google Blog, 2006-5-18</ref>.
==See also==
* [[Hacker (programmer subculture)|Hacker]], a subculture that relies on the creativity of individual programmers
* [[Code monkey (disambiguation)|Code monkey]], a pejorative term for programmers who are employed to write simple or repetitive code
* [[Self-employment]]
* [[Indie game development]]
* {{Section link|Cowboy|Negative associations}}
== External links ==▼
* [http://c2.com/cgi/wiki?CowboyCoder Cowboy Coder] definition at Wards Wiki▼
* [http://c2.com/cgi/wiki?CowboyCoding Cowboy Coding] definition at Wards Wiki▼
▲== References ==
<references/>
▲* [http://c2.com/cgi/wiki?CowboyCoder Cowboy Coder] definition at
[[Category:Software development philosophies]]▼
▲* [http://c2.com/cgi/wiki?CowboyCoding Cowboy Coding] definition at
* {{cite web|url=http://cowboyprogramming.com/2007/01/11/delving-into-cowboy-programming/|title=Delving into Cowboy Programming|archiveurl=https://web.archive.org/web/20190323115724/http://cowboyprogramming.com/2007/01/11/delving-into-cowboy-programming/|archivedate=2019-03-23}}
{{independent media}}
▲[[Category:Software development philosophies]]
[[Category:Computer programming folklore]]
[[Category:Software engineering folklore]]
|