As you might have noticed, this site was built in components. As we built the new documentation we started hiring more people to work for our company and we needed an internal wiki site to be a single source of truth for all information internal at Bit to keep everyone in sync. We decided to document the process to demonstrate thinking in components.
Thinking even of this simple product as one piece, keeps us further away from initial value creation. This approach focuses on a single point of value that can only ever serve a single purpose; the bigger the piece gets, the bigger the problem becomes.
Persisting with this pattern of thinking compounds the problem; work is repeated infinitely. As more people join a team and continue this pattern, even more repetition takes place.
This amounts to unnecessary amounts of duplicated code, design sketches and product specs, with slight differences that makes them a lesser whole together. This is an ever growing debt that decreases the pace of value creation and the quality of work produced.
Even worse, repeating work is repeating decisions, reducing productivity, ending up with teams diverging to different paths for similar problems. Diverged decisions pile up to a growing burden that divides teams further apart, where collaboration is discouraged and morale deteriorates.
For a developer, that means building tightly-coupled code that is hard to reuse and limiting .
Value creation is exponentially decaying over time, ending up in silos of stagnation. For a startup, that means bounding yourself to just a few paths, creating very specific value, limiting a company's ability to pivot or adapt to change.
For an enterprise, that means every dollar spent in value creation is decreasing the value of total dollars invested. The more the enterprise invests, the less value it can create. This equation applies on the entire range, from the smallest system all the way up to the biggest one.
A component is an independent, reusable product that provides an interface for using it. Components should serve a single purpose; you begin by designing its interface to suit your own needs, increasing support for new needs from users as they come.
Components are described by names and APIs, and contain source code implementation. Components come in all shapes and sizes. They can be of different kinds like apps, pages, UI, backend services and even content. You can think of almost anything in components.
In fact, everything you see on this page has been created with components.
If you are ready to give Bit a try, head back to Quick start and kickoff you component-driven journey!