xref: /aosp_15_r20/external/pigweed/docs/mission.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1.. _docs-mission:
2
3======================
4Mission & philosophies
5======================
6
7-----------
8Our Mission
9-----------
10.. pull-quote::
11
12   Create both *software* and *process* foundations for *sustained*,
13   *robust*, and *rapid* *embedded* product development with *large teams*.
14
15Each component of our mission has additional meaning:
16
17- **Software** - Our modular components and surrounding tooling are our
18  primary deliverable. The software is the product of our philosophies.
19- **Process** - Developing robust software processes is hard, and not something
20  all teams have time for. Our mission is to create reusable processes that can
21  save time and increase team happiness. Our approach is to offer tooling and
22  standards. For example, our integrated code formatting, module directory
23  structure, style guide, test processes, and more are all designed for reuse.
24- **Sustained** - Products often live a long time or are part of a series of
25  related products; and over time the requirements change. Our mission is to
26  make these sustained development situations easier. Our approach is to create
27  flexible and reusable foundations to gracefully handle changes. For example,
28  our porting abstractions make switching a microcontroller vendor easier.
29- **Robust** - Creating robust products is hard, yet important for finding
30  market and product success. Our mission is to assist teams in creating robust
31  products. Our approach is to:
32
33  #. Invest heavily in software reliability tooling and processes (unit testing,
34     sanitizing, formatting, etc)
35  #. Comprehensively apply said tooling and processes to Pigweed, making Pigweed
36     a robust foundation
37  #. Make said tooling available for downstream use, so teams can ensure code
38     they write is robust
39
40- **Rapid** - Creating products quickly is critical in today's market. Our
41  mission is to make shipping products faster with Pigweed. Our approach is to
42  accelerate product development by offering reliable foundations (less bug
43  hunting), having great onboarding tooling (low engineer churn/setup), offering
44  modules solving common but hard problems (RPC), etc.
45- **Embedded** - Our mission is to support software embedded in products such as
46  earbuds, watches, phones, thermostats, satellites, cars, drones, and related.
47- **Large teams** - Developing software with large teams in the embedded space
48  is increasingly frequent due to more capable embedded processors.
49  Traditionally, teams were 1-5 people, but are increasingly much larger
50  (50-200 person) teams. Our mission is to make developing larger products with
51  correspondingly larger teams easier and faster, with an eye to support rapid
52  prototyping where there is a chance to scale from an idea to production. Our
53  approach is the investment in common abstractions, common practices, common
54  standards, tooling around those standards, and a focus on automation and
55  repeatability.
56