ソフトウェア開発とは
ソフトウェア開発とは、ソフトウェア成果物の設計、ドキュメンテーション、プログラミング、テストおよび継続的な保守を意味します。このようなステップの組み合わせを利用して、高品質なソフトウェア成果物を作成するための一連の手順である、ワークフローのパイプラインを作成します。 このパイプラインは、ソフトウェア開発のライフサイクルと呼ばれます。
微妙な違いはたくさんありますが、一般的にソフトウェア開発のライフサイクルには、以下のような共通要素があります。
ソフトウェア開発ライフサイクルの各ステップ
発見
プロジェクトを構想、設計し、優先順位を決めます。アジャイルのような方法論は、プロジェクトの作業プロセスの指針となります。DevOps のようなプラクティスは、開発および運用時の実践をガイドします。Confluence は、この段階で製品調査ドキュメントを作成して設計ファイルを共有するうえで最適なツールです。
計画
関係者を特定し、予算を決め、インフラストラクチャを調達します。コンセプト フェーズの設計ドキュメントを、実行可能なタスクに分割します。Jira Software と Trello でこれらのタスクのリストを管理、追跡、整理します。
ビルドとテスト
開発チームが、要件とフィードバックを満たした、本番環境で利用できるソフトウェアを構築します。CI/CD パイプラインにより、開発者は効率的に作業できます。Bitbucket はコード レビュー プロセスに組み込まれたコード レビューのコラボレーション ツールと CI/CD パイプラインを備えています。
デプロイ
コードが作成、テスト、マージされたら、いよいよリリースのときです。Bitbucket の CI/CD パイプラインでは、ボタンをワン クリックするのと同じくらい簡単にデプロイを実行できます。本番コードを配置する場所が必要になります。Amazon AWS、Google Cloud Platform、または Microsoft Azure が提供するクラウド ホスティングの使用をご検討ください。
運用
アクティブなソフトウェア プロジェクトにはサポートと保守が必要です。Jira Service Management は、顧客のサポート リクエストを受付、選別、解決するための強力なツールを備えています。
観察
インシデント管理とは、開発と運用の各チームが計画外のイベントに対応して、インシデントの優先順位付けと迅速な解決に向けた確実な手法によってサービスを復旧させることです。
ソフトウェア開発ライフサイクル全体を通したプラクティス
継続的フィードバック
チームは各リリースを評価して、今後のリリースを改善するためのレポートを作成し、製品機能の価値と影響について顧客に意見を求め、ビジネス関連の成果を関係者と共有する必要があります。継続的にフィードバックを収集することで、チームはプロセスを改善し、顧客に対する価値を高めることができます。
セキュリティ
ソフトウェア アプリが複雑化して大規模になるにつれて、リリース サイクルの最後に「ボルトでつなぎ留められた」ような従来型の品質保証やセキュリティではソフトウェアを安全に保てなくなりました。それよりも、ソフトウェア コードのバグを最小限に抑えるために、テストはソフトウェア開発のライフサイクル全体を通じて含まれる必要があります。
効果的なソフトウェア開発の主な機能
ソフトウェア開発ツール
ソフトウェア開発ツールは、アジャイルや DevOps の実践における先導、コード管理、CI/CD による自動化の実現、インシデント対応、テストなど、ソフトウェア開発ライフサイクルのあらゆるステップで役に立ちます。
Jira Software
Jira は、アジャイル チームの利用実績 No.1 ソフトウェア開発ツールです。Jira Software はアジャイル チームが世界クラスのソフトウェアを確実に計画、追跡、出荷するためのプロジェクト管理ツールです。
Bitbucket
Bitbucket は、単なる Git コード管理ツールではありません。Bitbucket を使用すれば、プロジェクトの計画、コラボレーションによるコード開発、テスト、デプロイをすべて 1 つの場所で行うことができます。
コンパス
Compass は開発者エクスペリエンス プラットフォームであり、分散型アーキテクチャをナビゲートして、エンジニアリングの成果と、それらを利用して共同作業しているチームに関する繋がりのない情報を一元化し、検索できる場所に取り込む際に役立ちます。