Content deleted Content added
less ambiguous sentence structure |
m →Advantages: HTTP to HTTPS for Blogspot |
||
(30 intermediate revisions by 24 users not shown) | |||
Line 1:
{{Short description|Derogatory term in software development}}
{{multiple issues|
{{procon|date=July 2013}}
{{refimprove|date=January 2011}}
{{original research|date=January 2011}}
Line 7:
}}
{{Use mdy dates|date=February 2016}}
'''Cowboy coding''' is [[software development]] where programmers have [[autonomy]] over the development process. This includes control of the project's schedule, languages, algorithms, tools, frameworks and coding style.▼
▲'''Cowboy coding''' is [[software development]] where programmers have [[autonomy]] over the development process. This includes control of the project's schedule, languages, algorithms, tools, frameworks and coding style. Typically, little to no coordination exists with other developers or stakeholders.
A cowboy coder can be a lone developer or part of a group of developers working with minimal process or discipline.{{Citation needed|date=January 2011}} 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}}▼
▲A cowboy coder can be a lone developer or part of a group of developers working with minimal process or discipline.<ref>{{
"Cowboy coding" commonly sees usage as a [[pejorative|derogatory]] term when contrasted with more structured [[software development methodology|software development methodologies]].
Line 17 ⟶ 18:
===Lack of release structure===
Lack of [[estimation (project management)|estimation]] or implementation planning might cause a project to be delayed. Sudden deadlines or pushes to release software may encourage the use of
===Inexperienced developers===
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.
This can result in underestimating time required for learning, causing delays in the development process. Inexperience might also lead to disregard of accepted [[Standard
===Uncertain design requirements===
Line 33 ⟶ 34:
* 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.
* Since coding can be done during the developer's free time, a project could come to fruition which otherwise wouldn't have.<ref>K, Alex. [
==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}}
==References==
Line 47 ⟶ 50:
* [http://c2.com/cgi/wiki?CowboyCoder Cowboy Coder] definition at [[Ward Cunningham|Ward's]] Wiki
* [http://c2.com/cgi/wiki?CowboyCoding Cowboy Coding] definition at [[Ward Cunningham|Ward's]] Wiki
*
{{independent media}}
|