#人生戦略実行マニュアル

悔いない人生への終活戦略立案と終活戦術実行

システム開発における戦略と戦術 1

今日の話し

  • システム開発のプロジェクトをどう攻略すべきかの考え方について整理する

目指す先は何なのか?

会社の方針、経営者の思想によって異なるが、営利企業であれば売上を出してコストを抑え多くの利益を生み出すことが一般的な目指すべきことだ。

ただし、利益を追求するにあたって、ブラック企業のようにメンバー(従業員)をないがしろにしていては長続きしない。

メンバーの意見に聞く耳を持たず、長時間拘束して、しっかりとした計画(戦略)も伴わないプロジェクトは、たとえ一時的に完遂しても、メンバーは疲弊し、システムは一部の正常系だけうまくうごいているハリボテ状態に陥って、地獄のメンテナンス(運用)がスタートする。

そんな状況に陥れば、売上は伸ばせたとしてもメンテナンスコストも増加していくため、利益は伸びない。

f:id:tkoyama1988:20210925082744p:plain

戦略と戦術の違い

戦略(せんりゃく、英: strategy)は、一般的には特定の目的を達成するために、長期的視野と複合思考で力や資源を総合的に運用する技術・応用科学である。 https://ja.wikipedia.org/wiki/%E6%88%A6%E7%95%A5

戦術(せんじゅつ、英: tactics)は、作戦・戦闘において任務達成のために部隊・物資を効果的に配置・移動して戦闘力を運用する術である。そこから派生して言葉としては競技や経済・経営、討論・交渉などの競争における戦い方をも意味するようになる。 https://ja.wikipedia.org/wiki/%E6%88%A6%E8%A1%93

戦略とは、全体を俯瞰して今あるリソースを使って如何にしてゴールへ辿り着くかを考えて方針を打ち立てことだ。

一方、戦術とは、各リソースが持つ能力を活かして、目の前のゴール(小さいゴール)を攻略する手段だ。

f:id:tkoyama1988:20210925084738p:plain

システム開発における戦術

システム開発において、戦術をどう組み上げるべきか私の考えを纏めてみる。

1.メンバーの能力を把握する

戦術はメンバーが持つ能力によって選択できるものが決まる。

  • Androidアプリで複雑な画面が作れるとか
  • 顧客に分かりやすい説明資料を作るのが得意とか
  • 要件から仕様・設計に落とし込むのが得意とか
  • 顧客へ製品の価値を伝えて交渉するのが得意とか
  • 先導を切って皆を引っ張っていくのが得意とか

プログラムを書くのが得意なエンジニアに営業を任せるという戦術を組み立てても、成果はスグには出せない。

戦略上必要であるのであれば成果に直結しない戦術を組むことは間違いではないが、戦略の意図を汲み取らずメンバーの能力も把握せずに闇雲に立てた戦術は結果が残らないことには注意が必要だ。

能力を把握する方法としては、把握することに長けた人員を配置するか、星取表形式のスキルマップを作ると良いだろう。

2. メンバーの能力を育成する

育成も立派な戦術だと思っている。

社内でひたすらプログラミングしているエンジニアにシステムを実際に使っている顧客と交流させることで、自分の作っているものがどのように役に立っているのかを学べることがある。

それを繰り返していくと、現場の課題感が理解でき、こういう作りにしたらより使いやすいのではないかという発想が生まれてくる。

一方で、営業を専門にしていた人がプログラミングを学ぶことで、販売しているシステムがどのように動いているかが理解できると、より顧客に寄り添った提案が出来るようになる。

外資系の会社だとコードが書ける営業さんがゴロゴロ居るので、20代のときに負けてられないと焦ったことを思い出した。

3. メンバーの士気を上げる

士気が高いか低いかでパフォーマンスは変わる。

士気の重要性についてはキングダムを読めば分かると思う。

楽しくない、やりたくないことを無理やりやらされて全然やる気が出ず、ズルズル時間を掛けてしまったということは誰しもが経験したことがあるだろう。

仕事とはそういうものだと決めつけたらそれまでだが、解決できる手段はいくつもある。

楽しくないとかやりたくないという気持ちになる気持ちの外的要因は様々だが、1例を挙げると「自分のやっていることが何の役に立つのか分からない」から楽しくないというケースがある。

その場合は、本人のタスクが達成すると「何が出来るようになって、それが誰に対して役に立って、どういう結果を生むのか」という情報を提供すると、自分のやっていることが誰かの役に立っていることに気づき、その人のために頑張ろうという気持ちが湧いてくる。

頑張り具合は本人と提供する情報次第ではある。役に立つ人と引き合わせることが出来れば尚良いだろう。

もう1例を挙げると、「定時の時間帯に眠気が襲ってきた」とか「身内の不幸の話しが入ってきて、仕事に手がつかない」という状態で無理してタスクを進めても成果は出しにくい。身内の不幸は短時間で解決するものではないが、数日療養して(精神を安定させて)仕事に集中出来る状態に戻せるなら、長期的な目線で考えると無理して仕事を続けさせるよりも休ませた方が生産性が上がる。

弊社は完全裁量労働制にして、本人が最大限パフォーマンスが出るタイミングで仕事をするようにしている。良し悪しもあるし、完全裁量労働制で全てが解決するわけではないので、より良い働き方を模索し続けている。

士気の上げ方は「人を動かす」を読むのが良いと思う。

4. 戦術を組み立てる

メンバーの能力を把握し士気を高めたら、戦略に照らし合わせながら戦術を組み立てていく。

難しく考えすぎる必要はない。最初はRPGロールプレイングゲーム)感覚で良い。

ドラクエで「ゾーマを最短で倒しに行く」という戦略目標があったとして、パーティの職業も分からないまま、いきなり魔王城に突っ込んだら、コストだけ掛かってリターン0だ。SNSに上げてバズって投げ銭もらえたらリターンはあるかもしれないが、結局戦略目標は達成できない。

ならば、パーティの職業やもっている呪文(能力)を把握すべきだ。そして、「ゾーマを最短で倒しに行く」という戦略目標へ繋げるために、適切なパーティを組み直して効率よくレベルを上げて、次の街への適切な経路を見つけ出し、実行に移すという戦術を組み立てていけば何れはゾーマを倒すことができるだろう。

システム開発では、メンバーの能力を把握した後、「利益数億円」「アクティブユーザ何万人」などの戦略目標へ繋げるため、安定したシステム基盤の構築や要望が高い機能実装、システムを使いやすくするUI、顧客への説明を用意していく戦術を組み立てていくことで戦略目標の達成を目指していく。

具体的な戦術の立て方は会社によって異なるので、近しい業態の会社から知恵を享受してもらうのが良いだろう。


だいぶ長文になってしまったので戦略についてはまたどこかで。