久しぶりにSIerネタ。仕事の話です。
あえて抽象的な表現にしてます。
システム開発を行う際、いきなりプログラミングをするわけではなく、開発前にいろんな企画検討の仕事を行います。
とはいっても黙っててもお仕事が降ってくるわけではないので、お客様に予算を出してもらうために、
かつ自分たちが後で開発する時にどうすれば楽できるか等、いろんなステークホルダーの立場に立って検討する必要があるのです。
まぁ検討の方法はベタ。
かなりざっくりな話だけど、
5W1Hみたいなフレームワークにあてはめると、
- いつから(システム開発開始時期)
- 誰が(誰が作るか、どんな人が必要か)
- 何を(必要な機能)
- 何故(システム開発の目的)
- どこが(どのチームが作るか)
- どうやって(開発方法、フレームワークやツールなど)
みたいな項目を私は考えてます。
開発者目線での話ってあふれてそうだけど企画側の話はあまり見ないのでこの辺書いてみようと思う。
顧客目線で考えること
そもそも、システム開発が何のためにあるのかを考える必要があります。
まぁ突き詰めれば自分たちが給料もらって生活していくわけなんだけど、
給料もらうために会社の売り上げ立てないといけなくて、
売り上げ立てるためにはお客さんから開発費用等でお金もらう必要がある。
ここはサービス業も共通の考え方だと思うんだけど、
ってことがメインになる。
まぁでもお客様は神ではなく(と僕は思っている)、自分たちは奴隷ではないので、
間違っても
インスタみたいなアプリ100万で作りますよ!3ヵ月もあれば余裕です!
とは言わないし言えない。
実績欲しさにこういうこと言っちゃうとブラック労働の海に自ら飛び込む羽目になる。
当然ながら開発者目線でも考える必要がある。
仮に、インスタを100万円で3ヵ月で作るって契約をしてしまった場合、もし契約形態が請負だったら死ぬ。
(請負って何ぞって話は↓)
chococranky.hatenablog.com
死ななくても、もし作れなかった場合は成果物作成責任を果たせていないということになるので、訴訟モノです。
そんな契約取ってきた関係者の方々は社内からも白い目で見られる(くらいで済めばいいけど)し、信頼を失うことは必須。
なので当然開発者目線でも
- 技術的にできるかどうか(自分たちにとって未知、業界で導入事例の有無等)
- 誰ができるのか(スキルセットを満たす人間の手が空いているか)
- そもそも何を作ればよいかが明確になっているか、誰が決めることができるのか
- 他にリスクはないか
等を考える必要がある。
インスタみたいなアプリ作って欲しい!
え?機能?インスタと同じで!お金?よくわからないから10万円!
サーバーの要件?何決めればいいかわかりません!
とか言う顧客だったら付き合い方を考えなければならない。
(まだ上記の例だと分からないことを分からないと正直に答えてくれる分幾分かはマシだけど)
付き合っていくのであれば、
こういう人間に必要機能の検討とか、導入後のメリットが本当にできるのかってレベルから人間観察して、リスクとして織り込む必要がある。
織り込むって?予算に上乗せするんだよ。
ちなみに今後長い付き合いしていくつもりなら上乗せせずに戦略的投資と位置付けて1回泣きを見るってやり方もある。
結局は綱引き
まぁどうやればできるかだけ考えればいいというものではない。
考えることとしてほんの一例だけ挙げたけど、
- アサインする優秀な人にお子さんが生まれたので〇月から育休に入る、そのための引継ぎは~
- あの人〇〇できるって言ってはいるけど実績はない。本当にできるの?
- 開発を委託したいチームは課勤務状態でちょっと休ませてあげたい
とか労務管理的な話もあったりする。
いろんな方向から伸びる綱を引っ張って、すべてがちょうどいい長さに収まるラインを見極める
って感覚的なイメージで申し訳ないけどそんな考慮をしてるという表現が適切かも。
しかしながら、
- 自分の会社内の意見を取りまとめることすらできず、あろうことかそれらの調整まで開発側にブン投げて来たり
- 自分が分からないことを理解すらしようとせず、感覚的な判断のみしかできなかったり
- 明示的に残した文書すら無視してテスト段階になって「何か違う」と言いだしたり
と人間としての能力に疑問符を付けざるを得ないような方に遭遇したケースも過去にはあったりする。
(自分が遭遇した話と聞いた話混ぜてます)
そういう場合は自分は綱引きはしないか、綱引いて転んでも助かる方法を2つ以上くらい考える方向で検討を進める。
以上、リスクが多すぎて解決の目途が立たない場合は引くべしという話でした。