makotan _at_ gmail dot com

手法とか技術力とかの差異をぼんやり考えてたら...

前提として

ある人が可能なことと、他の人が可能なことは一致しない

ただし、色々と学習や経験をしていくと可能になったりする

 

何を考えたか

作るべきソフトウェアは実際には形状の決まってない 何か である

それを各自の持つフィルターを通してみることで形状が見える

フィルターの形と大きさと透明度は各自に差がある

この各自の差が能力的な差に繋がる

 

あるエンジニアJは

ABCっていうフィルターを使えるエンジニアは

ABCっていうフィルターでソフトウェアを理解しようとする

その結果、ABCっていうフィルターを通した形ソフトウェアが完成する

 

あるエンジニアIはABCとCDEっていうフィルターを直感的に適切に使い分けている

ただし、通常はABCっていうフィルターが好きなのでABCを使おうってみんなに言う

ABCしか使えないエンジニアJは、エンジニアIの言うことに従えば同じ事が出来ると思い込んで、CDEのフィルターを学習せずにやってみる

結果的に上手くいったり、上手くいかなかったりする

これはABCっていうフィルターの問題ではなく、フィルターは複数を使い分けるべき事があるって事を指してる

 

エンジニアの初期の頃はフィルターの大きさは小さく透明度も低い

それが経験を通して大きく、透明度が上がる

結果的に作るべきソフトウェアがよく見えるようになる

これが容易に超えられない経験の差として見えるようになる

単なる経験年数を積み重ねたところでフィルターの大きさとか透明度は上がらないので、フィルターを大きくして透明度を上げる努力が必要になる

 

そもそもの作るべきソフトウェアは形状の決まってなく観測したフィルターによって見える形が変わるのなら、単独のフィルターの優劣はそこまで影響はなくて

いくつのフィルターを使えるのか、それぞれの大きさと透明度はどのくらいなのかが実はエンジニアとチームの優秀さの決定ポイントなのでは?って思った