# Motivations

{% hint style="info" %}
Why we built aragonOS?
{% endhint %}

aragonOS was born on our path to developing modular and upgradeable smart contracts to power decentralized organizations.

As the project began maturing and we started abstracting more and more, we ended up encapsulating a lot of strong design decisions into a generic framework that could be used by any protocol or decentralized application wanting upgradeability.

**Upgradeability** is really important when developing high-stakes systems in platforms that are still evolving fast. Done well, it can allow for bug fixes and improvements with very little disruption while not causing problems at the protocol level. As a history lesson, if [_The DAO_](https://en.wikipedia.org/wiki/The_DAO_\(organization\)) had had an effective upgradeability mechanism, no hard fork would have been required to fix the problem. As a community we could have avoided months of unproductive discussions, delays in the roadmap, and billions lost in the market capitalization of the protocol due to the fork's damage to network effects.

But upgradeability is a double-edged sword. It doesn't matter how secure or trustless a smart contract is, if it can be upgraded, the contract will effectively be whatever is decided by the party that can upgrade the contract. The guarantees of an upgradeable smart contract are only as strong as the **governance mechanism** that can upgrade it which makes governance the most important aspect of upgradeability.

In a similar way, you cannot have effective governance without a way for upgrading itself to a superior form of governance. Therefore we feel very strongly that **upgradeability** and **governance**, in the context of smart contracts, are in reality **two sides of the same coin**.

At Aragon, we are doing research in decentralized governance and the results of our research will all be made aragonOS-compatible. By using aragonOS, protocols can take advantage of our extensive research on governance, upgradeability, and every other aspect of the Aragon Network and Aragon client software.
