アジャイルにも開発標準適用しますか(ニンニク入れますか的な)

最近はアジャイル開発もそこそこ普及期に入ってきて(のはず)初めてアジャイル開発に携わるエンジニアも増えているのではないかと思うのですが、なににでもテンプレートを提供して欲しいとか開発標準が欲しいとかリクエストするエンジニアが割といるんですよねぇ。乱暴にいえば、アジャイル開発なんて(どの開発手法を選ぶかはあるかもしれないけれど)テンプレートなんてないです。いやいや、ウォーターフォールだって教科書ないです。

概念だけ。

本を数冊読めばそうしたことはわかると思うのだけれどそうでないエンジニアもいるのが現実のようです。あー怖い。季節的なものだとか都市伝説だといいな。

開発標準は使わなければ価値がない

システム開発のプロジェクトには2つのパターンがあるようです。1つはその組織のシステム開発標準を適用するプロジェクト、2つ目はシステム開発標準を適用できないプロジェックト。

開発標準を適用するプロジェクトは、標準を使うように半ば強制されるというか適用していることを開発標準警察からチェックされるので選択肢がないプロジェクト。一方、開発標準ができないプロジェクトは、組織自体に開発標準を持っていないか、開発標準があっても適用できない理由を作って逃れるプロジェクト。

最後の組織で開発標準があるのになんだかんだ文句を言って適用しない輩が問題です。こういう振る舞いをするエンジニアは得てして

「標準を提供して欲しい」

と要求します。

通常、様々なビジネスをしている組織の中でシステム開発標準を作ることは標準に整理し、適用対象のどのようなプロジェクトにでもフィットすることを目標に構成するので大変労力が費やされるものです。

そうして苦労して(仕事なので苦労するかしないかに価値はなく、標準の類であれば利用されるかされないかに価値がありますが)リリースした開発標準は標準を提供して欲しいと要求するエンジニアには使ってもらうことはありません。ものすごく、強制力がある場合にはその限りではないのですが、強制しようとするとあれこれカスタマイズを要求してやらない理由を作るのです。

どうして標準を欲しいというのだろう

個人としてはシステム開発標準が必要かどうかと問われると

「不要です」

なのです。なぜなら、担当するプロジェクトに最適化したシステム開発手法を選択して、プロジェクトの特性に合わせるから、です。

では、標準が欲しいというエンジニアはどうして使いもしないシステム開発標準を欲しいというのでしょうか。

大体、開発標準を作っても使うつもりがあるのかってところから疑問ですが、そういう行動をするエンジニアに尋ねてみると

「一応使うつもりはある」

なんていうことが多いです。じゃあ使えよ、と思うのですが、実際に使う場面になるとオリジナリティを発揮して標準なんて使いやしない。

開発に必要な知識を持っていない

という標題をつけながら、ちょっとニュアンスが違うかもと思ったり。経験知としてはエンジニア自身が持っているけれどそれをチームのメンバに伝えたり計画としての文書化するほどの知識を持っていない、が近いのかもしれません。もしくは、言語化する能力が欠けているのかもしれません。

メンバにあれこれ指示や協力を仰ぐためには、計画を立ててその計画に必要なお作法や振る舞う仕組みをつくならなければなりません。それができない。なぜできないかといえば、自分で作るだけの知識も能力もないから。

だから、標準クレクレというんですよね。開発標準なんて組織で作られたらそれ使うことが強制されるのに。

まあ、そんなエンジニアをリーダにするなよと言いたいけれど、マネージャがアサインしているのだから頑張ってね、としか言いようがないし、余計なお世話なので言わないでニッコリ微笑むだけです。

テーラリングできない

前述したとおりシステム開発標準はどこのプロジェクトにも適用できるようにしているので汎用的に作るものです。最低限、作業の品質を維持するために守りなさいというレベルです。作業品質を担保しなければならないので、品質を確保するアクティビティは組み込まれますし、第三者が客観的に検証できるためのエビデンスも要求されます。

でも、プロジェクトにはそのまま適用できないのはプロジェクトの達成目的がプロジェクトごとに違うので、テーラリングしなければ開発標準とプロジェクトの特性がコンフリクトを起こすのです。これを解消して最適化するためにテーラリングをしなければならないのです。

でも、標準クレクレというエンジニアには、テーラリングするほどの能力がないのです。そこで

「うちのプロジェクトにあっていないから適用できない」

という発言が出てくるのです。

いやいやいや、開発標準だから。そのまま使うか、テーラリングしないと使えないから。あなたエンジニアでしょう。エンプラ向けパッケージソフトと同じだから、カスタマイズしなくても使えるけど必要ない機能が邪魔になるから、なんですけれど。

 

どうして仕事ではパッケージソフトの概念は理解できて開発標準の概念は理解されないのでしょう。