【IT業界の闇】開発工程未経験のPMOは終わってます…【ITエンジニア・ITコンサルタント必見】

 

記事の概要
今回の記事では、プロジェクトを管理するにあたっての開発経験の重要性と開発未経験者が経験を積む方法について解説しています。

みこみこ
はいどうもこんにちは、みこみこと、

ジン(以下ジ):ジンです。

太田フランクリン
太田フランクリンです。

0ミリ社長(以下0):0ミリ社長です。

太田フランクリン
今日のお題は、辛辣かもしれないですけどタイトルにもある通り、開発工程経験無しのPMO終わってます

“システム開発工程とは?…そもそも「開発工程」とは、システム開発においてあらかじめ決まっている手順のことを指します。
(※フェーズと呼称することもあります)
…一般的にシステムを作るための提案、要件定義から、運用・保守までの作業ステップを表す言葉として扱われます。
いわば「家づくり」における、建築のステップと同じような意味合いです。”

引用:https://eng-connect.jp/contents/list_2/contents036

 

“PMOは「Project Management Office(プロジェクトマネジメントオフィス)」の略です。プロジェクトマネジメントを支援する部門や組織のことです。

多くの場合、プロジェクトを管理するのはPM(プロジェクトマネージャー)です。しかし、プロジェクトの規模が大きいほどPM1人ではすべてを管理しきれません。そこで、PMOがPMの活動を支援します。”

引用:https://it-trend.jp/project_management/article/33-0057

みこみこ
え、終わってるの?詳細気になりますね。
太田フランクリン
詳しく解説していきたいと思います。
少し辛口ではありますが、現場でリアルに起こりがちな話なので是非聞いて頂ければと思います。

みこみこ
教えてください、お願いします。
太田フランクリン
本題に入る前に、まずPMOの役割ってどういうものかご存知ですか?

ジ:PMの人との調整と他の人との調整、両方やっている人ってイメージです。

太田フランクリン
100点です。
PMOっていうのはジン君も言った通り、プロジェクトマネージャーとかメンバーとの調整をしたりプロジェクトの全体的な進行のサポートをしたりします。
「プロジェクトを成功に導くぞ!」というのがPMOの役割です。

ただし、今日のお題目にもある通り、開発行程経験の無いPMOだと予期せぬトラブルに遭遇してプロジェクト全体が遅延もしくは頓挫しかねないので、今日はそのお話をしていこうと思います。

具体例もありますので、開発経験無くてPMOやってる方とか、開発経験は無いけどPMOやってみたいと思ってる方は是非ご覧になってください!

開発工程の経験が無いPMOが直面しがちな困難はどのようなものか?

目次

具体的なプロジェクトの計画を立てる際の困難

太田フランクリン
まずどういったパターンがあるのか、3つ理由を紹介します。
1つ目は、開発工程の経験が無いと具体的なプロジェクトの計画を立てられないんです。
どういうことかというと、プロジェクト計画の策定は成功の鍵を握る重要なステップになるんです。

例えば、僕達が海外遠征に行く時まず何しますか?行先をどこかの国に設定します。
次に、飛行機の手配をしたり宿泊するホテルの予約をしたりします。

太田フランクリン
プロジェクトを計画する時にも旅行と同じようにどんなことをするかとか範囲はどこまで設定するかとか計画を立てないといけません。
ただ、ここで開発工程の経験が無いと現実的に計画行程を立てることは難しくなってしまいます。
太田フランクリン
例えば、正確なタスクの見積もりができません
例えばとあるクライアント企業に「新しいECサイトを立ち上げる」という案件があるとします。
そこでお客さんからの要望で新しいユーザー認証機能を作ってほしいという要請が上がります。
もし開発行程経験の無いPMOがいた場合、「1週間で完了できます」と軽はずみに言ってしまう可能性があります。

“ECサイトのECは「Electric Commerce」の略で、日本語では電子商取引と呼びます。電子的な手段で商取引をするサイトをさし、物販サイトだけでなく何らかのサービスを提供するサイトや契約手続きをするサイトも含む総称です。

代表的な例として、有料で映像コンテンツを配信するVODサービスや音楽のダウンロード販売サイト、スマホの回線契約に関する手続きを行うサイトが挙げられます。一般的に、Webサイトを運営する側が使用する名称です。”

引用:https://www.rakuten.co.jp/ec/start/ec-site-netshop-chigai/

みこみこ
たぶんそのぐらいでできるんじゃないか?と。
太田フランクリン
認証機能ならメールアドレスとパスワードだけでいけるだろうという感じで受注しちゃう。
いざ受注して開発が進んでいくと、認証方法ってGoogleとかFacebookとか色々あるとか、セキュリティとかしないといけないとか色々な行程漏れが発生するんですよね。
最終的に1ヶ月以上かかってスケジュールに影響があったって話があります。
太田フランクリン
もしPMOの方が技術的知見を持っていてユーザー認証の機能もつけないといけない、色々な方法があるからそこの検討も含めて1ヶ月くらいないとダメだね、と。
開発工程の経験があれば防げた事例です。

開発行程の経験がないPMOがお客様からの要望を受け取って安易な判断でOKを出すとプロジェクト全体に影響が出てしまいます。

