Programming注目のデベロップメントコードレビューをより効果的にする方法コードレビューは間違いなく品質向上と知識の共有に寄与する。この記事ではコードレビューで確認する幅広い項目を列挙し、パフォーマンスとセキュリティの二分野に関して詳細を掘り下げる。氏アジャイルを代表とする改善ベースでのシステム開発が主流となり、旧来型の重厚長大なアーキテクチャ設計は限界を向かえつつあります。本講演ではクラウドやマイクロサービスを前提としつつ、今どきのアーキテクチャ設計戦略がどうあるべきかについてお話しします。氏アジャイルを代表とする改善ベースでのシステム開発が主流となり、旧来型の重厚長大なアーキテクチャ設計は限界を向かえつつあります。本講演ではクラウドやマイクロサービスを前提としつつ、今どきのアーキテクチャ設計戦略がどうあるべきかについてお話しします。CollaborationテストUXScrumLean/Kanban注目のカルチャー&手法コードレビューをより効果的にする方法コードレビューは間違いなく品質向上と知識の共有に寄与する。この記事ではコードレビューで確認する幅広い項目を列挙し、パフォーマンスとセキュリティの二分野に関して詳細を掘り下げる。氏アジャイルを代表とする改善ベースでのシステム開発が主流となり、旧来型の重厚長大なアーキテクチャ設計は限界を向かえつつあります。本講演ではクラウドやマイクロサービスを前提としつつ、今どきのアーキテクチャ設計戦略がどうあるべきかについてお話しします。Bradford氏はテストがなく大きな技術的負債のあるモノリシックなJavaベースのシステムの保守に関する経験について語った。InfoQは、システムを保守する上での問題や作りこまれた技術的負債、なぜ別のアプローチをとったのか、どうやってチームのモラルを向上させたのかについて氏にインタビューした。私が当社に来たのは最近のことで、昨年の頭にエンジニアリングのVPとして採用されました。私の任務は、開発者がほぼ10年に渡って彼らを悩ませてきた過去の品質問題に取り組むのを手助けすることです。具体的にいうと、開発者はさらなる問題を引き起こすことなしにシステムを変更したりバグを修正したりすることが出来なかったのです。今のシステムはとても短い期間で、モノリシックな形で作られたものです。結果として、テストのカバレッジはほとんど全くありませんでした。それに加えてコードはぐちゃぐちゃで、重複や信じられないほど長いメソッドのせいで理解不能だったのです。保守は悪夢のようでした。問題を複雑にしたのは、これらをコントロールする取り組みがほとんど皆無だったことです。バグは、バグを作り出したチームに渡されるのではなく、それを修正する勤労学生に渡されていました。チームはずっと「はやくしろ」と急かされていて、勤労学生のためにバグを供給していたのです。元からいた技術リードたちとの会話の中で、彼らは、製品を2度根本から作り変え、そのたびに同じような結果になった、と話していました。そこで私は戦略面だけでなく価値観の面でもやり方を変えるよう勧めたのです。戦略面では、このモノリシックなJavaのシステムの保守においては負債をまったく返済しておらず、システムをレンガで囲ったり開発者がうんざりして辞めてしまったりしたために、結果的になにもリリースできなくなるまで、負債に溺れていたことが分かりました。価値観の面では、何年もかけて築き上げた熟達から彼ら開発者を解放し、未熟者として別のやり方で問題解決にあたってほしいと思っていました。簡単に言うと、やりませんでした。テスト自動化によってシステムをコントロールする取り組みがありました。私が入社する前に、手動のテストマトリクスを置き換えるためにSeleniumのテストスイートの作成を外注していました。システムの汚い部分をコントロールするためにユニットテストのカバレッジを増やそうともしていました。これらの取り組みはいずれも最終的な解決策とはなりませんでした。本当の解決策は抜本的にアーキテクチャをリファクタリング、すなわちモノリシックなサービスを分解して複数の独立したサービスにすることと、まったく異なるスタックにしていくことでした。私が来たとき既にチームのモラルはどん底でした。これ以上悪くなりようがなかったのです。開発者は意気消沈していて、ソフトウェアの変更を恐れていました。ソフトウェアエンジニアとして経験する感情の中で最悪なものの1つです。状況はよくなってきています。開発者は信頼され、自律的になってきており、過去の恐怖を克服し、創造性を探求できるようになってきています。同時に、以前よりもかなり高い品質でソフトウェアを作れるようになっています。大規模な技術的負債とその状況で不幸だった開発者、という問題を扱った経験から、提言をお願いします。技術的負債はコントロールできるし、早い段階からコントロールすべきです。「あとで技術的負債を解消しよう」という考えは製品側の人たちを幸せにするかもしれませんが、現実には「あとで」は「決してやらない」ことを意味します。モノリシックなシステムの内部アーキテクチャが効率的に技術的負債を返済するのにふさわしくないといった私たちが直面したような状況に気づいたら、その技術的負債を返済するよう主張し、短期的に作る機能を減らすことが、組織の長期的な失敗を避ける上で妥当かどうかを決断するよう主張してください。ほとんどの企業は事業の継続を望んでいます。プロのソフトウェア技術者として、私たちは自分たちの仕事の質に対する責任があります。外部の関係者は「はやくしろ」とか品質を妥協するようにプレッシャーをかけてくるかもしれませんが、私たちはそのような決断の影響に耐える唯一の存在ではありません。結局そのような決断は、組織が泣きを見ることになるのです。品質を主張すること、警告をあげること、「正しい」ことをするよう主張するのは私たちの仕事です。それは、例え上位組織がそうすることに対して長期的な価値を見いだせなくてもです。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。ニュースレターInfoQのコンテンツをフォローするには、ニュースレターを購読してください。あなた用にカスタマイズされたRSS随時アップされるコンテンツにメジャーアップデートに興味に合わせてカスタマイズするデベロップメント設計/アーキテクチャデータサイエンスカルチャー&手法DevOps表示するページとRSSフィードが設定されます。あなたにとって最適な情報にアクセスするために、興味に応じてセクションを選択してください。with.プライバシーBTClose電子メールパスワードGooleアカウントでログインTwitterアカウントでログインFacebookアカウントでログインMictosoftアカウントでログインパスワードを忘れた場合InfoQアカウントのメールメールを送るログインに戻る再設定用のメールを再送する再送するログインに戻るユーザーネームを持っていませんか?登録するあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレスEメールを変更すると確認のメールが配信されます。現在の会社名をご入力ください。現在の組織規模をご入力ください。現在の国を設定してください。現在の都道府県に設定してください。notices?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。広告ブロッカーを使用されています。何かの理由で広告ブロッカーを使用されていることと存じますが、InfoQを今後も無料でお使いいただけるようにするために、広告の表示にご協力いただけますと幸いです。InfoQはあなたの許諾なしに第三者にあなたの情報を提供することはありません。広告は読者の皆さんに関連するもののみを表示いたします。広告表示可能なサイトとしてご登録いただけますと幸いです。