Programming is many things.

A single person (group) can do all of the things, but, if you need to scale upwards from a cottage industry mindset, you need to find ways to cleave the work into separate parts, which can be done by other people / groups.

The essence is to provide a notation for communication between the parts, that allows each of the parts to concentrate on their goals
- probably needs more than one “language” / notation (ex. construction blueprints as opposed to CAD drawings of I-beam details)

Possible Breakdown of Programming Into Separate Parts

  • SWArch
    • Architecture
    • Requirements gathering
    • sketching, storyboarding, roughing-in
  • SWEng
    • Engineering
    • MVI - Minimum Viable Implementation
      • need to maintain provenance to original SWArch sketch
      • Engineer can use any technology, but, it needs to be known to work
  • SWImpl
    • Implementation
    • MVI
    • subsequent iterations
  • SWProdEng (Production Engineering)
    • Optimization
      • possible refactoring of MVI
      • need to maintain provenance to original Architectural sketch
  • SWMaint
  • SWTesting
    • white box
    • black box
    • regression
    • Q/A
  • etc, etc.

The members of each group are allowed to communicate / negotiate with the other groups in an iterative manner. Yet, each group must concentrate on their set of goals.

Appendix Examples

  • Kinopio2md case study
    • to follow in another note

Appendix - Original Notes

https://kinopio.club/differentiating-swarch-from-sweng-from-swimpl-from-swprodeng-from-swmaint-from–AJoDrdgLzyNK7dyRsqlPU

Appendix - TL;DR

(self-reference to this note, don’t bother reading or following this reference if you’re already reading this …)

I believe strongly that SWArch, SWEng, SWImpl, SWProdEng, SWMaint, etc. are very distinct disciplines under the same umbrella called “programming”.

A single person (group) can do all of the things involved in programming, but, if you need to scale upwards from a cottage industry mindset, you need to find ways to cleave the work into separate parts which can be done by other people / groups.

more thoughts

Appendix - See Also

References

https://guitarvydas.github.io/2021/12/15/References.html

Blogs

blog

obsidian blogs (see blogs that begin with a date 202x-xx-xx-)

Videos

videos - programming simplicity playlist

Books

leanpub’ed (disclaimer: leanpub encourages publishing books before they are finalized - these books are WIPs)
Programming Simplicity Takeaways, and, Programming Simplicity Broad Brush

Discord

Programming Simplicity all welcome, I invite more discussion of these topics, esp. regarding Drawware and 0D

Twitter

@paul_tarvydas

Mastodon

(tbd, advice needed re. most appropriate server(s))