太田フランクリン
PMOが変な案件握ってきて困ったことはありますか?

ジ:1社目に入った会社は大手のシステム会社でしたが、そこの同僚の二回りくらい年上のおじさん、開発経験が無いことで炎上したり揉めたりしてました。
それをその場で見てて、「開発経験が無いのは嫌だな…」と。転職のきっかけになりました。

太田フランクリン
ジン君は元々社内SE的な立場だったけど、いつか上流に上がるのを見越して開発経験のある現場に入ったところがあるんですよね。
やっぱり身近にそういう人がいたんですね。

“システムエンジニア(SE)とは、情報システムの企画、設計、開発、試験、構築、導入、運用、更新、修正、廃棄などに携わる技術者の総称。狭義には、ソフトウェアの開発に携わる技術者のうち、プログラミング以外の業務を担当する者や職種のこと。和製英語かつ日本固有の概念である。”

引用:https://e-words.jp/w/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2.html

ジ:それは大きいですね。

太田フランクリン
「いやいや、開発経験無い人がそもそもPMO入れるわけないでしょ」と思ってる方いるかもしれませんがそれは間違いで、現場だとそういう人もアサインされたりします。
正確なタスク管理ができないのが問題で、特に技術面の課題は不確定要素が多いんです。
そのリスクが顕在化してしまうとスケジュールへの影響が非常に大きい。

“アサインは、英語の「assign」が元になっている言葉です。「assign」とは、「割り当てる」や「任命する」ということ。この言葉が、カタカナ表記で使われるようになったのが「アサイン」です。特に、IT系や外資系の会社ではよく使われるでしょう。”

引用:https://domani.shogakukan.co.jp/867183

太田フランクリン
例えばPMOの方がこのフレームワークでいくって決めちゃっても、開発チームがそのフレームワーク知らなかったり、触ったこと無かったりして、そういう現場の声を聞かずにPMOが勝手に決めると、後々間違ったフレームワーク選定をしてしまったせいでバグが出たりするっていうリスクがあります。

もし&PMOに開発経験があれば、現場にフレームワークを下ろしたりエンジニアからヒアリングができたりしてそういうリスクは防げるはずですが、開発行程の経験が無いと間違った判断をしてしまいかねない。

“フレームワーク
効率的なアプリケーション開発のために用意された土台のことです。「枠組み」「構造」といった意味があります。フレームワークをもとにして必要な機能を追加実装していくことで、ゼロから開発するのと比べて大幅に開発工数を短縮できるメリットがあります。”

引用:https://www.ntt-west.co.jp/business/glossary/words-00084.html

みこみこ
ラーメン屋でも作り方を分かってる体の人が入って、結局作ったこと無くてすみませんみたいな。それで見積もったの?と…。

0:店長?

みこみこ
まあ経験無いと分からないってことですね。
太田フランクリン
正確なアサインもできなかったりしますよね。
PMOはプロジェクトのアサイン権、どのポジションにどのエンジニアを入れるかとかアサイン権を権力として持つことが多いですが、このエンジニアのスキルセットと求められてるポジションを適切に把握できてないと間違ったポジションに間違ったエンジニアをアサインするとか結構あるんです。

“スキルセットとは、業務を遂行するときに必要な知識や技術、経験を組み合わせたもののことです。

各職種によって、求められるスキルセットの内容は変わります。

スキルセットを磨くことで、業務の質や生産性を向上させる効果が期待できます。”

引用:https://go.chatwork.com/ja/column/efficient/efficient-592.html

太田フランクリン
かなり極端な話をすると、例えばJavaScriptのメンバーが足りない時にPMOが外部から調達してきて、「Javaできるならここに入って」とか。

もちろんJavaScriptとJavaが全然違うということは皆さん知ってると思いますが、PMOが技術領域と求められてるスキルセットを把握しないままアサインすると、後々こんなことやったことないってメンバーから言われたり、全く知らない業務をやらされたメンバーから不満が来たりして、プロジェクトの破綻を起こしかねないです。

“JavaScript とはブラウザに「動き」を与えるためのプログラミング言語で 、Webページの開発などでよく使われています。
例えば、Webサイトを閲覧した際、ポップアップ画面が表示されたり、アニメーションが動いていたり、入力フォームが設置されているのを見たことがあるでしょう。
このように動的なWebページの実装を可能にするのが JavaScript で、「ユーザの操作で内部処理が発動する」というWebサービスにとって非常に重要な機能を備えています。”

引用:https://techmania.jp/blog/javascript0001/

 

“Javaとは、サン・マイクロシステムズが開発したプログラミング言語。「JavaScript」と混同されがちだが、両者はまったく別のプログラム言語である。Javaは強力なセキュリティ機構や豊富なネットワーク関連の機能が標準で用意されており、ネットワーク環境で利用されることを強く意識した仕様になっている。”

引用:https://www.oca.ac.jp/glossary/8259/

ジ:どこの現場かは伏せておきますけど、元々僕はC#をメインに仕事してたんですけど、C++で書いてるシステムに対して「君この実装入って」って言われて、「C#とC++ってCって付いてても全く別物なんだけどな」と。
アサインされて大変な思いをしました。
自力じゃできませんでした。

