/SWE-Principles

Outline of Priciples for Software Engineering

OtherNOASSERTION

SWE PVS

Software Engineering Principles, Values, Strategies

Introduction

  • Software is "eating the world" and we're still not very good at software engineering
  • As software has moved from dominion over "the world of bits to the world of atoms" the repercussions of hasty, thoughtless, or misguided software development and delivery has gone from crashed computers to crashed cars.
  • Unfortunately, there are several impediments blocking the adoption of a software engineering ethic.
  • So then, why bother?

See Introduction to SWE Principles, Values, Strategies

Discussion

  • It's common for the words principle, value, and strategy to be used interchangeably.
  • Verifiable principles, beneficial values, effective strategies.
  • When our values are based in principles we get better, more reliable software strategies.

See Discussion of SWE Principles, Values, Strategies

Foundational Principles

  • Probability and Principles
  • Statistical Significance and Principles
  • Theory of Science (Likely Principles)
  • Theory of Computation (Likely Principles)
  • Theory of Cognitive Bias (Possibly Principles)
  • Theory of Economics (Possibly Principles)
  • Theory of Business (Possibly Principles)

See SWE PVS Foundational Principles

SWE PVS Table of Contents

  • Architecture (SOLID)
  • Code (Internal Open Source)
  • Culture (Remote Only)
  • Infrastructure (Cloud)
  • Management (Situational)
  • Delivery (DevOps)
  • Process (Agile)
  • Product (MVP)
  • Quality (Fitness)
  • Security (OWASP)

See SWE PVS Table of Contents

How to Contribute

  • What we're looking for
  • Ground Rules
  • Making Contribution

See How to Contribute

Code of Conduct

See Code of Conduct

License

  • MIT License
  • Just preserve the copyright and license notices
  • OK to modify and distribute
  • OK for private and commercial use

See License

Credits and Inspirations

I have to admit that this project was inspired by Ray Dalio book Principles, which I ran into at at an Andreessen Horowitz conference. Ray spoke at the conference and the book was handed out to the attendees for free. Ray is a controversial figure in tech and finance and I would not have read his book had I not heard him talk. It's not that I shy away from controversy, it just that I didn't understand there was a method to Ray's madness: radial transparency, hyper honesty, super open-mindedness, etc.... All potentially good strategics, mostly not principles. But why quibble? The idea that an summary of principles, values, and strategies that improve a profession was inspired by Ray efforts. (I'm not endorsing or criticizing Ray. I'm glad he shared his framework.)

As of this moment SWE Principles, Values, Strategies is a solo effort. I'm hopeful that other experienced and thoughtful software engineering leaders will volunteer to contribute. I have many more questions than answers and I welcome all the help I can get.

Long term I hope all the "I"s in this document become "We"s.