プログラマの戒

プログラマのミッションは煩悩を満たすこと。
そのために様々な方法論や手法、ツールを活用するが、それらにとらわれてはならない。
問題をあるがままに捉えなければならず、それらを固執することで問題を別物にしてはならない。
道に迷った時、道に迷っていることに気づけるように、戒を定める。
 
5戒(仮)
  • 不定義(定義してはならない)
  • 不問題(問題としてはならない)
  • 不不出来(出来ない、としてはならない)
  • 不複雑(複雑にしてはならない)
  • 不動不覚悟(覚悟のない行動をしてはならない)
断章
  • 現地(顧客)の言葉で会話する。母国語(プログラミング言語)が通じるのは母国(プログラマ同士)だけである。
  • ソフトウェアは部品(ハードウェア)をつなげるもの。部品をソフトウェア上で実現するのであれば、ソフトウェアには接合部と部品部があり別物であること。混在しているものは専用部品となり、限られたものとしかつながらない(柔軟性を持たない)。

 

  • ソフトウェア開発とは「顧客の業務」という『論理的でないこと』を『論理的に整理する』作業である。
    • 『論理的』とは飛躍なく整然と物事がつながること。
    • 『論理的』に整理するためには正しい接続詞を選ぶことが求められる。
    • 業務を部品とし、部品をつなげる。
  • ソフトウェア開発とはソフトウェアを作るだけでなく、ソフトウェアをどう使うか、どのように使っていくかを整理することも含む。テストとはこれを確認する作業である。
    • そのものに意味があるのではなく、どうしたいかに意味があり、そのものの意味を決める。
  • ミッションは何か。ミッションを果たすためにいくつかのプロジェクトが立ち上がる。プロジェクトしか意識しないのは場当たり的ではないだろうか。
  • プロジェクト・チームとは開発者だけでなく、プロジェクトに関わる全ての者を含む。あらゆる方法論は開発者だけでなく、チームのためのものでなければならない。
  • 一言で表現するのは難しい。いくつかの言葉(単語)を紡ぐことで一つの言葉(句)を表現する。
    • レゴブロックで二足歩行のロボットの足を作るのは難しい。見た目だけでなく、きちんと機能する足を作るためには無駄とも思えるほどの部品の組み合わせをしなければ作れない。
    • コーディングも同様に無駄とも思えるほどの部品(命令)を組み合わせなければいけない。
    • けれど、チーム・メンバーはすべての命令を知りたいわけではない。
    • 知りたいのは機能する何か(句/足/メソッド)だ。
    • そのため、我々は言葉を作る。コミュニケーションを円滑にするために。
  • メンバーはチームに属する。チームは組織に属する。組織は社会の上で成り立つ。
 
Comments