アーキテクト視点を持つこと

先日、どこかで「ソフトウェア開発の設計を担当したことがある人に、業務フローを組み立てさせるといい」みたいな論調の文章を見かけた覚えがあって、それについて書こうと思う。

…のだけれど、その文章をどこで見かけたのか思い出せずにいて、リンクをはることができない。ごめんなさい。

ソフトウェア開発に携わっていると、データの流れとか、どのオブジェクトがどの関数がどこまでを担当するのか、とか、例外が発生した場合にはどうする、とか、そういったことを日常的に考える。人間だけで構成されているシステムならば、設計がゆるっとしていても人間がよしなに判断してなんとかなったりするけれど、ソフトウェアは自律的になにかを判断して動いてくれたりはしないので、いろいろをあらかじめ設計に含めておく必要がある。だから、考える癖みたいなのがつく。これは、業務フローを考えるとき、パソコンを使ってポチポチするような業務ならなおさら、活きてくる特性だろう。専任のソフトウェア技術者がいないような日本中の会社を行脚して、そこの業務フローをソフトウェアパワーで効率化してまわる、ってお仕事もおもしろそうだなぁとは思う。「それをやっちゃうと人間の雇用機会が〜」みたいなお話は今回は考えない。