最短距離を目指す
書きたくなったので書く。ポエム。
システム開発の速度を上げたいなら、まずは最大瞬間風速をあげていく。どうしたら速くなりますか?ではなく、縮められる箇所を積極的に縮めにかかる。
順番も大事で、そもそもの前提から改善する。順当な部分を縮めるのには時間がかかる。
①道具を使いこなす
まずは道具を見直す。最も手っ取り早く、最も効果が高い。必要な金はかける。
PCが重いとかモニターが足りないとかマウスがないとか寒いとか乾燥してるとか、そんなことでもやもやしている暇はない。
②道具に触る時間を減らす
同じものを作るのに、キーボードやマウスを触っている時間は短ければ短いほど良い。
ので、タイピングは早い方がいいしショートカットキーは当然使うし必要な情報やツールは取り出しやすいようにしておく。
③先にやっておく
声がかかる前にスタートする。早く取り掛かれば取り掛かるほど調整が効く。少し余裕があるのなら、数日後に取り掛かる仕事をざっと見て先に要件を整理しておく。基本的には数日ほど前倒しでサイクルが回るようにスタートを調整する。
集中すべき作業に集中できるタイミングを作る。逆に集中できていないときに進めるタスクも用意しておく。「何やろうかな?」の時間を作らない。
そのためにも、同じ作業は二度やらなくて済むように整備しておく。やらなくていいことはやらずに済むように整備する。
④必要十分なものを思い描けるようになる
手を動かす前にまずは最短経路を組む。
新規機能ならまず根幹を作ってから細部を仕上げていく。バグの修正であれば再現→原因特定を最優先に取り掛かる。
細かいことに気を取られだすと開発は終わらない。ど真ん中の2割をまず仕上げることで進捗は8割になり、残り8割の細部は状況によっては減っていく。そのためにもど真ん中を外さないように確認する。
⑤思っていたものを作れるようになる
新規開発だろうとバグの修正だろうと、「こう書けばこう動くな」は一発で仕留めたい。
日々扱っているプロダクトであれば、ソースコードと機能の両面から仕様を理解する。一度見た仕様は、覚えるか引っ張り出せるようにしておく。
⑥手戻りを起こさない
作っている機能について一番詳しいのは、作っている最中のあなたである。翌日他人にバグを見つけてもらった時には数割忘れているので、思い出すことに時間を割かねばならなくなる。
なので、一番詳しいうちに十分に確認する。要件を満たしているか、バグがないか、記述は合理的か、パフォーマンスは十分か、脆弱性はないか、見た目は悪くないか、使い心地は及第点か、他の機能に影響を出さないか、など。一度で全ての観点を確認できればいいが、そうもいかないので必要な回数だけ確認する。
可能であれば十分な確認が終わったその場でリリースしてしまった方が良い。
⑦速くなったと言う
実際に速くなったら周りにその事実を伝える。きっと周りから褒められて自信がつき、ここまでのことをさらに大胆に行うことができ、より速くなる。開示による底上げ。術式と同じ。
以上ポエムでした
理想はこう。
そうもいかないときは、どこを縮められたかを案件ごとタームごとに考えて削っていく。
あと、下積みのターンと縮めにかかるターンは交互に必要なので、自分がいまどちらのターンかは考える。