私は「ソフトウェア開発部」という名称の部門に所属していますが、「システム」担当と呼ばれることが多いです。
ここで記載する内容は、一般論ではありません。あくまでも私の職場での話です。
皆さまの職場で開発ターゲットに応じて状況が異なると思いますので、ぜひ皆様の現場にあてはめた場合どのようになっているのかを振り返る機会になれば幸いです。
「システム」って何でしょう?
ほとんどの方は、ドライバ担当、ミドルウェア担当、フレームワーク担当、アプリケーション担当と、ソフトウェアの階層で担当分けされています。
また、機能毎に、XX機能担当などと、その特定の機能に関連するソフトウェアを専門で開発業務を行うグループが存在していたりします。
システムという階層も存在しなければ、システムという機能もありません。
要は、「なんでも屋さん」「雑用全般」「人が誰もやらない領域」などを行う担当さんのことを「システム」担当と呼びます。
システム担当の資質
システム担当は、何かの開発を頼まれたときに、できませんとは言えません。
何か、できる手段を提案します。
しかも、自分ではやりません。
人にものを頼むことが得意でなければ、システム担当は務まりません。
他部門や、関連会社、関連していない会社など、ありとあらゆる手段で解決するべきです。
なぜなら、次から次へと課題、難題が振ってきます。大規模なソフトウェア開発においては、検討しなければいけない課題や、解決しなければいけない難題が沢山ありますので、それらを順次整理していくことが、システム担当に求められています。
だから、解決する手段を提案したら、次の課題に移らなければいけません。
システム担当は、人に仕事を頼まれて動くのではなく、自分で隙間を見つけられなければなりません。
大規模なソフトウェア開発において、設計段階で問題を見つけてくれる人は、きっとシステム担当です。
あなたがシステム担当で、設計段階で何かを頼んでくるとすれば、それは別のシステム担当でしょう。
他の機能専門で開発を行うタスクを与えられた担当者は、自分の機能を開発するのに必死のはず。
そもそも、その機能担当にタスクを与えているのは、システム担当であってほしい。
文化祭などで、クラスで企画を行うときに、全体の構想を決めてから、皆で手分けして作業に取り掛からないと終わらない場合、取りまとめをやらされる人って居ますよね。そして、それがやりきれる人は、システム担当としての資質があります。
全体の構想を決めるときに、1人で決めるのではなく、クラス全体の意見をまとめることができるならば、なお素晴らしいです。
システム担当は、予算、日程を把握し、全体のスキルや力量も想定できなければなりません。
実現できる見込みをもった計画を立てる必要があります。そうでなければ、提案した解決手段は誤っています。
どこにも解決する手段が見つからなければ、調査するグループを作成することを提案するべきです。
解決する手段をもっていそうな外部の会社に相談することも必要です。
必要であれば、社内教育を計画して、プロジェクトに関わるメンバーのスキルを上げてから取り掛かることを提案することも必要です。その方が全体として短期に開発が完遂でき、品質があがり、必要経費も圧縮できる場合もあるのです。
今後の保守や仕様変更対応、運用などを継続的に考えた場合のメリットも考えるべきです。しかし、場合によっては、まずは外部に開発検討、開発を委託し、完成させることを最優先に実行しながら、並行でメンバーの教育を行うケースも考慮しましょう。
どうのようにしたらシステム担当を育成できるのか
グループのマネージャー様から、システムって何?システム屋って何しているの?と聞かれました。
私は自分でシステム担当と名乗ったことも無いですし、システム屋って、誰かが勝手に言っているだけなのですから、システム担当の明確な役割定義を知りません。
プロジェクト毎に役割が違います。その場その場、タイミングによってもやるべきことが違います。
最初にやるべきことを定義して、作業分割や計画は立てますが、その後は、基本的に「こぼれ球」を拾っているだけですから。自分で雑用を見つける「雑用係」です。
では、このシステム担当は、どうやったら育成できるのでしょうか?
私も育成された記憶が無いので、わかりません。
若いころに配属された部署で、「システム担当」のレッテルを貼られ、必要な「こぼれ球」を拾い続けているだけです。拾った数だけ、知識とスキルがあがります。
そのマネージャー様は、「複数でシステム担当って、あり得るの?良くわからないから、とりあえずシステムじゃない担当名をいくつか考えて。それで手分けさせて」と申しておりました。
で、その担当間のすきまを埋めるのは、システム担当ですが?
事前に役割の明確になっているシステムって、システム担当不要じゃないの?
ぜひ、これから大規模、中規模なソフトウェア開発を行うソフトウェアエンジニアの皆さんは、以下の資料を参照してください。
IPA独立行政法人 情報処理推進機構:システムアーキテクト試験のシラバスです。
https://www.jitec.ipa.go.jp/1_13download/syllabus_sa_ver4_1.pdf
ここにシステムアーキテクトに携わるソフトウェア開発エンジニアの要求される知識、技能が記載されています。23ページに渡って記載されています。
まさに何でも知っていて、なんでもできる人という定義です。
少しづつでも良いので、意識して開発に取り組んでみてはいかがでしょうか。