こすげのブログ

金髪エンジニアのブログ

【読書】「Code Complete 第2版 上 完全なプログラミングを目指して」の感想その1

はじめに

kindleCode Complete 第2版 上 完全なプログラミングを目指してを読んでます。

なんか全部読んで振り返るには大変な本だと思ったので、読んだ日に読んだ分だけ書くようにしようかと思います。

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

今日は第1部 基礎を固める第1章 ソフトウェアコンストラクションへようこそから3章 2回測って、1度で切る : 上流工程の必要性まで読みました。

kindleでは18%読んだって書いてありました。

ハイライト

kindleのハイライトを使ってみました。

以下僕がハイライトした部分をまとめてみました。

今回は8つハイライトしました。

特に第3章が多かったです。

第2章 ソフトウェア開発への理解を深めるメタファ

きちんと計画されたプロジェクトは、詳細が後から変更されることを見込んでいる。そのソフトウェアに取り組んでいる時間が長くなればなるほど、前提となる情報も増えていく。計画の不備が後で大問題に発展しない程度に、十分な計画を立てればよい。

2.3.4 | ソフトウェアコンストラクション : ソフトウェアを構築する

本当に現場で仕事をしていて思うことだなと。

十分な計画が欲しいが、期日がそうはさせない...みたいなのが往々にしてあり得るので、なんとかしたいなと思う今日この頃です。

第3章 2回測って、1度で切る : 上流工程の必要性

準備が不十分になる一般的な原因は、上流の作業を担当する開発者が、与えられた仕事をこなすための専門知識を持っていないことである。

3.1.2 | 準備不足の原因

完璧な知識を持って欲しいというほど高望みはしていませんが、全然ダメじゃんと思う時もあります。

現場は要件定義のところから参加しているので少なくなってきました。


プログラマが準備を怠る3番目の理由は、周知のとおり、コンストラクションの準備に時間をかけるプログラマを上司が快く思わないことである。

3.1.2 | 準備不足の原因

iOS開発では準備をするためにモックやらプロトタイプやらなんやら作りますが、Prottであろうとなんであろうとアプリではありません。

プロトタイプを作ることは大いに結構なのですが、iOSで描画が追いつかなかったりなどのシステム的なことまではわからないのに、それでできるでしょみたいなのは良くないなって思ってます。

似てるものを作るから~みたいなのは勘弁なので、最小のサンプル作るよう努力しています。


技術者としての仕事の1つは、技術系以外の社員に開発プロセスについて教育することである。

3.1.3 | コンストラクションの準備に有無を言わせない根拠

チームみんなに開発のあれこれを共有するように最近し始めています。

とても時間がかかりますが、得てしていい結果を生むと信じやり続けています。

またエンジニアから一方的に押し付けるのもおかしな話なので、ディレクターさんや営業さんが何を重点において仕事しているのかも同じように聞くようにしています。


  • 課題定義は、ソリューションとして考えられるものに一切言及せずに、課題が何であるのかを定義するものだ。課題定義は1~2ページに収まる単純な文書で、課題と受け取れるものでなければならない。

  • 課題定義はユーザーの言葉で語られるべきであり、課題はユーザーの立場で説明されるべきである。

3.3 | 準備 : 課題定義

これはアプリを作っている最中によく振り返ることです。

上記2つは同じ項に書かれていたのでまとめました。

ここをチームみんなが同じ言葉で説明できないと、デバッグ時やテスターとしてアプリを触ってもらった時にチグハグになってしまいます。


開発の過程を通じて、顧客は自分自身のニーズを理解する。そしてこれが、要求を変化させる主な原因になる

3.4.2 | 要求は不変という神話

往々にしてよくあり得ることです。

  • 他のアプリを使っていたらこの機能が素敵だから追加しよう。
  • アプリを使っていたらなんか使い心地が悪くなったからやはり前のに戻そう

などなど...。

こういうのを出来る限りなくしたいのですが、致し方ない部分でもあるなと割り切っています。


準備はリスクを減らすものでなければならず、リスクを増やすものであってはならない。

3.8 | まとめ

最後にまとめられていた言葉です。

当たり前ではありますが、当たり前になっていない開発現場も聞くところによるとあり得ると。

準備が無駄になった。だとか。

感想

とにかく簡単な言葉で書かれています。

難しい(もしくは定義が沢山ある)単語については意味を説明した後、こうやって使うよっていう風に書かれています。

そして、エンジニアの存在意義なんかも書かれています。

強いてはエンジニアが働きやすい土俵を作る為みたいな感じでした。

今回読んだ第1章から第3章まではエンジニアよりも企画者や開発に携わる全ての人に見てもらった方がいいかもしれません。

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

終わりに

ハイライト機能便利だなー

出来る限り毎日書こうと思いました。

以上になります。