『あなたの持っている価値観があなたが書くコードの品質を左右している』

 

『あなたの持っている価値観があなたが書くコードの品質を左右している』

 

さて、これを読んでどう感じるだろうか。そんなことはない、プロジェクト、プロダクトの品質要求に応じてコードを書いていると言うのだろうか。それとも、指示されたようにコードを書いているだけだから、品質は作業指示や仕様書次第だ、と言うのだろうか。

 

仕様書からコードにエンジニアが変換する際に、どのようなロジックで、どのような書きっぷりで日本語やモデルからコードに書き換えられるかは、それを書き換えるエンジニアに委ねられる。

そのコードが仕様を満たしているか、ケースを網羅しているかはエンジニアがどこまで仕様を読み込み、理解し、コードとして表現できるかに強く依存することになる。

なぜなら、仕様書からコードとして表現される際に起きているのは、エンジニアの主観による意思決定しか存在し得ないからである。その瞬間、誰も介入することはできない。

介入できなければ、そのコードは書いたエンジニアの考え方をそのまま映す。考え方は、情報を集め、整理し、数ある選択肢の中からエンジニアとして表現したい表現方法をエンジニアの価値観で選び、表される。

コードの品質はエンジニアの価値観で表現されるのである。

これは一人でコードを書く場合に限られる。一人でと限定したのは、モブプログラミングの存在があるからである。ドライバーがコードを書き、ナビゲーターがサポートをする役割でコードを書く場合、書いている最中にナビゲーターの価値観が割り込んでくる。

複数のナビゲーターの知見が混ざり合う中で、コードが決まっていく。コードを書きながら、あれこれとナビゲーター達の経験から予測される様々なケースを共有しながらコードに変換されていくのである。

一人ひとりのエンジニアがそれぞれでコードを書き続けるならば、コードの品質はエンジニアの価値観に依存するため、エンジニア次第で品質は左右される。

モブプログラミング でコードを書くのであれば、チームの共有されている価値観の範囲で品質がコードとして表現される。チームでどこまで価値観が共有されるかに依存するのだが。

 

 

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)

パターン、Wiki、XP ~時を超えた創造の原則 (WEB+DB PRESS plusシリーズ)