“C#は、2010年にMicrosoftが開発した「.NET」というフレームワークを扱うためのプログラミング言語です。

…C#は、
アプリケーション開発
ゲーム開発
VR/AR
システム開発
など、たくさんの開発に活用されています。”

引用:https://www.sejuku.net/blog/124205

 

“C++とは、C言語をベースにオブジェクト指向などを取り入れたプログラミング言語です。この言語は1979年にビャーネ・ストロヴストルップ氏によって開発され、現在にわたり長い間、数多くのエンジニアに愛されています。

このC++は、他のプログラミング言語と比較しても長い歴史を持つため、アプリケーションやソフトウェア開発、ゲーム開発など幅広い場面で利用されています。また、高速な処理速度を持っていることから、大規模なシステムでも重宝される言語です。”

引用:https://www.engineer-factory.com/media/skill/2240/

ジ:元々新しいシステムを作る案件がありまして、要件定義の段階でC#で実装するかC++で実装するかどっちにするって話があって、PMOの人が現場の声を制御できなかったのかベテランの人がC++でいくと決めました。
そのまま進むんですけどアサインされた僕はC++キツいってなって大変でした。

“要件定義とは、システム開発などのプロジェクトを始める前の段階で、必要な機能や要求をわかりやすくまとめていく作業のことです。企画の進行とともに要件定義に立ち返ることも多く、目的の脱線を防止する役割も果たします。”

引用:https://it-trend.jp/development_tools/article/32-0060

みこみこ
他の人に聞きながらできましたか?

ジ:最終的には僕は厳しいですと話をしました。辛い経験でしたね。

太田フランクリン
言語が違うだけでエンジニアからするとスキルセットを大きく学び直さないといけないので負荷が大きいんですよね。
理想は求められているスキルセットやフレームワークとかを経験のあるエンジニアにあてがうことですが、そこの理解が曖昧だとそんな感じでC++の案件にC#を入れちゃうような大胆な採用をする人もいます。
エンジニアからすると全然違うんです。

このように正確なプロジェクトの計画を立てる上で開発工程の経験が無いと難しいところがありますね。

開発工程未経験のPMOが正確にプロジェクトの計画を立てることは困難で、

  • プロジェクトにかかる日数の計算や、開発工程の把握など、タスクの見積もりを正確に行うことが困難です。
  • タスクに適さなかったり、開発チームが対応できなかったりするなど、間違ったフレームワークを選定してしまう危険があります。
  • メンバーのスキルセットやタスクをよく理解していないため、スキルセットの性質と合わないタスクをメンバーに割り振ってしまうような間違ったアサインをする危険もあります。

具体的な作業指示や報告も困難になる

太田フランクリン
2つ目の理由ですが、開発工程の経験が無いと具体的な作業指示とか報告ができません
みこみこ
ラーメン作ったこと無い人は麺を何分茹でていいか分からないですよね。「とりあえず3分ですか?」とか。
太田フランクリン
曖昧な指示だと現場は混乱しちゃいますからね。
PMOに求められている役割はチームに対して明確で詳細な作業指示を出すことです。、
開発工程を理解していないまま指示してしまうと行程が曖昧になっちゃったり、メンバーへの指示とか*外部への報告も曖昧で、薄い内容になってプロジェクト全体の遅延を引き起こしかねないおそれもあります。
みこみこ
開発工程は必須ですよね。
たまに何も開発工程やったこと無い方もいますよね?
太田フランクリン
そういう方は凄まじく勉強してるか凄まじい天才かですよね。
みこみこ
後は周りに助けられる人とか。
現場にすごくできる人がいて、居るだけのPMOみたいな…。
太田フランクリン
具体的にどういうところが問題かというと、エンジニアとのやり取りにおいて仕様の伝達が不明確なことが問題なんです。

例えばPMOがお客さんから要望を受けて、「ユーザーがログインできるようにしてください」とエンジニアに指示するとします。
でも一言でログインできるようにしてと言われても、エンジニアからすると色々な疑問が出るんですよ。
どのようなログイン方法がいいのかとか、認証方法もいっぱいありますよね。
どのデータで認証させるか、メールアドレスとIDなのか、ユーザーごとの固有の情報で認証させるのか、セキュリティ対策もどうするのか。
要望一つで色んな解釈ができるんですよ。
そういった疑問が出てきてしまう、エンジニアからすると。

もし仮にそこで既に設計書があったり作るだけだったら百歩譲っていいんですけど、それが無い場合かつPMOが開発経験特に無くてベストプラクティスな提案ができない場合、もはやこうなるとエンジニアが一つ一つ仕様を決めないといけなくてPMOのバリューが出ないわけです。
指示だけ出してエンジニアからの質問にも答えられない、「お客さんに聞いてきます」とか。

“システム開発をおこなう際には設計という工程があります。この設計の工程というのは、これからシステム開発をしていくに当たって重要になる計画を立てる工程のことです。
その際に作成されるのが*設計書*(設計ドキュメント)です。
これは「システムをどのように作るか」という点について書かれた資料になります。”

引用:https://hnavi.co.jp/knowledge/blog/system_specification/

 

