Skip to content

Instantly share code, notes, and snippets.

@euske
Last active July 3, 2023 02:09
Show Gist options
  • Save euske/ceb3012ca010d1776b43a5c24c1eefb8 to your computer and use it in GitHub Desktop.
Save euske/ceb3012ca010d1776b43a5c24c1eefb8 to your computer and use it in GitHub Desktop.
Thoughts on Software Development

ソフトウェア開発について思うこと

理想

  • 役に立つソフトウェアを作る。
  • 長く使えるソフトウェアを作る。
  • しかもなるべく早く作る。

牛丼もソフトウェアも究極的な目標は同じである: はやい、うまい、やすい。

現実

  • 世界の複雑さ (なにが役に立つのか、なにが可能なのか) は理解できない。
  • 将来の変化は予測できない。

方針

  • 「探索的な」アプローチが必要。
  • 変化に追従できるアプローチが必要。
  • 柔軟性のあるシステムを使う。

人間」 = 究極的に柔軟かつ頑健なシステム:

  • ほぼどんな状況・障害物にも対応できる - 創造性、多様性。
  • 何千年にもわたって技術・文化を継承できる。

対策

  • 柔軟性のある方法を使う。
  • 人を育てる。

注意

「完璧な方法」は存在しない。数ある「メソッド」は、どれも経験則にすぎない。

  • 「必ず売れる商品を作る方法」 - そんなものあるわけない。
  • 「必ず天才になる教育方法」 - そんなものあるわけない。

実際、生産性向上と教育(と健康)は、詐欺がはびこる分野でもある。

  • 客観的な指標が存在しないので、聞こえの良いものが好評になる。
  • 「王道」は存在するが、あまりに常識的・面倒くさいので、みんな「近道する方法」を探している。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment