「金曜日に展開なし」と、さらに3つの暗黙の開発ルール

ある日古いものはすべて新しくなります。 経験豊富なプログラマでさえ同じレーキを踏むときが来ます。 規律のすべての「書かれていない規則」をリストアップすることは不可能です。それらの多くは規則ではないからです。 多くの場合、これは抽象的な真実と永遠の真実を言い換える方法です。



近藤マリーは、効率、清潔さ、美しさの普遍的な原則を家事の家事に適用することでキャリアを作りました。 多くの人が、周りで起こっていることの意味を本当に「理解」するために、永遠の知恵と日常生活の間に翻訳者を必要とするだけであることがわかります( 「Zenとオートバイのメンテナンスの技術」も参照)。 プログラミングでも同じことをしようとする試みを楽しんでいただけることを心から願っています。



1.金曜日の預金はありません



継続的な展開システムがある場合でも。 金曜日は、明らかな理由で、マスターを開始するのに最も不適切な日です。可能な妨害を修正するのに半日しか残っていません。 通常、更新後、特に新しい機能のリリース後、必然的に新しいエラーが発生した後、テクニカルサポートチケットの急増が観察されます。 金曜日の人々は眠く、不注意で、後まですべてを延期する傾向があります...あなたはそれがどのように起こるか知っています。



バグのために常に金曜日を選択する異世界の勢力から免れる人はいません! したがって、ベストプラクティスを順守し、確信がない場合は、業界のリーダーに注意を払ってください。 たとえば、Apple は火曜日リリースを行い 、Deploy:Mo​​ndayなどの重要なイベントの両側に最新のバグをテストしてキャッチするための十分な時間を残し、水曜日から金曜日に緊急の変更を行うために十分な時間を残します。 また、Appleの収益により、その展開モデルが血と汗で洗い流されていることに気付くでしょう。



2.定期的なバックアップ



定期的なバックアップの重要性を過大評価することは困難です。 業界全体は、抽象的なプログレッシブバックアップシステム上に構築されています。 もちろんGitについて話していますが、これだけでは十分ではありません。 データベース、暗号化キー、構成ファイル、VMイメージ、画像/ビデオ...インポートされたパッケージも、緊急時に常に利用できる場所に安全に保存する必要があります。 自動化システムがない場合は、少なくとも数人の従業員が定期的に作業フォルダーをアーカイブし、外部ドライブにコピーできるようにします。 はい、ほんの数個-冗長性は不要ではありません。



おそらく、10個のバックアップのうち9個は必要ありません。 しかし、ある日、今日のように、あなたは過去に戻り、誰も気付かなかったこの目立たないが完全に致命的な間違いをいつ行ったかを正確に知りたいと思うでしょう! そうすれば、バックアップに時間を取ってくれてうれしいでしょう。 または、新しい従業員が誤って100,000行のコードを削除したとき、あなたは知っています。 それは起こります。 私たちは人々をgrみませんが、間違いから学びます。 たとえ難しい場合でも、バックアップを作成してください!



3.開発を開始する前に完全な仕様を取得します



私はしばしば「早すぎる開始」症候群に苦しんでいます。 顧客との最初の会議で十分な質問をしなかったため、彼はコードの大きな断片を何度も書き直さなければなりませんでした。 私たちの脳は非常に小さく、特に精度が複雑で高価な場合は、精度が嫌いです(読む:クライアントが必要)。 彼は、彼が近くさえない類似点を見つけます。 これは特にプログラム設計に当てはまります。かなり複雑なアプリケーションでは、10個の同様のボタンがまったく異なるタスクを実行します。 コーディングを開始する前に、時間とクライアントの時間を最大限に活用したい場合は、これらの微妙な点を把握する必要があります。 私や私の脳のようにならないでください。 すべてを紙に描き、すべてがはっきりしていることを確認します。必要に応じて、システムを最初から再描画できます(十分な準備時間を考慮して、私たちはすべて人間です)。



誰もこのプロセスで完璧を達成することはありません。 私はまだ推測に頼りすぎています。 しかし、私が問題に気付いて以来、根拠のない仮定は少なくなっています。 それはコンピューターのように考えられるべきです:その論理において明確に、そして考えずに。 システム設計の概念では、国境の状況を研究し、「テスターの擁護者」になります。おそらく、あまり思慮のない設計で許されるエラーのクラス全体をすぐに排除する設計を見つけるでしょう。



4.重要でないナンセンスが表示される場合は、そう言います



手に負えなくなる前に、 非生産的な議論を静かに停止または防止するようにしてください。 私たちのオフィスでの時間は、私たちが毎晩無意識に過ごす3-8時間と同じくらい貴重です-つまり、それは非常に重要です! ビジネスの観点からは、1人の部屋/会議室などで時間給に20〜500人の開発者が掛け合わされるため、会議がより効果的に行われる必要があります。 時は金なり! そして、各コードベースの背後に隠された触手を持つモンスターの周りに知的トリックを発明し、残酷なバグとクラッシュで無邪気な期待を破るのを待つことで、このお金を解決します。



しかし、忘れられたコードカタコンベを震えているトーチと汗をかいた額で常に歩き回っているわけではありません。 時々私たちは会議に座ったり、正式な会議の外で緊張した何かについて話し合います。 Slackはチームの結束力を高めることで有名ですが、月額料金以外の費用はかかりますか? 私の経験では、Slackはあなたの脳の「意味のない時間」を劇的に増加させます。会社があなたに支払ったことをしようとするとき、別の一定のストリームの(しばしば不適切な)音のアラートを除外するのにかかる時間です; つまり、有用なコードを開発および修復します。 そして、人々は不必要に紛争に陥りやすい。



時間がかかりすぎる場合は、ディスカッションの終了をお願いしても構いません。 今日、子どもたちは「現在は現在を見ている」と言いたがっています。実際の仕事をし、顧客、ユーザー、そして世界を助けてくれる人たち。またはクロムメッキ。 「はい、あなたはコインを投げます、違いは何ですか...もっと深刻な問題があります。」 そして、あなたに注意を払う人々の多くは、リーダーシップからです。



この旅に参加してくれてありがとう。 私たちの前にこれらのヒントを最初に書いた人たちと同じ知恵を見ることができますように。 そして、あなたの経験上、他の暗黙のルールを学んだなら、それらを書いて私たちに知らせてください!



All Articles