“ベストプラクティス(Best Practice)とは、最善の方法や最良の事例を意味します。また、この言葉は、「業界標準」という意味で使われることもあります。”

引用:https://www.nttdata-gsl.co.jp/related/column/what-is-best-practice.html

みこみこ
仲介役ですか。

ジ:伝書鳩よくいますね。

太田フランクリン
こういうPMOは中々エンジニアから信頼されないし現場にいてもバリューが出ません。
結論、こうなってしまうと開発者の作業工数をすごく奪ってしまい、プロジェクト全体の遅延に繋がってしまいかねないかと思います。
みこみこ
実際こういう人はいますか?

ジ:いました、意外とそういう方は多いです。
チームのサブリーダー的ポジションの人で、その人は技術力があるわけではなくひたすら伝書鳩みたいな人でした。

みこみこ
役職としてはPMOですか?

ジ:そうですね、お客さんからはこういう仕様にしてくださいという要望が来てるけど、それをシステム的に上手く落とし込めなくて全部エンジニアに丸投げしてました。
エンジニアが何か作ってお客さんに渡したら、違うって言われてやり直しでした。
意外と起きることです。

太田フランクリン
エンジニアとお客さんの間に立つのもPMOの役割なので、お客さんとの調整はPMO上で完結した上でエンジニアに仕様を落としてほしいです。
みこみこ
支援型で議事録書くとか顧客折衝する分にはいいと思いますけど、管理や指揮になると流石に経験が無いとまずいです。
太田フランクリン
やっぱり指示する上ではちゃんと把握していないと難しいです。
具体的にこうなると技術的なコミュニケーションの障害になっちゃってます。

PMOに求められる役割ってチームのコミュニケーションのハブになることで、例えばAPI設計についてPMOがまとめなきゃいけないケースはよくあるんですよ。
APIは微妙な位置の実装で、フロントエンドとバックエンドがあってそれを繋ぐのがAPIという手段なんですけど、PMOはフロントとバック両方のエンジニアの意見を聞きながら、統一的な仕様を決めることを求められることが多いです。
PMOはフロントエンドとバックエンドの技術をある程度把握してないといけないんです。

責務範囲っていうのもそれぞれの立場だと決めきれないのでPMOが決めるよう求められます。
技術的な観点や知見が無ければエンジニアに丸投げすることになって、PMOに求められる潤滑なコミュニケーションが果たせなくなっちゃいます。
勉強しないといけないし、自分自身にエンジニアとしての開発経験が無いとそういうポジションで動くのは難しいですね。

“APIとは「アプリケーション・プログラミング・インターフェース(Application Programming Interface)」の略称です。一言で表すと、ソフトウェアやプログラム、Webサービスの間をつなぐインターフェースのことを指します。

インターフェースとは、何かしらの「境界面」「接点」のことを指し、異なる2つの事物の間をつなぐという意味を持ちます。”

引用:https://www.sbbit.jp/article/cont1/62752

“フロントエンドとは、WebシステムやWebアプリケーションなどでユーザーが直接触れる部分を指します。ボタンやグラフィックス、テキストなどの視覚的な要素が含まれており、それらを見たり操作したりすることで、ユーザーはシステムを使用することが可能です。

…バックエンドは、ユーザーからは見えない部分であり、アプリケーションを機能させるデータやインフラストラクチャーのことです。サーバーやデータベースなどで構成されており、ユーザーがフロントエンドを通じて入力した内容の情報処理や各種データの保存、リクエストに応じてデータの出力を行う役割を持っています。”

引用:https://www.skygroup.jp/media/article/3309/

APIは、あるソフトウェアを別のソフトウェアの機能に接続できる仕組みです。
APIを用いることで様々なソフトウェアやプログラムを連携させることができます。

元々はアプリケーション毎に備わる独自のAPIを用いて連携を図っていましたが、インターネット上でWebブラウザを利用するWebサービスが広まった今日では、マイクロサービスという各種Webサービスの組み合わせからなるWeb APIに人々の注目が集まっています。

ユーザーは任意にAPIを利用でき(リクエスト)、APIからの応答(レスポンス)を得てソフトウェアやプログラムの連携が可能となります。
ユーザーがAPIの利用を図る度にリクエストが出て、ユーザーの期待に反する結果となってもレスポンスは返ってきます。

例として、ECサイトでのクレジットカードによる決済ができる機能をユーザーがAPIを介して利用した場合、ユーザーはクレジットカード運営会社の用意しているAPIに対してカード番号などの情報を含むリクエストを発信し、その結果決済の可否を示すレスポンスがユーザーの元に届きます。

APIを利用するにはアプリケーションの開発が必要なため、プログラミング言語への知識がある程度無ければなりません。

APIを利用するにはアプリケーションの開発が必要なため、プログラミング言語への知識がある程度無ければなりません。

APIに用いるプログラミング言語には、

  • C
  • Visual Basic
  • Ruby
  • Java
  • Python

などがあります。

APIの利用にあたって提供元の提示する仕様に関してもアプリケーション開発の知識を前提とする場合が多いため、IT知識を持つ専門職なくしてAPIを用いるアプリケーションの開発は困難となります。

