ひっそりと生きるプログラマのブログ

日頃気になった事なりを書き留めるブログです。関心ごとは多くもう少し更新頻度を上げたいところです。

Sierの開発現場における役割と技術力

開発業務に従事していると色々な立ち位置で仕事する機会があります。
漠然と分かれている役割について整理してみようと思います。

役割

私の認識では開発の現場において、
以下のような役割が分かれていると思います。

  • プロジェクトマネージャー(以下、マネージャー)

成果物を円滑に提供する環境を調整する人
各役割を受け持つ要員の確保から各々が100%のパフォーマンスを発揮できると共に、
ユーザーからの要求(納期など)を適切に判断し短期的、長期的な目標を立てれる人。

成果物が成すべき機能を定める人
ユーザーからのヒアリングを元にシステムとして落とし込める人。
また、ユーザーが潜在的に抱えている問題なども、その過程で汲み取る事ができる人。

  • アーキテクト

成果物を構築する様式を定める人
設計思想に従いデベロッパーに品質の高いソースコードを書いてもらうため日夜泥臭い事ができる人。
また、システムエンジニアが定めた機能を一定の水準で作れるよう様式を定める人。

成果物を作成する人
ソースコードの実装から単体テスト、ビルドし実際の環境で動作するものを作る人。
サーバー周りの環境構築も受け持つことが多い。

  • テスター

成果物の品質を評価する人
想定する環境で動くものに対しユーザーの要求を満たすものかを評価する人。
プログラム的な不具合以外にも、セキュリティ的な観点、パフォーマンス的な観点からも、
同様にユーザーの要求を満たせるか評価できる人。

兼任

大規模な会社や案件であれば全ての役割毎に人をアサインしたり、
一つの役割に複数人を割り当てる事もざらにあります。

規模が小さくなれば、それだけ割り当てる事が出来る人員も限られてくる訳で、
必然的に複数の役割をこなす事が必要になってきます。

マネージャーとシステムエンジニアを兼任したり、
デベロッパーとテスターを兼任したりというのが良く見る光景ではないでしょうか。

全ての役割を受け持ち仕事する事がこの業界では極々当たり前の事だったりします。

価値

皆さんの周りではどうかは分からないが、
一般的には以下のような認識が多いのではないでしょうか?

マネージャー > システムエンジニア > デベロッパー > テスター

アーキテクト ← なにそれ?美味しいの??


また、上記の価値と併せて"何故か"Sierキャリアパスは、
テスターから始まる事が多いです。
※会社の規模や仕事の請け方によりそうでない場合もあります。


それ故、"テストって誰でもできるんだから単価も低い"という、
という考えの方々が非常に多いように感じます。*1


本当は違うんですけどね。


以前、経験が長く優れたテスターの方とお話したんですが、
テストする上での観点や思想について目から鱗でした。


そういった方々にお願いする訳でもなく、
かといって、育成する事もしないため、質が低いものができ、
それをどうにかしようと奔走します。


その結果、マネージャーなりが、
"うちのデベロッパーやテスターは質が低い"
というのは筋違いというものです。

そういう要員しか調整しか出来なかった自分の無能さを嘆くべきです。

因みに、私が現在アサインされている案件ではそういった事はないです。(やったね!!)


と、最後のは半分愚痴も含まれてしまいましたが、
今日のところはこの辺で!!


また、気が向けば、こんな感じの続きを書くかも!!

*1:一昔前よりかは、随分減りましたがいまだあります。