ずっと受けたかったソフトウェアエンジニアリングの新人研修 開発現場編 を読んだ

NTT系列の方が書かれた本です。
最近、NTTDさんが1000名程度のアジャイル開発要員を育てるという話題がありました。
NTTDさんが開発に対してどのような意識を持っているのかを知るというのには良いのではないかと思い手にとってみました。

ずっと受けたかったソフトウェアエンジニアリングの新人研修 開発現場編

ずっと受けたかったソフトウェアエンジニアリングの新人研修 開発現場編

読んでみると、新人で下請けを使う立場のエンジニアが下請けを使う上で開発を進めていく上で困ったところを上司に伺いながら遂行していくという内容でした。
なんだかんだで現在の"現場"を知るという意味では良いのではないでしょうか。
ただし、その現場ではシステムの製造は行われておらず、設計だけはするけれども基本的なシステム構築は全て下請けがやってくれるのを管理するだけという現場ですが。
現状のシステム開発手法を是とするのならば理想的な教科書ではあります。

ちなみに、著者の一人はソフトウェア工学に携わり、かつ工学博士を持っている方のようですね。


ということで内容の詳細について感想を述べていきます。

アジャイルとは

この本では基本的にウォーターフォール型の開発について記載されているのですが、一部にアジャイルに関しての記載があります。*1それによると、アジャイル型の開発は以下のようなものだそうです。

  • 作業を小さな単位に分割して、それを反復して積み重ねながら完成度を高めていく
  • 文章よりもソースコードを重視する

・・・・・・アジャイルソフトウェア開発宣言とは何だったのか。

3年程度でアジャイルを学ばれる1000人の方々がんばってください。

線表(WBS)に組み込んではいけないもの

"線表は皆が作業を進める基になるものなので、不確実な要素は持ち込んではいけない"
はい。それができたら苦労はしません。
さすがはというか、すごい優秀な方々が多いのでしょうかね。もう何年もシステム開発に携わっていますが、未だに不確実な要素には苦しめられます。計画段階で不確実なものが全てなくせるなんて素晴らしいですね(白目)*2

ステップ数の見積もりは内部設計時に出来るもの

きっとこのサンプルプロジェクトはCOBOL。関数は1つあたり数百ステップぐらいで共通関数の設計は内部設計で行えるらしいです。

内部設計、製造は協力会社へ

一番重要な箇所だと思うんですけどねー。

※追記
これだけだとさすがに語弊があったと思いますが、きちんと外部設計から委託する場合と、製造だけ委託する場合についても記載がありましたよ!
また、内容としては協力会社から上がってきた報告を確認して、共通関数の作成を命じたり、書類をまとめる作業について記載されています。

内部設計書は必ず作成させる必要がある

動かしながら作ったほうが早いということもあり、最近は省略されることも多い内部設計ですが、必ず作成する必要があるものとして定義されています。記述上、作成しないことも多いことは紹介されていますが、その場合も、ソースコードから自動生成できるようにしなければならないとされています。いやいや、勘弁して下さい。ソースコードから一意に変換できる設計書を作る意味が理解できません。。。。どうしても書類がほしいのでしょうか。

マシンは不足するものなので一部は人力で

単体テストでマシンが不足するのは常なので、ソースコードの目視確認は必須だそうです。いや、ソースコードレビューは必要だとは思いますが、前提条件が・・・・・

バグ票の管理は紙でも電子媒体でもどちらでもよい

いまどき紙は無いと思うのですが・・・・・(;´Д`)
どういう意図で書いたのかを知りたい。

製造まわりは白目だけれどもそれ以外は割と良いことが書いてある

実際に自分たちでやる場所だからノウハウも溜まってるのでしょうね。これからソフトウェア開発をする人には非常にためになることが記載されていると思います。
以下一部心に残ったところを記載すると

  • 顧客と話すときには相手の知っている言葉で話す
  • レビューの方法について、ウォークスルーとインスペクション
  • 機能要件と非機能要件について、非機能要件は忘れがちだけれども重要
  • テストはカバレッジよりも機能を満たすことを確認する
  • 原則を破る場合には一度原則の状態にしてから

といった形。
他にもあるけれども、そこは読んだ人だけの秘密ということで。


まあ、今やっていることを説明するという意味で新人君に読ませる意味は十分にありなんじゃないですかね?
ただし、これをそのまま真に受けると「マニュアル通りにやってますとはアホの言うことだ!」とギム・ギンガナム御大将に言われてしまうことになりかねないので注意が必要です。

*1:本当に一部ですが

*2:といいつつ、他ではバッファの日数を取る必要がある旨をきちんと告げていたり非常に教科書的ではあります