みこみこ
勉強しても経験が無いと難しいですか?
太田フランクリン
勉強してすごく物分かりが良かったり自主学習する方なら問題ないですけど、普通の方は実際案件に入る方がいいですね。
みこみこ
最近増えてますよね、開発経験無くて議事録だけやってきましたってPMO。その割に単価が高かったりします。
希望単価が80万とか90万とか。
太田フランクリン
PMOにも色んな種類があって、管理型とか指揮型とかだったら80万以上とか狙えます。
議事録書くだけなら40~50万が相場になります。
みこみこ
30万にもなるし、そこが結構壁じゃないかと思います。

PMOの中でも支援型と管理・指揮型って大きな乖離があって、その乖離に気付かずにPMOは稼げるって思ったらあれれ?と…。
開発経験無いんだ私、それで単価が100万落ちちゃうと。

太田フランクリン
結果遠回りになっちゃう。

他には進捗報告の場で遅延の原因を具体的に説明できないんです。
PMOのミッションの一つとして定量的な報告があります。
お客さんに対してプロジェクト全体はこうで進捗はオンスケなり遅延で特定の機能は開発が滞ってる、とか何らかの報告をする義務があります。進捗率80%とか。
その時に遅延が起きてる理由も併せて報告する必要がありますし、むしろお客さんから絶対質問来ます

そこで開発経験があれば、機能Aの中でバグが起きましたがスケジュール内で解決する見込みです、とかそういった観測やエンジニアとしての経験込みで具体的に説明できますが、開発工程の経験が無いと何の報告もできなくてすごく薄い報告になっちゃいます。

そうなると具体的な報告ができないだけでプロジェクト全体像の可視化ができてなくて、クライアントから不審がられるんです。
メンバーも自分達の取り組みを報告してくれないPMOに不満を抱いて、コミュニケーションの阻害要因になっちゃうかなと思います。
何でこのプロジェクトが遅れているのかを定量的かつ正確に説明するのは中々難しいんですけど、そこがPMOに求められてる役割です。
開発経験が無いと問題の具体化が難しいですし、PMOは務まらないと思います。

“「オンスケ」は、英語の「on schedule」をカタカナ表記にした「オンスケジュール」の略語で、作業や計画が、予定通りに進んでいることを伝えたり確認したりする際に用いられます。”

引用:https://go.chatwork.com/ja/column/efficient/efficient-439.html

みこみこ
せめてシステム開発の中身の勉強や自主学習をした上での基礎的な知識があれば、もしかしたら・恐らく・推測では、とか仮定の話ができるかもしれないですけど、それすら無い時は家でプログラミング学習するとか。
太田フランクリン
それも立派な勉強です。
開発経験が無いと具体的な作業指示や報告ができず、プロジェクトのお荷物と言っても過言ではないです。

開発工程未経験のPMOは、メンバーに具体的な作業指示ができず、クライアントに具体的な報告ができません。

  • 仕様の伝達が不明確なため、エンジニアがクライアントの要望に適する仕様を自力で検討しなければならなくなり、PMOの意義が薄れます。
  • クライアントに対するプロジェクトの進捗の説明も不明確になってしまい、クライアントからは信頼されず、メンバーからは報告義務を果たせない人物として不満を抱かれてしまいます。

クライアントからの信頼も得られなくなる

太田フランクリン
3つ目、開発工程の経験が無いとクライアントからの信頼を得られないんです。
クライアントとの打ち合わせで求められるのは、技術的な背景を踏まえた提案です。
コンサルタントの領域と被りますが、クライアントの要望に的確に答えるには開発工程の経験が無いと難しいです。

具体的にどういう問題があるかというと、不適切な提案をしてしまいます。
僕の知り合いの現場であったんですけど、クライアントが既存のCRMを活用して新しいマーケティング機能を追加したいとのことでした。
PMOに開発経験が無くて、システムの調整やインフラの制約とかを無視して可能だと返事しちゃいました。
議事録に残ってやることになったんですけど、いざPMOが決めた方針で開発を進めてくと結果としてはシステム全体のアーキテクチャの見直しが必要でこんなことやると思ってなかったと。
エンジニアからすごく反発が来て大規模なリファクタリングをしないといけなくなった、ということがあったらしいです。
結局プロジェクトの予算をさらに取ることで終わりはしましたが、クライアントからするとできると言ったのに何故できなかったのかということでPMOは信頼を失いました。
PMOはプロジェクトの顔なので信頼を失うとクライアントとの関係も悪化しました。

“CRM(Customer Relationship Management)とは、顧客の属性や接触履歴を記録・管理し、それぞれの顧客に応じたきめ細かい対応を行うことで長期的に良好な関係を築き、顧客満足度の向上や取引関係の継続に繋げる取り組み。また、そのために利用される情報システム(CRMシステム)。”

引用:https://e-words.jp/w/CRM.html

“リファクタリングとは、ソフトウェア開発において、プログラムの動作を保ったままソースコードを改善する作業のことです。ソフトウェアに新たな機能を追加する作業や、問題点を解決するバグ修正とは異なり、リファクタリングでは外から見た挙動は変わりません。ソフトウェアの機能はそのままで、プログラムの書き方をより分かりやすくすることが、リファクタリングの長所です。”

