InfoQ ホームページ Software_Craftsmanship に関するすべてのコンテンツ
-
コーディングの規約とガイドラインで得られた学び
コーディングの規約とガイドラインに従うことでコードの一貫性が向上するが、運用を誤ると残念な結果につながることがある。 Arne Mertz氏は、規約やガイドラインの採用範囲をソフトウェア開発者で選択し、逸脱箇所を明確に文書化しておくことを提案している。こうすることで、開発者同士がコミュニティや日々の仕事の中でエクスペリアンスを議論でき、不必要で煩雑な書類作業に煩わされることなく、コラボレーションの促進やコード品質の向上を目指すことができる。
-
自動テスト結果の分析における人工知能の活用
自動テスト結果の分析は、テスト活動において非常に重要かつ困難な部分である。任意の時点で、自動テストの結果に従って製品の状態を伝えることができなければならない、とMaroš Kutschy氏はQA Challenge Acceptedで述べた。彼は、人工知能が分析に費やす時間を節約し、人的ミスを減らし、新たな障害に集中するのに役立っていることを紹介した。
-
ソフトウェアテスト自動化におけるAIの役割を探索する
Victor Ionascu氏によると、ソフトウェアテストの複雑さの増大に対応するため、QAプロフェッショナルがAIを活用する傾向が高まっている。AI駆動型自動化はテストカバレッジの向上、テストサイクルタイムの短縮、結果精度の向上を可能とし、より高品質なソフトウェアをより速くリリースできるようにする。
-
時代に左右されないテストツールを使う意義
Benjamin Bischoff氏は、開発者にとって、新しいツールは古いツールよりずっと興味深いという。新たなテクノロジーやアプローチが学べ、仕事道具の幅が広がる機会が得られるからだそうだ。しかし、何十年も前からあるツールを使えば、時間と予算を節約できる。ツールを評価する際には、ツールにいきなり飛びつくよりも、解決すべき問題を理解することが重要である。
-
QCon London:Meta社、モノリシック・アーキテクチャを用いわずか5ヶ月でThreadsをリリース
Zahan Malkani氏はQCon London2024で、Meta社の道のりについて、すなわち市場で機会を見出し、わずか5ヶ月後にThreadsアプリケーションをリリースするまでについて語った。同社は、Instagramの既存のモノリシックなアーキテクチャを活用し、記録的な速さで新しいテキストファーストのマイクロブログサービスを作成するために迅速に反復した。
-
ソフトウェアチームにおけるテストの影響
テスターがソフトウェアチームに貢献する方法として、品質ギャップを伝えること、良いテストのために場を整えること、自動化コードを書くことが挙げられる。Maaret Pyhäjärvi氏によれば、私たちはテスターではなく、テスト自体について考える必要があるという。チームメンバー間のコラボレーションやコミュニケーションは、製品やユーザー体験に有益な影響をもたらす。
-
技術的負債を防ぎ、返済する方法:チームと技術リーダー、マネージャーができること
技術リーダー、プロジェクトマネージャー、管理職は、ソフトウェア開発者に多くの時間を与えることで技術的負債を防ぐことができる。さらに、チームがコードを改善できるように、余剰時間やリファクタリングスプリントを計画することができるとNedelcho Nikolov氏は主張する。技術的負債に優先順位をつけるために、開発チームは、今投資すればどれだけの時間を節約できるか、今技術的負債を返済しなければ将来ソフトウェアがどれだけ複雑になるかを示すことができる。
-
Booking.comがDORAメトリックスとマイクロ・フロントエンドを使用して配信パフォーマンスを倍増させる
Booking.comのフィンテック事業部のチームは、プラットフォームのバックエンドとフロントエンドにわたって一連の改善を実施し、DORAメトリクスで測定されるデリバリー・パフォーマンスを2倍にできた。さらに、マイクロフロントエンド(MFE)パターンを使用して、モノリシックなFEアプリケーションを複数の分解アプリに分割し、別々にデプロイできるようにした。
-
DevOpsのレンズを通してオープンソース統合をナビゲートする
オープンソースに対するDevOpsの視点を持つことは、OSSプロジェクトを環境に組み込むのに役立つ。DevOpsエンジニアは、サードパーティとの統合に抵抗がなく、異なるグループ間の壁を取り払い、チームワークを促進するというオープンソースの考え方に合致している。
-
安定性とユーザーフレンドリーを両立したUIを作るには
UI構築における重要な課題は、使いやすさと保守性、そして規模や複雑さのバランスを取ることだ。安定し、かつユーザーフレンドリーなUIを作るには、思慮深いコンポーネント設計と一般的な使用経路の理解が必要だ。自動化は、コードベースの効率と一貫性を改善する上で、画期的な変化となりうる。
-
SpotifyはいかにしてSpotify Homeための実験を大規模に実施しているか
SpotifyはSpotify Homeプラットフォームで年間250件以上のオンラインでの実験を実施しており、数十の異なるチームがそれを活用している。このような規模で実験を行うために、Spotifyは様々なツールを使用していると、SpotifyのプロダクトマネージャーであるNik Goyle氏は説明する。
-
ソフトウェア品質の評価方法
QPAM(Quality Practices Assessment Model)を用いて、チームの発揮する行動を「開始」「統合」「実践」「革新」といったを4つの次元に分類できる。QPAMはフィードバックループ、文化、コード品質と技術的負債、デプロイメントパイプラインといった社会的・技術的な品質側面を調査するのだ。
-
システムの品質を向上させるためにデータをどう活用するか
システムがどのように利用されているのかを知るためには、メトリクスを収集することで時系列に傾向を把握できる。得られたデータとインサイトは、ソフトウェア設計やテストパターンを改善することでシステムの品質向上に寄与するのである。Craig Risi氏は、Agile Testing Days2022で、システム品質向上のためのデータ活用について講演した。
-
ノルウェー最大の官僚機構がファストフローをどのように最適化したか
ファストフロー(業務・手続きの高速化)を最適化するために、ノルウェー労働福祉局はチームファーストのアプローチを採用している。パフォーマンスの高いチームには自律性が必要であり、方向性と団結も必要である。ソリューションは、チームの状況、能力、認知能力に基づいてチームが採用すべきである。
-
すべての質問には答えがある - 開発者にとって不可能とは
すべての質問には答がある、と我々は思いがちだ。しかしながら、現在時刻を知りたい時のように、必ずしもそれは真実ではない。開発者は、想定外の障害モードに対する認識を高め、障害の可能性を広く告知し、戻ることのない返答待ちからの復帰にタイムアウトを用いる必要がある。