GGG

プログラミング言語やソフトウェア開発について思ったことを書いてます

【感想】ソフトウェア アーキテクトが知るべき97のこと

しょうじき、あまりピンとこなかった。

自分がソフトウェアアーキテクトの立場にないからだろう。

どちらかと言うと上司に読んでもらいたいかもしれない。

ソフトウェアアーキテクトが知るべき97のこと

 

購入の経緯

プログラマが知るべき・・を読んで

こちらもなんとなく気になったので買ってみた。

 

読み終わるまでの期間

1か月

電車の中や飲食店での待ち時間などの隙間時間で読んだ。

案外期間を要した。

 

感想

まず、自分はソフトウェアアーキテクトという立場にない。そのため、ソフトウェアアーキテクトってこんな仕事なんだな・・・。という理解するために良い書籍であった。

 

こうすべきと主張している背景には、そこに問題があるから主張しているのである。

そこから問題がどこに生じやすいのかを理解することができた。

 

確かに実際に担当しているプロダクトや他部署で、問題になっていることの良い解決方法が提案されていることもあるが、立場も違えば書き方・主張の仕方も異なるんだなと思った。

 

今の仕事にも通ずるところはあるのだが、いまいち響かなかった。

その中でも、重要だなと思うことがあったので書き留めておきたい。

 

メモ

  • 今日明日役に立つ知識・スキルと10年後も使える知識・スキルをバランスよく身に着けよう。

 前者:特定言語のライブラリの使い方など

 後者:情報工学の知識:コンパイラ理論、コンピュータグラフィックス理論etc

 

 仕事の大半は、おそらく前者が大半を占めているおり即効性がある反面、流行り廃りが激しい。

 後者は、即効性はない。身に着けるのにも時間がかかる。しかし、流行り廃りがないため、10年後も20年後も使える確かな知識となる。

 

  • システムの設計について、変化をコントロールするのではない。変化をコントロールできるように設計する。

 ほとんどのプロダクトは作って終わりではない。保守することが前提である。

 ※以前、コンシューマ機向けのゲームソフト開発に従事していた頃は作って終わりでしたw

 

 初期開発段階に未来も含めて起こりうるすべての要求を対応可能にすることは難しい。だが、変化を受け入れて対応できるような設計にしておけばいいんじゃないか。

 

 → ツールを使って自動的に、継続的に。

   とりあえずやってみようと思う。

   無償で利用可能なツールがあるか探してみようと思う。

 

  • プログラミングは製造ではなく設計だ。

 → 建築などと一緒にされがちだけど、別物であると認識したほうがよい。

 本当の製造は、コンパイラが自動的にやってくれる。

 現職企業では"製造"という認識が強い。特にソフトウェア開発者以外は。実際に"製造"という表現を聞いたことがある。自分たちの認識を変えるだけでなく、周囲の認識も変えていく必要がありそうだと思った。

 

  • 同じプロダクトの開発デザインでもフェーズやメンバの変化などによって開発スタイルを変えていく。

 → 当たり前なんだろうけど気づかなかった。

 初期の開発段階と保守段階では開発手法を変えても良いだろう。

 メンバの能力によっても様々な開発手法を用いるのがよい。

 アジャイルを使うべき!使いたい!のような一つの手法にフォーカスしがちであるけど、プロダクトやメンバなどの置かれている環境によって開発手法はその都度選んでもよいのだと知った。