引用:https://www.hitachi-solutions-create.co.jp/column/core-system/refactoring.html

ジ:「この会社ダメじゃん」と。

太田フランクリン
そうならないためにも現場の状況を把握できる開発工程経験のあるPMOが求められるんです。
太田フランクリン
他にもクライアントへの説明が不足しがちなことがあります。
PMOが新しくクライアントに対してデータベースの説明をする必要があったんですね。
基本PMOはクライアントへの説明義務があります。

エンジニアが取りまとめてた方針をPMOがクライアントに説明する場面で、PMOが既存の設計の重要性を説明できないままお客さんに話しちゃったみたいで、クライアントは既存の設計のままでいいって判断してしまったことがあります。

本当はPMOが既存の設計を変えて新しくしないと開発が進んだ時にバグの温床になったり品質が下がったりする、ってちゃんと伝えないといけなかったんですけど上手く伝えられませんでした。
当然クライアントは納得しなくて、設計は変えず今の設計のままにしようという指示が出ました。

結果はテスト工程でたくさんバグが出てプロジェクトが遅延しちゃったんですけど、もしPMOがリスクを踏まえた説明をちゃんとできてれば結果は違ったかもしれません。
クライアントに理解してもらえるまでエンジニアの言葉を代弁するのもPMOに求められてると思います。

ジ:実際僕も開発エンジニアとして色々やってるんですが、僕らの実装したものをPMOの方がお客さんに正しく説明できなくて、UATまで進んだ時に想定してるものと違うって言われて、PMOはそれに回答できないまま開発陣にしわ寄せが来て結局全部直すってことが多々起こります。

“UAT(User Acceptance Test)は、システムやソフトウェアがユーザーのニーズを満たしているか確認する受け入れテストです。顧客がシステムの要件やビジネスプロセス・バグをリリース前に確認します。”

引用:https://qiita.com/HBLABJapan/items/b8d937c475a733fcbb04

開発工程未経験のPMOは技術的背景に基づいた提案を自分からはできません。

  • システムの調整やインフラの制約を考慮しないような、技術的に無理のある不適切な提案をしてしまいかねません。
  • クライアントに対してエンジニアの提案をうまく伝えられず、クライアントが提案を却下した結果プロジェクトの遅延を引き起こすような問題が発生した事例もあります。

こうしたことでクライアントから信頼されなくなる危険があります。

問題解決を即座にできない

太田フランクリン
問題解決も後手後手になっちゃうんですよ。

例えばクライアントから要望変更があった時、開発経験のあるPMOなら即座に技術的な影響を分析して対応策を提案できるんです。

具体的には打ち合わせの場でクライアントが新しい機能Aを追加するとどのぐらいコストがかかるかって聞いてきた場合、開発経験があれば機能AだけじゃなくてBやCにも影響あるとか工数は数十日規模になるとか分かるんですよ。
お客さんに素早く変更管理の判断お願いできるんですよね。

開発経験が無いと1回持ち帰らないといけないし、対応が遅れて影響が広がりかねません。
さらにエンジニアには見積もり作業もお願いしないといけないのでその間他の作業は止まっちゃって、プロジェクトにも支障が出る可能性があります。
クライアントからの印象も悪くなります。
窓口だと思ってたPMOが毎回話を持ち帰ってるとこのPMO話進められないのかと思われちゃうので、お客さんの要望に早いレスポンスで対応できることが開発行程の経験がある人の強みだと思います。

このように開発経験が無いとクライアントからの信頼も得にくくなっちゃいます

ジ:僕の経験した現場でも、バグ出たときにシステムがよく分かってないPMOが上手く回せなくて結局お客さんへの回答をエンジニアが一言一句考えて答える、ってことは珍しくないです。

プロジェクトを進めるうちに元の計画と異なる事態が起こった際に、開発行程未経験のPMOは対応が遅れてしまう危険があります。

  • クライアントに新しい機能を追加したいと言われた際には、プロジェクトの変更による技術的影響が及ぶ範囲や作業にかかる日数などを自分の経験から導き出せません。
  • クライアントからの問いかけがあるとPMOは毎回話を持ち返らざるを得なくなり、迅速な対応ができない相手としてクライアントに不信感を抱かれかねません。
  • 事態に対応できないPMOに代わって、作業にあたるはずのエンジニアがクライアントへ返答する危険もあります。

開発経験を積むにはどうすればいいのか?

実際にエンジニアの経験を積める案件に入る

太田フランクリン
開発工程の経験が無いとこうなるって話をしてきましたけど、どうやって開発工程の経験したらいいのかってところもお話したいと思います。
みこみこ
支援型のPMOでよくいるのが、*営業経験あった関わりでPMOになったけど開発やプロジェクトのことはよく分からないって方ですね。
それでも単価はどうにかしたいと…。
太田フランクリン
まず、エンジニアとしての経験を積める案件に入ることです。
例えばプログラミングを学んでも実際開発案件に参加することでプロジェクトの流れや具体的な技術的背景も理解できます。

