
正しく行うことと納期を守ることの間には微妙なバランスがあります。
私は8人の開発者チームを管理しています。チームがブロックされる1時間ごとに、8時間の開発時間が失われます。
同僚がデータベースを用意する作業を担当していました。2日間待った後、進捗を尋ねました。彼はデータインポートに問題があると言いました。データをスクリプト化したところ、ほぼ1ギガバイトになったのです。1ギガバイトはSubversionにチェックインするには少し大きすぎました。彼は代替手段を探していました。
さらに1日が過ぎました。進捗を尋ねると、ほぼ完了していると言いました。よし、3日経過、192時間の開発時間が失われました。私は開始したくてうずうずしていました。チームの時間が無駄になっていました。
4日目、ついに準備ができました!彼はデータベースプロジェクトとインポート用データベーススクリプトを送ってくれました。PowerShellとBCPを使ってデータをインポートする仕組みでした。詳細な手順書と共にチームに送りました。
チームは私より12時間先のインドにいます。フィードバックループは12時間です。何かを開始するのに24時間かかります。
マーフィーの法則にあるように:「うまくいかない可能性のあることは、必ずうまくいかなくなる」。チームがデータインポートスクリプトを実行すると、失敗に見舞われました。PowerShellスクリプトが失敗し、セキュリティの問題でデータのインポートができませんでした。
5日遅れです。320時間が失われました。締切が迫っており、開始する必要がありました。
この時点で、チーム用にデータベースを稼働させる必要がありました。私のマシンでデータベースをデタッチし、zipで圧縮してチームに送りました。どの開発者もデータベースの再アタッチ方法を知っています。データベースを受け取ってから1時間以内に、8人の開発者全員が機能するデータベースを手に入れました。成功です!
賢いプロセスを作ることは良いことですが、時には単に仕事を完了させることの方が、賢いやり方よりも重要なのです。
著者:Chuck Conwayはソフトウェアエンジニアリングと生成AIを専門としています。ソーシャルメディアで彼とつながりましょう:X (@chuckconway) または YouTube をご覧ください。