Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

The dictionary defines artifact as:

artefact, artifact [ˈɑːtɪˌfækt] n

  1. something made or given shape by man, such as a tool or a work of art, esp an object of archaeological interest

  2. anything man-made, such as a spurious experimental result

  3. (Life Sciences & Allied Applications / Biology) Cytology a structure seen in tissue after death, fixation, staining, etc., that is not normally present in the living tissue

The word artifact often appears in software development, software development cycles, effort estimation, etc. But the above definition doesn't make sense to me in that context.

Could someone please explain this word by giving some specific examples from software industry?

share|improve this question
p2pnode is clearly not asking for the definition of the word "artifact". It's in the question, after all. Asking for how the word is used in a programming context may be a basic question, but it is still on topic. –  Anna Lear Sep 7 '11 at 18:26
The word is out of place in software development- too broad and shallow. It conjures up images of archeological dig sites; pots and shards. –  user115727 Jan 22 at 20:19
@Robster, why do you say that? I've heard it used referring to build and test artifacts (dlls and test results). It seems pretty common and pretty specific. –  MetaFight Mar 7 at 10:34

7 Answers 7

up vote 28 down vote accepted

In software development life cycle (SDLC), artifact usually refers to "things" that are produced by people involved in the process. Examples would be design documents, data models, workflow diagrams, test matrices and plans, setup scripts, ... like an archaeological site, any thing that is created could be an artifact.

In most software development cycles, there's usually a list of specific required artifacts that someone must produce and put on a shared drive or document repository for other people to view and share.

share|improve this answer
Really the only thing that I've never heard referred to as an artifact is code, but I don't see why code can't be an artifact. –  Thomas Owens Sep 7 '11 at 16:17
@Thomas Owens: Code can be an artifact too, but it usually is considered separately (as in "make sure you back up your code and artifacts!") because the only people interested in this artifact are coders, and sometimes architects. Also, code goes into source control, most of the other artifacts should go into a document repository or a Wiki. –  FrustratedWithFormsDesigner Sep 7 '11 at 16:21
Artifacts might also include compiled binaries / software packages. –  Andy Jan 22 at 20:45

I think this Wikipedia article covers it pretty well.

An artifact is one of many kinds of tangible by-product produced during the development of software. Some artifacts (e.g., use cases, class diagrams, and other UML models, requirements and design documents) help describe the function, architecture, and design of software. Other artifacts are concerned with the process of development itself—such as project plans, business cases, and risk assessments.

share|improve this answer

In graphics programming, its often used to reference part of an image that did not render correctly. For example, if a small piece of a previous frame or view is still left on screen after drawing is done, that'd be referred to as an artifact.

share|improve this answer
Because I do graphics programming that's the meaning that comes up for me most often, but that's unrelated to the meaning the OP was asking about (what the term means in the context of software planning). –  jhocking Sep 7 '11 at 20:43
The OP asked "Could someone please explain this word by giving some specific examples from software industry?", which I think includes my answer. –  GrandmasterB Sep 7 '11 at 20:45

I think there are other ways the term is used that mean more like a side-effect, but the main use I see of the word "artifact" within the software industry is to mean "the product that is created". So, like, the program the developers are writing is a "software artifact".

share|improve this answer
I have heard it used to refer to data that is not really needed anymore but was at one time thus is an artifact of the legacy app. –  Chad Sep 7 '11 at 20:04

An artifact is something that is created directly or indirectly as a consequence of something else created. Software artifacts may consist of your project source or resources, or they could be represented as unforeseen manifestations of the interactions between your sources or resources.

share|improve this answer

The word artifact is often used in relation to quality management certifications like CMMI and ISO 9001, and methodologies like Six Sigma. In this context artifact refers to the products and byproducts of the software development process.

Artifacts are gathered and archived throughout the process to be used as evidence that the documented process is being followed. Such artifacts are mainly useful during a certification audit, but collecting and archiving them also makes it easier to figure out how or why the process failed if problems arise.

Artifacts might also be measured and analyzed to find ways to improve the process, measured some more to show evidence of improvement, and then measured continuously after that to show that the process remains in control (i.e. the metrics in question stay within some specified bounds).

share|improve this answer

I've only heard artifact used on one project I've been on: We used it to refer to the files our build put out. However, by reading the other answers, it seems that 'Artifact' is a variable term, used whenever somebody needs a term for some project-specific object type.

share|improve this answer

protected by Yannis Rizos Mar 7 at 10:28

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.