とはいえいきなり本格的な実装とか設計をするのは難しいので、最初は簡単なテスト案件とか運用監視とか未経験でも入りやすい開発系の案件から入ってって少しずつ上流に上ってくのがいいと思います。

みこみこ
それって正直単価下がっちゃうんじゃないでしょうか?
太田フランクリン
いい質問ですね、それはもう乗り越えるべき壁だと思います。
未経験の分野の知見を得るためには単価的には目を瞑る必要がある場合が多いです。
支援型で月40~50万の人がエンジニアとして入る場合は月30~40万くらいからスタートすると思います。
未経験のエンジニアが最初に案件に入るとそのぐらいの相場です。
みこみこ
勉強できる代わりに単価は低いですって案件もありますよね、そういうところがいいってことですね。

未経験者が開発行程を経験する方法には、実際にエンジニアとして参加できる案件に入ることが挙げられます。

  • 開発案件に参加することで、プロジェクトの進め方や技術的背景を学べます。
  • 未経験者として比較的入りやすい案件から始めると無理なく経験を積んでいけます。
  • PMOが開発案件に参加する場合、単価はしばらく下がるものの、PMOとしての業務や単価に直結する知見を新しく得られます。

開発工程のPMOの案件に入る

太田フランクリン
二つ目の案ですが、開発工程のPMOの案件に入ることです。逆転の発想ですね。
経験が無いから経験できるところに入るっていう。

ただし、キャッチアップはめちゃくちゃ大変になっちゃいます。
できないことをやるので、そもそも採用される確率もすごく低いです。
たとえ入れても常に勉強しないといけないぐらいキャッチアップが大変だっていう前提付きです。

“キャッチ‐アップ【catch-up】 の解説
[名](スル)追いつくこと。遅れを取り戻そうとすること。”

引用:https://dictionary.goo.ne.jp/word/%E3%82%AD%E3%83%A3%E3%83%83%E3%83%81%E3%82%A2%E3%83%83%E3%83%97/
(goo辞書内のデジタル大辞泉の項目より抜粋)

みこみこ
これだと単価的にはどうなんですか?
太田フランクリン
上がることは無いと思います。
例えば議事録しか書いたことのない人がいきなり開発行程のPMOに入る場合、お客さんからするとそんな人にお金払いたくないですよね。
お試しで入ってみる場合は単価が据え置きになることが多いです。

キャッチアップ前提なので、自主学習としてシステム開発の本をたくさん読んだり、案件資料をちゃんと読んだり、不明点をプロジェクトメンバーやエンジニアに聞きに行ったりするような能動的な動きが取れないといけません。

みこみこ
純粋に考えたらエンジニアの経験が積める案件に行くのが良いですね。
単価が下がるのは嫌ですけど…。
太田フランクリン
もちろん嫌だとは思いますけど、僕の周りでも未経験からエンジニアになる方多かったんですよ。
例えば公務員からエンジニアになった方、今はフリーランスのエンジニアとして月90万の案件に入れてるんですけど、未経験からエンジニアになった時に給料かなり下がったらしいです。

このように何か未経験の領域で能力を身に付けようと舵を切った場合、単価とか給料の点では下がることが多いです。
でも数年後、もしかしたら1~2年後ぐらいには、元の給料かそれより多めに貰えるような成長曲線が描けることはよくあります。

“成長曲線とは、努力量やかかった時間に対してどれだけの成長を達成したかを表す曲線のことです。横軸に努力量(浪費時間等)をとり、縦軸に成果・収入を取ります。”

引用:https://staff.persol-xtech.co.jp/corporate/security/article.html?id=152

みこみこ
1~2年の単価は下がっても10~20年のキャリアプランとしては高くなるんですね。
太田フランクリン
そうですね、長期的な目で考えてほしいです。
みこみこ
例えばテスト案件入ってみて、月30万だったら全然貰えてないって感じるかもしれませんけど、テスト工程とか色々分かってきて単価が上がって開発工程のPMOになったら月80万になるんですね。
1年間で言ったら1000万近くの年収になるんですね!
1000万を10年貰ったら1億円
でも支援型PMOなら月40~50万で年間500万、10年で5000万。5000万も乖離がありますね。
太田フランクリン
半分ぐらい違いますね、最初下がるのはしょうがないです。
勉強期間は単価を下げる必要があります。

ジ:僕も1回目転職した時はジョブチェンジするぐらいの気持ちだったので、結果的に収入は変わんなかったですけどほぼ下がると思ってもらっていいと思います。
僕はそれなりに努力してきたからその結果が得られたので、誰しもがそうなるとは思わない方がいいんじゃないかと。

太田フランクリン
開発工程を理解したPMOは現場にとって非常に重要な存在になるんですよ、結果として*高単価の仕事を獲得できます。

これも知人の話ですが、他業界の営業からPMOのフリーランスに転身したんですよ。
営業時代は会社でNo.1も取ったことあるらしくてインセンティブもあって月収50万超えてたみたいです。
サラリーマンで50万とか結構すごい、年収600万ぐらいですよね。それも新人~2年目とか。

その時の強み、お客様との折衝の腕を活かしてフリーランスのPMOになったんですよ。
でもなったはいいけど案件探してても中々オファーが無いんです。
PMOは狭き門なので未経験かつ開発経験無しだと難しいところがあります。
特にその方の条件で厳しかったのは単価60万以上で探してたことですね、気持ちは分かりますけど。

