| .. _docs-mission: |
| |
| ====================== |
| Mission & philosophies |
| ====================== |
| |
| ----------- |
| Our Mission |
| ----------- |
| .. pull-quote:: |
| |
| Create both *software* and *process* foundations for *sustained*, |
| *robust*, and *rapid* *embedded* product development with *large teams*. |
| |
| Each component of our mission has additional meaning: |
| |
| - **Software** - Our modular components and surrounding tooling are our |
| primary deliverable. The software is the product of our philosophies. |
| - **Process** - Developing robust software processes is hard, and not something |
| all teams have time for. Our mission is to create reusable processes that can |
| save time and increase team happiness. Our approach is to offer tooling and |
| standards. For example, our integrated code formatting, module directory |
| structure, style guide, test processes, and more are all designed for reuse. |
| - **Sustained** - Products often live a long time or are part of a series of |
| related products; and over time the requirements change. Our mission is to |
| make these sustained development situations easier. Our approach is to create |
| flexible and reusable foundations to gracefully handle changes. For example, |
| our porting abstractions make switching a microcontroller vendor easier. |
| - **Robust** - Creating robust products is hard, yet important for finding |
| market and product success. Our mission is to assist teams in creating robust |
| products. Our approach is to: |
| |
| #. Invest heavily in software reliability tooling and processes (unit testing, |
| sanitizing, formatting, etc) |
| #. Comprehensively apply said tooling and processes to Pigweed, making Pigweed |
| a robust foundation |
| #. Make said tooling available for downstream use, so teams can ensure code |
| they write is robust |
| |
| - **Rapid** - Creating products quickly is critical in today's market. Our |
| mission is to make shipping products faster with Pigweed. Our approach is to |
| accelerate product development by offering reliable foundations (less bug |
| hunting), having great onboarding tooling (low engineer churn/setup), offering |
| modules solving common but hard problems (RPC), etc. |
| - **Embedded** - Our mission is to support software embedded in products such as |
| earbuds, watches, phones, thermostats, satellites, cars, drones, and related. |
| - **Large teams** - Developing software with large teams in the embedded space |
| is increasingly frequent due to more capable embedded processors. |
| Traditionally, teams were 1-5 people, but are increasingly much larger |
| (50-200 person) teams. Our mission is to make developing larger products with |
| correspondingly larger teams easier and faster, with an eye to support rapid |
| prototyping where there is a chance to scale from an idea to production. Our |
| approach is the investment in common abstractions, common practices, common |
| standards, tooling around those standards, and a focus on automation and |
| repeatability. |