Usual Software Engineer

よくあるソフトウェアエンジニアのブログ

ぼくのかんがえたさいきょうのえんじにあそしき

最近、エンジニアにとって最高の企業とはどんなものなのか、もんもんと考えている。 エンジニア歴4年のぺーぺーではあるが、今までの知見と知識と経験を寄せ集めて どういったエンジニア組織が良いのかまとめたみた。 これは将来起業を志す自分に対してのメモという意図が強いので ”ああ2015年のこの頃の俺はこういう企業が良いと思ってたんだなあ” という想いとして残しておく。

さいきょうのえんじにあそしきは、以下のことを満たす。

One digit team

タイトルのわりにエンジニア以外も含めたチームの話をしてしまうが、 何を作るにしてもだいたいが企画・デザイン・エンジニアが必要となり、 炎上しかけると何かに操られたかのようにチームの人数を増やそうとしてしまう。 two pizza team はあまりにも有名だが、現実ではそれに相反して 人数が増えて更に炎上するプロジェクトを皆さんはいくつ見てきただろうか。 こういった現実に対しての一つの対処法として とにかく1桁台のチーム人数とすること。なぜ1桁台かって? その理由は単純さと強制力とにある。 メンバーを増やしてもコミュニケーションコストが増加し 人数分の力は発揮されない上にスピードも落ちてクオリティも落ちることが 何年もの歴史で目に見えているわけだから、もうこれ以上繰り返すのはやめようよと。 そういった意味を込めて"1桁"を超えてはいけないチーム規模を推進しようというもの。 わかりやすく浸透しやすい1桁チームにし、10人を超えてしまったらこの世の終わりかのような 強制力によってチームの肥大化を食い止める原則だ。 どうしてもチームのリソースが足りなくなったなら、あきらめる?いや違う。
チームを分割し、サービスも分割して、 micro teams な micro services を目指そう。

スクラムスクラムマスター

僕はアジャイル開発は良いものだと思っている。 スクラムによって自己組織化が意識され、困難なソフトウェア開発に対し 一定期間を繰り返すという軸でプロダクトを積み重ねで創っていくスタイルは 個を重んじてチームを継続的に改善し最良のプロダクトを生み出すことにマッチしていると思う。 理想を語っているようにも見えるが、実際はその反対で とにかく現実と向き合ってそれにチームで立ち向かうためのフレームワークだ。 マネージメントが必要ないチーム形成をした場合でも スクラムマスターのようなチームを支えるポジションは必要なのかもしれないと思っている。 ただその場合気をつけるべきは管理をすることが仕事ではなく エンジニアリングでチームの力をパワーアップさせるプロフェッショナルな役割であるべきだ。 スクラム銀の弾丸ではないのはわかっているし プランニングポーカーやバーンダウンチャートなどを全てその通りに取り入られたことはないが それ以上にスクラムの自己組織化のエッセンスとスクラムマスターという役割は 今後のチーム開発でも非常に重要なものであり続けるはずだ。
いちチームに、いちスクラムマスター。

リモートワーク

リモートワークは依存を減らし生産性を上げる。 無駄な出勤時間はなくなり、自分が集中できる環境を自分でつくることができる。 大きな企業では、みんな一斉に集中タイムだと言って無理やり静かな環境をつくったり、 朝の出社時間がまちまちででも前日遅くまで働いていたから少し寛容にしてみたり、 それって本当にクリエイティブなんだっけ?というところを自問自答すべきである。 求められているのは頭脳労働で、エンジニアやデザイナーが 自分のタイミングでいかにゾーンに入って生産性やクオリティを上げられるかというのは プロダクトにとってもチームにとっても企業にとっても非常に重要なことである。 リモートワークだとコミュニケーションに問題があるというが 逆に情報を常に全員の手に届くところにおくという意識が生まれ ドキュメント化する文化も浸透しやすいのではないか。 それに最初はフルリモートじゃなくても週に1,2回ミーティングや振り返りのために 対面で集まれば路頭に迷うことも少ないと思う。 そんなに子守のように社員を監視しなければ うまくいかないような組織はそもそも間違っているのではないか。 どうしても対面じゃないとダメよダメダメと言うのなら 週に何度かチームで昼食や夕食を食べるのはどうだろうか? 信頼している人間と一緒に飯を食うというのは非常に有意義なことだし 酒酌み交わしながら未来の技術の話をするなんて、こんなに楽しいことはあるだろうか。 共に同じプロダクトを作っている、同じチームであるという認識さえあれば 作業する環境は各々が自身のやりやすいように整えてやる方が パフォーマンスは確実に上がると思う。
リモートでゾーンに入ろう。

マネージメントをなくす

みんな技術が好きで、モノづくりが好きだから たぶん本当はマネージメントなんてやりたくないと思う。 これはマネージメント業を否定しているわけではなく、それは必要に思えるし、 自分もやってみた上でマネージメントのおもしろさを実感した部分はあるのだが みんなやっぱり自分でモノをつくりたいのだ。だから、マネージメントがなくなればいい。 己のことは己でマネージメントができればよいのだ。 エンジニアは技術とプロダクトデザインと自己マネージメントが重要である。 スタンドプレーから生じるチームワーク、という言葉はとても良い。荒巻さんかっこ良すぎる。 攻殻機動隊には重要な組織論が散りばめられていると思ってひとまず映画2本観たが 感想は、おもしろかった。これはひどい。アニメ版も観なくては。 チームワークとは何なのか? 僕は、個は最大限にプロフェッショナルであれ、その上でいわゆる管理専属の人間のいらない フラットな組織にし、自らチームを体現していくことだと思う。 抽象的で理想に過ぎないかもしれないが 今後組織に属するという枠を超えて自分自身をマネージメントする力が必要になるはずだ。
ノン・マネージメント。

なんか前衛的なことを書こうと思っていたのに、 わりと「すでにそういう企業あるじゃん」みたいな内容になってしまった。
3年後はどう変わっているだろうか楽しみだ。