未経験のPMOで60万は厳しいってことで、その方は&単価を下げてでも開発工程の案件に入ることがマスト&だと気づいたんですよ。それで一旦単価を40万まで下げて開発工程のPMOとして入りました。
そこでその方はPMOとしてのタスクだけでなくエンジニアと一緒に開発もしたらしいんです。
いわゆるプレイングマネージャーとしてプログラミングのキャッチアップとか求められてる以上の稼働をしたから相当負荷がかかったとは思います。

その結果クライアントの方からも技術的な背景を持つPMOとしてすごく高い評価を受けて、市場価値が向上して今では単価100万前後の案件に入れるようになったとのことです。
良いキャリアを歩んだパターンですね。

“インセンティブ(incentive)
1 やる気を起こさせるような刺激。動機付け。”

引用:https://kotobank.jp/word/%E3%81%84%E3%82%93%E3%81%9B%E3%82%93%E3%81%A6%E3%81%84%E3%81%B6-3207350
(コトバンク内のデジタル大辞泉の項目より抜粋)

開発工程未経験者が開発工程を理解するPMOになる方法として、開発工程のPMOの案件にそのまま入ることも考えられます。

ただし、

  • 案件に採用される確率は低くなります。
  • 単価が上がることはまずなく、多くの場合下がります。
  • PMOとしての業務と並行して、システム開発の自主学習や案件資料の熟読など激しいペースでのキャッチアップをこなさなければなりません。

人的投資の重要性

みこみこ
人的投資・スキルが全てなんですね。
株っていうのは上がったり下がったりするもので、よく分かってない人は上がった下がったって言って慌てがちですが、知識があればいずれ上がったり下がったりすることは分かるから、それを見据えて投資しないといけないんですね。

ある意味フリーランスは投資的な視点が要るので、目の前の単価が下がったことだけじゃなくて長期的なポートフォリオとして考える必要があるんですよね。

“ポートフォリオとは、経験やスキルが分かるよう、成果物をまとめたものを指します。ポートフォリオは、直訳すると「紙挟み」や「書類かばん」という意味です。”

引用:https://career.levtech.jp/guide/knowhow/article/31009/

太田フランクリン
そうですね、目先の単価に囚われちゃうと将来困るのは自分なのでそこは自分のキャリアプランよく考えた方がいいですね。
みこみこ
支援型PMOだと結構45~50歳までって書いてますけどもっと働きたいですよね。
太田フランクリン
50歳とか一番お金が要るじゃないですか、人によってはお子さんやお孫さんがいて、家の建て替えやローンの払い終わりとか、年金が不安とか。
その時に自分の仕事がなくなるのはキツいと思います。
みこみこ
そこでちょっと開発工程が分かるかどうかだけで自分の労働寿命が10~20年長くなるかって話ですね。
太田フランクリン
目先の1年間は開発工程に捧げるぐらいの気持ちでいた方がいいですね。

みこみこ
例えば月60万から40万に下げると、20万低いから年間240万減ります。3年間勉強したら720万。
でもこの後月100万になるとすると2年ぐらいで元取れますよね。
太田フランクリン
同じぐらいの期間上流の管理型PMOとして入れば十分勉強期間の分はペイできます

ジ:自己投資だと思った方がいいですね。

みこみこ
電気工事士の会社やられてる0ミリ社長さんとしては、電気工事士の資格も経験も無い人実際月60万で雇えますか?

0:いやー無理じゃないですか…?普通に考えて。
うちでは厳しいですって言うしかないです。

太田フランクリン
こんな感じで開発工程の経験が無かったら身に付けるだけでいいと思います。
方法はいっぱいあるじゃないですか、プログラミングスクールもいっぱいあるし、僕達みたいなエージェントもいっぱいいるんで、自分に合った開発工程の経験を身に付ければいいかなと思います。
みこみこ
目先の単価に囚われずに、人的投資・知識への投資だと思って頑張る必要性があると。分かりました。

開発工程の未経験者が開発工程の経験を積める案件に入るかどうか検討する際は、

  • 短期的な単価が下がっても、長期的に活かせる技術的知見の獲得を優先する大きな視野が大切です。
  • 1~3年など、ある程度まとまった期間は開発工程の案件に集中することが重要です。
太田フランクリン
今日は、開発工程の経験が無いPMO終わってますという辛辣なテーマでしたけど、何故開発工程の経験が無いと難しいのかってことを事例を交えてお話ししました。
みこみこ
最終的にはご自身の選択で決まります。
単価下がりたくないからPMOになりたいって人は開発工程やった方がいいし、目先の単価が気になる人は正直単価も中々上がらないし長いキャリアを築くのも難しくなってきます。
皆さん自身であるというとこで、そこのお手伝いを僕らはしてます。
太田フランクリン
そうなんです。
普段はPMOに向けた情報発信だけじゃなくて、エンジニア向けのITコンサルタントだけどフリーランスになってみたい、とか色んなITに関するご相談・ご支援を承っております!

本日の動画は以上です!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次