# How to Decide if Software is Too Immature

Using software other people wrote is one of the most effective ways to quickly build a solid system. It should not be discouraged, but the risks associated with it must be examined. One of the biggest risks is the period of bugginess and near inoperability that is often associated with software before it matures, through usage, into a usable product. Before you consider integrating with a software system, whether created in house or by a third party, it is very important to consider if it is really mature enough to be used. Here are ten questions you should ask yourself about it:

1. Is it vapour? (Promises are very immature).
2. Is there an accessible body of lore about the software?
3. Are you the first user?
4. Is there a strong incentive for continuation?
5. Has it had a maintenance effort?
6. Will it survive defection of the current maintainers?
7. Is there a seasoned alternative at least half as good?
8. Is it known to your tribe or company?
9. Is it desirable to your tribe or company?
10. Can you hire people to work on it even if it is bad?

A little consideration of these criteria demonstrates the great value of well-established free software and open-source software in reducing risk to the entrepreneur.

Next [How to Make a Buy vs. Build Decision](https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/04-how-to-make-a-buy-vs-build-decision)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://braydie.gitbook.io/how-to-be-a-programmer/en/2-intermediate/judgment/03-how-to-decide-if-software-is-too-immature.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
