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.
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.
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.
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.
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).
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".
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.