2018-08-05

プロジェクトの進行に自分と無関係なことなんてない

システム開発のプロジェクトに関わるということはどういうことかと、過去の経験を振り返ってみて大事なことを思い出しました。

先日、ユーザーテストのためにプロジェクトの責任者と外出したときの話です。彼と移動中にいろいろ会話しました。

立場が違っても同じ認識をすることはできます。プロジェクトはまるでうまく回っていませんでした。順調であるとはとても言えない。その問題はどこにあるのか、どうしたものかと話しました。

ここから先はエンジニア、みたいな分け方はよくない。

彼が問いかけてきました。「エンジニアにはどこから先をお任せするのがいいんでしょうかね?」「UIまで決めてサーバーサイドに集中してもらう方がいいのか。。」

「サーバーサイドに集中、、というと?」言葉の意味するところが分からなかったので僕は問い返しました。

彼は以前、エンジニアのひとりからこう言われていたそうです。「ユーザーストーリーだけ渡してもらえればあとはエンジニアが考える。」それで現状、言ってみれば順調ではないわけで、その線引きをどこに置くのがよいのかを彼は考えているようでした。

「ここまではオーナー、ここからはエンジニア、みたいに考えない方がいいんじゃないですか?エンジニアだって業務の内容は理解しなければならないし、オーナーだって技術の都合を理解する必要はあると思いますよ」と僕は答えました。

設計のレビューは要件から。

これは、某コンサルティングファームの高橋さんとお仕事していたときに叩き込まれたことです。

高橋さんからよく言われていたのは「設計書をレビューするときは要件から説明できないといけない。」ということです。

この要件があるのでこの設計にしている、と説明できることがいつも求められました。要件を理解するために、その背景にある業務を知っておく必要があります。

だからと言って、要件定義書にあることを設計書にコピペしようものならそれはすごく怒られました。それはまあそうなのですが。

要件に従えばよいということではない。

「要件定義書にそう書いてあるので。。」という言い方をしてしまってもドしかられました。

設計を詰めていく中で要件の不具合が見つかることだってあります。ただ要件定義書に従えばよろしいということはありません。

要件定義書に書いてあることでも、業務のことを考えればそれはおかしいんじゃないの、というようなことは常に考えていないといけないのですね。

要件から見直すことだって当然ある。

一方で、技術的な都合があって設計がこうなるということを高橋さんはきちんと聞いて把握していました。

決して一方的ではありません。商流や工程が上流であるから偉いということはないのです。そこも高橋さんの尊敬できるところです。めちゃ怖いけど。違う立場の人が理解できるような説明をすることはやはり求められました。

そういう理解があれば、要件から見直すということはあるわけです。お互い、わざわざ言わなくてもそのようなリスクは当然あると考えていたように思います。

ので、リスクをなくしていくことと次のアクションをどうするかを、それぞれの役割でまず考えていました。スケジュールとしてはこの準備が必要、技術的にはこの解決が必要。目線が違えばアプローチも違います。観点の異なる都合を擦り合わせて次にどうするかを決めていきます。

エンジニアが要件定義書をレビューする。

役割が違えば、当然、要件定義書もレビューします。レビュイーは高橋さん、レビュワーが僕らエンジニアです。

技量的に困難なことを要件定義書に含めてしまっているかもしれませんし、技術的に実現できるよりよいあり方を提案できるかもしれません。ので、「お客様にこういう説明をしようと思っている」ということを事前にレビューするわけです。

ここでぼんやり内容を理解しないままでいればまた怒られます。しかしその分、説明はものすごく丁寧でした。この業務があるからお客様にはこの要求がある、ということはすべて説明されました。

システム開発は一方通行では進まない。

この姿勢は、ドメイン駆動設計で言うところの、ドメインエキスパートとエンジニアが、ユビキタス言語を用いて相互にドメインモデルを育てていくアプローチに似ているかなと思いました。一方通行ではないのです。

もっとも、僕らが相互に見ていたものの中心はドメインモデルではなくER図と紙芝居ーーHTMLで作成するモックアップーーでしたが。しかしそれはそれでうまくやれていました。

自分と無関係なことなんてない。

システム開発のプロジェクトに対してこういうことを考えながら関わってきた、ということを紹介するつもりが、怒られ体験のお話になってしまいました。

振り返ってみてれば怒られてばかり。

しかし、プロジェクトを進行させていくのに何が大事かということを、その怒られ体験によって高橋さんに習うことができた、と今では思います。当時はめちゃくちゃ衝突していましたが。

その大事なことのひとつが、プロジェクトを進行させるのに自分と無関係なことなんてないということです。

サルトル風に言えば、自分を投企しなければなりません。正しいものを正しく作るために、自分がどのような関わり方をしていく必要があるのかということは、いつも考えるべき です。

当時は私も生意気で結構衝突したのですが、今では高橋さんに感謝です。

ふくちはるき
フリーランスのソフトウェアエンジニア
オブジェクト指向やドメイン駆動設計に興味があります。趣味で写真もやります。 もっと詳しく