何も決まっていない何かを作るのに没頭し続けるということ
ここ最近、10年ぶりに味わう感覚にちょっとテンション高めです。
先月、色々な役割を引き剥がされた話の中で少し書いたんですが、今月は今後作っていくモノのプロトタイピングをやらせてもらっています。まだ道半ば、これから試せる形に着地させて、そこから試してもらいつつ方向性を見出そう、という段階です。そんな中で、色んな気づきがあったので、今回はそんな話を書きます。
プロトタイピングに求めるもの
そもそもの話、何のために自分自身が手を動かしてプロトタイピングをしているのか。それは、頭の中にしかない「こうあってほしい」と思う体験を可能な限り人に伝わる形で表現するためです。開発チームにいいプロダクトを作ってもらうためには明確な要求が必要です。要求を言語化する手法が色々ある中で、自分にとって一番やりやすい・しっくりくる手段が、プロトタイピングを通じて探索的に理想型を見出していくことでした。
経験上、特に具体的な体験について検討する場合、実際に作りながら得た知識や体験に大きな発見が含まれていることが多くあります。それらによって、事前には全然想像できなかった新しい体験が考えられるようになり、その時点で改めて自分の中にある抽象的でぼんやりとした「こんなものがほしい」に重ね合わせることで、それならこういう体験はどうだろうという新しい発想を得ることができます。
実際にやったこと
ここ最近で実際に何をやっていたのかを振り返ってみると、月初から細々と既存の技術や実装の調査を始めて、月中の3月14日から本格的に動き始め、その後ミーティングや割り込みのない時間はほとんど作業に割きました。なんとなく下調べしていたおかげもあり、環境構築や技術調査なども含めて大体1週間ほどで最初の動くものができました。この時点では、画面はテキストとボタンだけの適当な状態、求める結果も精度に問題があって、機能的にも不十分というまだ実用性ゼロの状態です。しかし要素技術と「できそうなこと」と「できなさそうなこと」はクリアになりました。
次の1週間では、一旦仮置きで最低限のジャーニーを整え、いざ試して、体験は受容できるが精度に課題を感じ、精度を上げるための追求を試みるも、完全な精度が構造上出せないという壁が見え、一旦原点に立ち戻ってコアの価値を見直して方針を考え直す、というような動きをして現在に至ります。これから多少修正を加えつつ、来週前半あたりを目途に一旦着地させる見込みです。
達成条件が分からない中での試行錯誤
このプロトタイプの開発に着手する前段階で用意したのは、作りたいものについてざっくりとしたCore/Why/Whatと、「見た目はワイヤーフレームレベル、動作はチーム内もしくはパイロット顧客に最低限の体験を提供できるレベル」という受け入れ基準ぐらいです。「何をどうしていくのか」「どうやって形作っていくか」といったことは計画せず、走りながら組み立てています。
具体的に手元でやっていることはAndroidアプリ開発です。本格的な開発から離れて6年という月日に自分でも驚きましたが、一通り経験はあるので何をすればいいかは大体分かっています。そこからあとは地図も用意せず、できるかどうかも分からないまま走り始めて、ひたすら試行錯誤を繰り返しています。
作業を進めている最中、ふと自分自身が時間を忘れて集中できていることに気がつきました。むしろ意識的にブレーキを掛けて止めない限りいつまでもやり続けてしまう状態です。何が作れればゴールなのかさえ分からない試行錯誤をひたすら何時間も続けている、という状況は、慣れ親しんだ感覚でした。朝起きて、PCを開いたら作業途中の開発環境が出てきて、そのままコードに手を入れ始めて、気がついたら夜……という程まではいかないものの、それに近い状況になりかけていて、危ない危ないとブレーキを掛ける状況でした。
こんなに連日没頭できるような状況は、振り返るとこの10年ぐらいなかったかもしれないです。サイドプロジェクトで数時間や1日程度はあったものの、週単位で続く状況はおそらくDeployGate初期の開発以来です。多くの時間は上手くいかずに試行錯誤している暗中模索に近い状況が続いていますが、それが楽しい自分は多分こういう活動に向いているんだと思います。
変化のキャッチアップ
その一方、かつて慣れ親しんでいたというこの状況も、続ける中で以前と異なる部分がいくつかあることに気付いてきます。
まず技術や環境が大きく変わっています。速さだけに重きを置くなら旧来の慣れた道具のみを使えば良い話ですが、現代における技術の検証という側面があるので変化もキャッチアップする必要があります。
Androidアプリ開発もメインの言語そのものがJavaからKotlinに変わり、画面を作るフレームワークも旧来のXMLからJetpack Composeによる宣言的UIとViewModelの組み合わせがメインストリームになり、パラダイムシフトが起きています。ビルドスクリプトもGroovyからKotlin Scriptに変わり、バージョンカタログも外部化されるようになりました。その他パーミッションモデルのようなフレームワーク側の変更、利用ライブラリのトレンドまで含めると細かい差が無数にあります。
とはいえ、これらは差分が明確で、世の中に情報がたくさんあり、根本にある原理原則を把握していれば多くをカバーできるので、キャッチアップ自体はそこまで難しくありません。
開発に集中するための身体づくりが必要
一方で、まだキャッチアップできていない、というか、できるのかどうか分からないと感じている変化があります。それは、プロトタイピングをする自分自身の体に起きている変化です。ここまでいい話をしてきましたが、ここからは、なんというか夢のない話をします。
本格的に作業を始めて数日、こちらも数年ぶりとなる目の疲れや首回りの疲労感がやってきました。大変残念な話ながら、これらもかつてとても慣れ親しんだ感覚があるものです。ここ数年、開発は行わないながらも毎日デスクワークをしています。しかし、以前開発に集中していた時とは頭や体の使い方が大きく変わっていたようです。
集中的な開発を数日続け、水曜日(弊社はお休みです)に初めて行ったカフェで数時間安定しない姿勢で作業したのが引き金となり、だいぶ辛さが出てしまい、それが1週間ほど尾を引きました。現役を離れて数年経つアスリートが突然大会に出たらそりゃ体も調子を崩します。助走期間もなく全力疾走はマズかったなと反省しました。
この回復力の低下は年齢の影響も大きく受けているはずです。英語のコーチにこの話をしたところ、先月40になった身体をもっと気遣ってあげようねと突っ込まれました。返す言葉もございません。
ということで、コンスタントにパフォーマンスを出し続けるためにはコンディショニングにより重点を置く必要があるなと感じました。そのバランスにも技術にもキャッチアップが必要です。ルーティンの変化は小さく始める原則に従い、手始めに直近はお風呂上がりの肩甲骨周りのストレッチを取り入れ、今のところ6日連続で続けています。定着したら一つ一つ足していこうと思っています。
今後の展望
ということで、10年ぶりに発揮する集中力によって思いもよらない気づきがありましたという話でした。みんな、準備運動や慣らし運転は大事だぞ。
この短期的な計画に向けたプロトタイピングとは対象にある長期の計画も引き続きPMにリードを持ってもらって進めています。途中こんなアンケートをお願いさせてもらいまいした。ご協力いただいた皆様ありがとうございました。
そういえば、作ろうとしたものの中で既存のライブラリに足りない機能を使う必要が出てきて、一番手軽なのは実装してしまうことだったので、作ってしまって本家にコントリビュートする、ということも久々にやれました。実装後の検証の結果、プロトタイプとしては全然違う部分に課題があることが分かって結局この実装は無駄になってしまいましたが、自分以外の誰かが使ってくれるだろうし、まあ世界を良くすることに貢献したなと思うことができます。
プロトタイピング自体のイテレーションのスパンは、もうすこし短くできそう。技術調査や知識のアップデートも含めた道のりなので現段階ではまだ効率が低い感触です。今後繰り返していく中でスムーズになっていくといいな。
今月はそんな感じでした。
日々画面に向かって開発に集中するソフトウェアエンジニア向けのボディケアやコンディショニングに関する最新の知見をお持ちの方はお寄せ頂けると助かります!キャッチアップしたいです!よろしくお願いします!!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?