開発するのは人かチームかロボットか? ~ セルフ開発マネジメント ~
初めましての方は初めまして。
そうでない方はお疲れ様です。
この記事はWMMC Advent Calendar 2022 16日目の記事です。
昨日はXFA-27君による「標準マウスのNucleo版を作ってみる」でした。
xfa273-backofchirashi.hatenablog.com
最初のステップって非常に難しいので障壁を下げるための標準マウス。数年に1度更新されていますが、時代は進むものですね。過去にカシメを100個生贄にし、メインボード・センサボードをそれぞれ3回ずつ作り直してた過去の自分に渡してあげたい。
でも、開発は早めにやりましょう。笑
さて、今回はロボット開発のマネジメントに関する個人的な考えを述べます。
個人としての開発をマイクロマウスで、チームとしての開発をRoboMasterを通して経験した上で、「自分をどうやってマネジメントするか」に着目した記事です。
個人競技にマネジメントが必要か? と思うでしょう。
大ありだ、と私は断言します。
マネジメントとはその提唱者とされるドラッカーに言わせれば
「組織に成果を上げさせるための道具・機能・機関」らしいです。
そして、私視点だと
「1人の人間は複数の欲求を包含する小さなチーム」と捉えています。
もちろん、適用できる考え方と適用できない考え方があるので、参考程度ですが。
比較的コントロールしやすい自分をマネジメントすることで、組織や人とのかかわり方が見えてくるでしょう。自分すら活かせない人が他人を活かすことなんてできないですし、ましてや安定して成果を出すなんて難しいでしょう。
ってなわけで、思想強めな記事をどーぞ。
以下、目次。
優先順位付きの目的・バランスの取れた目標を定める
ものづくりは沢山のトレードオフの連続です。
時間とコスト、性能と入手性、スピードと精度、人生と開発…挙げたらキリがない。
このトレードオフも様々で2択だったり、均衡点があったり、足し算、掛け算、伸ばし方に順序があったりもします。
お金や時間、社会情勢などで自分ではどうしようもない不条理な要素も孕みます。
このトレードオフの決断のために、優先順位付きの目的を定めましょう。
例えば、チームでのコンペの場合。
1. 「今年勝利すること」
2. 「継続して勝利できる組織であること」
3. 「競技の発展に貢献すること」
個人の場合。
1. 「自分を成長させること」
2.「競技を楽しむこと」
3. 「1人でも多く楽しんでもらうこと」
あくまで、一例ですが、イメージついたでしょうか?
この目的を果たすために目標を定めます。
ただし、目標は具体性を持つべきです。「?秒で走る」「大会でベスト4」「新機能を全て出し切る」「今シーズン自己ベストの更新」「新規参加者10人増やす」「1日1時間開発する」
などなど。
自分ができるかできないかギリギリの、バランスが取れた目標を設定しましょう。
これらを基準として、現環境と〆切を考慮して全ての判断を下します。
Q. 初めて使う材料でロボットを作るべきか?
A1 チーム
それで性能、耐久性が上がる見込みがあるなら時間と人、お金入れて開発。従来の設計と2通り設計する必要があるので、並行して開発。ただし、遅くても大会3ヶ月前にはリソースを集中するためにジャッジして、方針を決める。開発したら後続のためにドキュメント化して残すのが条件。
A2 個人
それで学べることがあるならやる。大方特性が見えてきて面白そうなら継続、ダメなら諦め。今年1年はこの方向を模索するつもりで進める。
なんて感じ。全ては目的と目標次第で判断は変わります。
目的と目標による判断と自分の直感や感情が矛盾していたら、目的と目標を見直しましょう。自分の中にある真なる目的・目標を適切に言語化できていない可能性が高いです。
ビジョンに向けて「組織」の成長を促す
目標が定まったら、目標までのプロセスを構想する段階です。目標に向けたステップや進め方を考え実行することで、現在の「組織」の弱みや課題を明文化・リストアップすると共に強化していきます。これを小目標の設定と捉えることもできます。
ただ、これを考えるためには経験なり知識なりが必要になってきます。始めたばかりの頃は足りない事ばかり、かつ全体の成長プロセスにおける現在位置が見えないものです。故に、これを考えるのはしんどいです。マイクロマウスでは、そのロールモデルとして、先輩や先の位置にいる同期、時には後輩を知れる機会があります。自分の立ち位置に「パッと見たとき」近そうな人は益々貴重です。ただ、毎度毎度そんなに都合よく人がいるとも限らないですよね。
なので、初めの頃は考えに詰まったらやるべきことは簡単です。
とにかく手を動かして目の前にある課題を潰しましょう。
ただし、頭の中では「組織」の成長プロセスや全体における現在位置を探し続けるようにしましょう。そうしてあがいた経験ややり方、学んだ知識が助けてくれます。知らないなりに考え続けることこそが、考え方を強化し視野を広げ、成長につながります。手も頭も動かし続けるのが肝心です。
迷ってきたら、目的・目標(ビジョン)に照らし合わせて考えてみるのがいいです。
自らを評価する
ただ進んでいるだけでは、不安もあります。良い方向に進んでいるのか、遅いのではないか、やっても意味がないことなんじゃないか。色々と考えます。
そこで必要なのは、「組織」を客観的に評価することです。
評価する、というのは反省するのと似ていますが悪いことを上げることだけではありません。良かった点や得られた教訓・学び、改善すべき特性や不具合などを含めて、「評価します」。これによって、「組織」の現状をアップデートし、再計画の礎となります。
本当の組織であれば、それぞれの観点を定量的な指標ではかるなどが妥当でしょうが、個人では自身の見識や広がった視野も考慮したらメンタル的にもよいのではと思います。
「自身の成長」を目的として捉えているのであれば、1週間前までは分かっていなかった事象や現象、不具合要因などを得られているだけでも十分な進捗です。例え、解決できなかったとしても様々な要因候補を知り、学び、試せていればそれを評価してもよいでしょう。
きっと何度でも自分の実力に打ちのめされる瞬間があるでしょう。
自分の小ささとちっぽけさとしょうもなさで、情けなくなって逃げたくなる瞬間も来るかもしれません。(少なくとも自分はそうでした)
ただ、たとえ向き合っても、逃げたとしても、「全て無駄だった」なんてことはありません。
その時間や経験を「無駄にする」かどうかは「今後の自分次第」です。
自分の進んだ道を自分で肯定してください。
強みを自覚する
いわゆる「組織」を肯定するのもまた難しい。これは日本人的特性なのかもしれませんが、どうしてもウィークポイントとかダメだったところに目が行きがちなんですよね。どうしても自分の長所とか、他人より適性がある部分は気付かないものです。
私の持論ですが、「人の強みはその人の当たり前に根付く」。
人より努力しがち、面倒くさく思いがち、整理してしまいがち、気付いてしまいがち。それは他人との比較や他人からの評価によってようやく浮き彫りになるものです。
別に誰よりも癖の強い人間になれってわけではないです。
平均的な人よりもちょっとクセが高めな部分を「強み」として捉えるとよいです。
そしてそれをうまく利用して開発しましょう。
負けず嫌い、継続力、追い込み力、巻き込み力、集中力。。。etc
上を見れば見るほどキリがないですが、平均と比べれば意外とあるものですよ。
(中央値とか、平均の定義とかは曖昧でいいです…)
これは組織もそうです。組織の特徴や強みは、その組織の「当たり前」に詰まっています。もし、自分たちの組織を変えようと思ったら、「当たり前」を変えることです。ねじの1本を大事にする、根拠を大事にする、時間を守る、情報共有を徹底する... 並大抵の事ではありませんが、1人の行動から全て変わっていけます。
凡人が活躍できる「環境」を作る
そんなこんなで自己啓発みたいな文言が続いていますが、開発やなんやこんなで一番大事なのは「モチベーション」ですよね。
これはチーム運営などでも色々と難しい面ですが、人には人のモチベーションがあるとだけ言っておきましょう。
マネジメント視点では「モチベに頼らない仕組みを作る」又は「モチベを維持する環境を作る」のが大事です。人には人のモチベーションがあるため、天気で下がったり、サッカーの結果で下がったり、時間帯によって下がったりと様々です。(少なくとも私はこれらの要因でモチベなりテンションが滅茶苦茶左右されるタイプです)
だからこそ、私は
モチベがあるときには「環境に身を置く習慣付け」を行います。パソコンの前に座る、本を置いて目の前に座ってスマホをいじる、開発環境を開く、作業場にとりあえず行くなどです。何もしない日もありますし、動画とかスマホ触ってるうちにやり始める、もしくは雑談だけして終わる日も多かったです。
本当に只の凡人なので、そんな日もありますが、ふとTwitterで目に入ったり、話聞いてるうちにちょっとやる気になったりする場面もちょくちょくあります。そんな時に動き始められる環境に身を置いていると動き出しが早いです。環境を作らないと、やる気がちょっと出ても環境整えて使い果たしたりとかもあるので、スタートラインの上にはいつでも立ってる状態にしておく、それを習慣化する、ってのが1番やるべきことと捉えています。
「目的無く何となく場所に行く、何も用はないけどとりあえずCADを開く、IDEを開く」ことって個人の活動、趣味の活動としてはすごく大事だったんだなって思ってます。
最近はオンラインも広まって、目的が無いと出向かないし、家で作業することも増えて何となく社会に逆行している感覚もありますがね。
前から傾向はあったのですが、コロナ禍でオンラインが広まってからさらにギャップが広まっている風潮があります。
でも結局、周りからの影響を受ける人は多いと思うので、周囲の環境をどんな時でも予め動けるようにしていくのはモチベの維持とかにつながると思います。
無限のモチベと能力カンスト勢はそんなことしなくても活躍しちゃいますがね笑
余談ですが、マネジメントという視点から見ると、モチベに頼りきった開発は「脳筋による根性論」と大して変わらないです。仕事としてならシステマチックに仕組みづくりで解決したり、インセンティブを設定するべきだと思います。でも、趣味とか課外活動ですからね。根性論で何が悪い。
「仕事じゃねーんだぞ!遊びだぞ!?本気でやれよ!!!」
ってタモさんがブラブラする番組で仰ってました。
はい、私も脳筋より思考です。
改善し続ける
最後は、改善し続けることです。
完成されたシステム、人、組織は存在しません技術は日進月歩であるし、環境は刻々と変わり続けます。時が過ぎれば良かったものは悪くなり、悪かったものが良くなっていくなんてこともあり得ます。最適解なんて存在しないことは誰しもが気付いていることでしょう。
それでも、エンジニアは問題を解決しなければなりません。どんな状況でも前に進む「組織」を、本番で動くロボットを、逆境でも手を動かし続けられる「人」を、「開発」し続けることが大事です。
「その環境、その時刻、その瞬間の最適解を常に求め続ける、これがエンジニアリングだ」
少し前に知り合いのロボコニストが言っていたセリフですが、この通りだと思います。
目指すべき目的を明確にし、現状の課題を見つけ、比較し、そのギャップに苦しみ、ギャップを埋めるために全力を尽くして手を動かし続ける。
これはどんな事でも当てはまる手法でしょう。
ぜひ、自分をマネジメントして行く過程で、成長と苦難と達成感の世界を楽しんでもらえればと思います。超えるべきは常に昨日の自分です。
以上、持論展開でした。
明日は若菜君による「何か書いてみたいです!」です。
行動、挑戦、素晴らしいことです。思いっきり楽しんでください。
それでは、また。