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