<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.linuxquestions.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sindy89</id>
	<title>LQWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxquestions.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sindy89"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/wiki/Special:Contributions/Sindy89"/>
	<updated>2026-04-15T17:50:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Software_development&amp;diff=60062</id>
		<title>Software development</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Software_development&amp;diff=60062"/>
		<updated>2014-06-24T12:46:08Z</updated>

		<summary type="html">&lt;p&gt;Sindy89: /* Tools and processes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Software development''' is a process by which new [[program]]s are planned, designed, coded, tested, debugged and ultimately released as a new [[application]], usually to the public but sometimes within an organisation only. There are many different methodologies for developing software, each of which has its own advantages and disadvantages and is favoured by its own group of adherents. The [[Open Source]] development model is the one most often used by [[Linux]] developers.&lt;br /&gt;
&lt;br /&gt;
= Tools and processes =&lt;br /&gt;
&lt;br /&gt;
See [[Programming Tips &amp;amp; Tricks]] for more details on the specific tools available to assist with the software development process.&lt;br /&gt;
&lt;br /&gt;
* The ''human brain'' is the most important software development tool: before any program is written the developers need to know exactly what the program is for, how it is going to work and who is going to use it. Poor planning is one of the largest causes of software project failures. See [[software development guidelines]] for more information and visit our partner website [http://www.qulix.com/ http://www.qulix.com/].&lt;br /&gt;
* The program may already have been written. Searching [http://www.google.com Google] or online repositories such as [http://freshmeat.org Freshmeat] may reveal that a program already exists that performs the required task. If a program exists but does not ''quite'' do what is needed, then the open source nature of the program may allow it to be modified to suit individual needs.&lt;br /&gt;
* The software developer's most basic tool is the [[text editor]]. Programs are written in a human-readable [[programming language]] and then either converted into executable code by a [[compiler]] or interpreted on the fly by an [[interpreter]]. Interpreted code may be contained within a [http://en.wikipedia.org/wiki/Runtime_environment runtime environment] that isolates the code from the rest of the system.&lt;br /&gt;
* A more advanced form of text editor is the [[integrated development environment]] (IDE) which provides features such as syntax highlighting, assisted navigation and refactoring, single-click compilation and incremental [[debug]]ging.&lt;br /&gt;
* It is important not to reinvent the wheel if possible: there is a massive selection of [http://en.wikipedia.org/wiki/Toolkit toolkit]s and [http://en.wikipedia.org/wiki/Software_development_kit SDKs] that provide ready-written functionality for such things as user interfaces, 2D or 3D graphics, database access and so on. These toolkits will have a published [http://en.wikipedia.org/wiki/API API] and be accompanied by extensive [[documentation]] that facilitates their use.&lt;br /&gt;
* If an IDE is not available, then a standalone [[debugger]] will be useful for locating and correcting errors in a new application (of which there will be many).&lt;br /&gt;
* [[Package]] management and deployment tools (for example [[RPM]]) allow the easy distribution and installation of new software.&lt;br /&gt;
* Once the software is released, a publically-accessible [[bug reporting]] system will allow users to report bugs so that they can be fixed in later versions, and may allow users to submit feature requests for new releases.&lt;/div&gt;</summary>
		<author><name>Sindy89</name></author>
	</entry>
</feed>