今日のソフトウェア生産は20年前と同じではありません。ソフトウェアはますます複雑になり、文字通り世界中に分散したチームがあり、プロセスの特定の部分にのみ特化した人々に依存しています。また、UI / UXは、新しいユーザーを獲得し、現在のユーザーを維持するための競争が激化するにつれて、非常に重要な問題になっています。
機械学習アルゴリズムの作成方法
過去1年間、私は12のプロジェクトに取り組み、そのほとんどすべてが プロジェクト管理ツール (PMT)。今日は、特定の1つのツールの売り込みを紹介するのではなく、これらのツールが実際にどのように使用されているかについての開発者の視点からの内部ビューと、2つの代表的な概要を紹介します。ツール。うまくいけば、この記事が意思決定者と開発者が彼ら、彼らのチーム、そして彼らが取り組んでいるプロジェクトにとって最も便利なものを理解するのに役立つでしょう。
私が始めたとき、私のプロジェクトのほとんどはプロジェクト管理ツールに依存していなかったので、本当に必要かどうか尋ねられるかもしれません。開発者はそれらなしでソフトウェアを作成することはできませんか?答えは、それは複数の要因に依存するということです。そこで、それらのいくつかを分析しましょう。
ほとんどのプロジェクトで、私は世界中の人々のために働いていることに気づきます。それは本当に素晴らしいことですが、オフィスチームが直面しないさまざまな課題ももたらします。十分に熟練していないシステムの一部を同僚に修正または変更させようとすると、タイムゾーンが実際の問題になります。
週に1、2回以上他の開発者と話すことができないシナリオもあります。プロジェクト管理ツールは、チームメンバーがニーズをやり取りするための公式の(そして、実際的な理由で、時には唯一の)チャネルになるため、このようなコラボレーションプロセスを容易にするのに役立ちます。
もちろん、それは単に分散したチームの個々のメンバー間のコミュニケーションについてではありません。 PMTはまた、すべてのチームメンバーにより多くの情報と可視性を提供し、他のチームメンバーの進捗状況を追跡し、それに応じて活動を計画できるようにします。
電子メールや他の通信チャネルを介してコラボレーションするだけで同じ結果が得られると考えているかもしれません。私のクライアントは、私が数か月前に取り組んだプロジェクトでそれを行いましたが、それは悪夢でした。人々は通信に複数の電子メールを使用したため、異なるスレッドを追跡することは困難でした。また、1つの問題に関するコミュニケーションは、さまざまな電子メールの会話に存在するさまざまな部分に分割されたパズルになります。ほとんどの電子メールの会話は複数の問題に触れたため、残された作業を追跡することがますます困難になりました。
プロジェクト管理ツールは、問題ごとに1つの会話ストリームを用意することでこれを解決し、必要なもの(デザイン、API、フィードバック)をすべてワンクリックで見つけることができるため、作業が楽になります。プロジェクト管理ツールを使用すると、誰もがプロジェクトのすべてのセグメントとステージにアクセスして表示できるため、コラボレーションの観点から、これは大きな違いを生む可能性があり、継続的なコミュニケーションと更新の必要性が減少します。
プロジェクト管理ツールを使用しないチームが直面する最大の問題の1つは、ソフトウェアの本質的な性質が原因です。たぶん、あなたはスタートアップで働いていて、2、3回以上ピボットしたことがあります。たぶん、あなたがプロジェクトに取り組むにつれて、あなたの目標と要件は進化し続けます。
この文脈では、ソフトウェアを生き物と考える必要があります。最初の計画がどれほどうまく作成されたかに関係なく、それを変更する必要がある可能性は常にあります。ただし、これらの変更がすべてのチームメンバーに伝達されていない場合があります。経営幹部は、競合他社よりも有利になる新機能について話し合うことができますが、マネージャーがチームの他のメンバーにこれを表明しなければ、それは起こりません。
書き留めておかないと、マネージャーやCEOにも忘れられてしまうかもしれません。最新の公式要件がある場所がないと、多くの時間とお金を失うことになります。 PMTは、信頼できる唯一の情報源、つまりプロジェクトの期間中、すべての要件と情報が保存される単一の場所を提供します。これは、後で追加できる機能が追加されていないことだけではありません。機能全体を開発したのは、その機能がサポートされなくなったと言われなかったことを発見したためです。
最も薄いインクは、最も強力なメモリよりも信頼性があります。 –ことわざ
私たちは一度に頭の中でそんなに多くを扱うことができるだけです。上司と電話をし、会話中にさまざまな問題が発生すると、ある時点で何かが失われます。最も重要なポイントを自分で書き留めようとすることもできますが、それでも、何かが隙間から落ちる可能性があります。
コールで要件について話すのではなく、要件を書き留めておくことは、フロー内の潜在的な欠落要素をキャッチしたり、現時点でその問題の実装を妨げる可能性のあるものを検出したりするための良い方法です。ソフトウェア開発は直線的ではないため、今日から機能に取り組み始めるかもしれませんが、製品で取り組む緊急の何かがあり、数週間または数か月後に戻ってきて、正確に必要なものを忘れていることに気付くだけです。
そのため、要件を書き留めておくことで、覚えておく必要がないか、同じ機能について何度も話し合う必要がなくなるため、時間を節約できます。ソフトウェアはより複雑であるため、時間効率は非常に重要です。そのため、明確にする必要のある問題のみに焦点を当てることで、メモをとるだけで会議時間を半分以上に短縮できる場合があります。
これは、対処中の問題に関連するコミュニケーションを追跡し、それらのことについて話す必要なしに将来の要件の機能を追跡するという前の問題に関連しています。
これにより、開発者は、現時点で必要なものを作成することに集中し続け、次に何が起こるかを学ぶことができます。利便性と情報への簡単なアクセスだけではありません。追加されたレベルの可視性により、各チームメンバーは全体像を確認し、それに応じて事前に計画を立てることができます。
したがって、PMTで私たちが探しているのは、さまざまな問題の議論を別々に整理しておくことにより、会話を管理するのに役立つツールです。これは、異なるタイムゾーンおよび異なるチームの人々間のコミュニケーションを支援すると同時に、ソフトウェアの公式ビジョンのリポジトリとして機能し、開発者、プロジェクトマネージャーの開発プロセスの摩擦を減らすことで、集中力を維持し、時間を節約するのに役立ちます。 、そして今日のソフトウェア開発環境に関わるすべての人。
Jira は、ソフトウェア開発用に特別に設計された非常に強力なPMTです。ただし、誰もがJiraのすべての機能を知っているわけではなく、最初のプロジェクトを管理しようとしているビジネスオーナーの場合は圧倒される可能性があります。さまざまなオプションを決定する人としてこれを読んでいるが、これまでJiraを使用したことがない場合は、最初にいくつかのチュートリアルを見て、その能力を実際に活用できるようにすることをお勧めします。
Jiraでの私の経験のほとんどを定義できる3つの単語があり、そのうちの1つは スプリント 。スプリントとは、チームが密接に関連しているかどうかに関係なく、特定の目標を達成するために取り組む期間です。完全に柔軟性があります。 Jiraのスプリントは通常、1週間続きます。これは、私の意見では、最適な期間です。
開発者の観点からすると、これにより、複数のものを割り当てて、最も快適な順序で作業できる柔軟性が得られます。これは、難しいものからリラックスできるもの、または2で作業することができます。 -3同時に密接に関連しています。これにより、開発者は、時間内に提供することに同時に焦点を合わせながら、いくつかの決定を下すことができます。
スプリントは時間領域でタスクをグループ化しますが、 叙事詩 主題ごとにタスクをグループ化できます。たとえば、タスクを1週間あたりのスプリントに分割できますが、フロントエンドとバックエンドで同時にタスクをグループ化することもできます。タスクをサブジェクトで分割する場合、開発者をサブジェクトに割り当てることができます。
たとえば、既存のデータベースからデータを移行するためのエピックを作成できるため、そのエピックDB移行と呼ぶことができます。また、そのエピック内のすべてのタスクが関連しているため、1人の開発者がすべての作業中にそれを担当することができます。スプリント。これにより、2人の開発者が古いデータベースの学習に時間を費やすことがなくなり、開発がより効率的になります。
問題点 一方、やらなければならないことは、叙事詩やスプリントに属する可能性があります。問題には複数の種類があり、それらは 物語 、 仕事 、および バグ 。ストーリーにはサブタスクがあるという特徴があります。サブタスクを使用すると、問題を小さな断片に分割して、まとめると全体像を形成できます。これにより、多数のタスクを作成する必要がなくなり、1つの完了項目に焦点を合わせることができます。
Jiraのタスクは非常に具体的な問題であり、サブタスクはありません。やらなければならないことが非常に単純で、それを分解しようとしても意味がない場合、それはタスクです。バグは修正する必要があります。バグを特別なカテゴリとして保持すると、プロジェクトで進行している量ではなく、修正している量を理解するのに役立ちます。
複数のタイムゾーンにまたがるグローバルチームで作業する場合、コミュニケーションは方程式の大きな部分を占めます。 「世界中で」働くことは比喩ではありませんが、多くの開発者が住んでいる現実です。マネージャーから開発者に伝えるのが難しいことの1つは、タスクの優先度です。 ToDoリストを使用して次のシナリオを想像してみてください。
開発者は、今週中に7つのタスクを完了する必要があることを確認しました。それらのいくつかは難しいものもあれば簡単なものもあります。ただし、マネージャーにとって重要なタスクの1つは非常に複雑ですが、ToDoリストの開発者にとっては、すべてのタスクが同じです。最初に簡単なタスクを選択し、最後に重要なタスクを残すことを選択する場合があります。予期しないことが起こってリストが完成しない場合、それはカットされる最も重要なタスクであるか、急いで終了します(おそらくプロセスの品質を犠牲にします)。これは、Jiraで次のようにすることで非常に簡単に解決されます 優先順位 、これにより、開発者は、完了することがより重要または重要なことを理解できます。
Jiraについて本当に感謝することの1つは、各号の下に配置できるコンテンツの量です。画像やリンクを追加したり、他のチームメンバーにタグを付けたりすることができます。これは、Trelloにも当てはまりますが、UIを使用すると、より多くのコンテンツを配置できるようになり、各タスクのデータを増やすことができます。
モバイルユーザーインターフェースの設計原則
Jiraは、ソフトウェア開発用に特別に組み込まれた多くの機能を備えた非常に確立されたツールです。それは他のシステムとの統合の束を提供し、あなたがよく整理された状態を保つのを助けます。これは(非常に)大きなチームに特に適しています。
有能で機能満載のPMTであるJiraは、初心者の開発者にとってはやや気が遠くなる可能性があります。経験は圧倒的である可能性があります—スプリント、叙事詩、および問題はすべて混ざり合う可能性があります。これは、マネージャーがソフトウェア開発の経験がほとんどなく、開発者のチームを管理しようとしているクライアントである場合に特に当てはまります。開発に時間がかかる(数か月以上)大規模なチームや大規模なプロジェクト、および経験豊富なマネージャー(クライアント)や開発者には、Jiraを強くお勧めします。
Trelloは、「カード付きのボード」という簡単なフレーズで要約できます。 Kanban 。一見すると、訓練を受けていない目には単純すぎるかもしれません。ただし、単純なものは非常に便利です。
シンプルさは強力な概念です。これが、iPhoneとMacが非常に人気になった理由の1つです。これは、OSがシンプルで使いやすいためです。 Jiraは考えられるすべてのものを持っているように感じますが、Trelloはあなたを通り抜けるのに十分なものを持っているように感じます。叙事詩、ストーリー、スプリントはありません。カードを操作して、さまざまなステージ(列)に移動するだけです。
これらはすべてJiraにも存在することを念頭に置いて、Trelloで最も優れている機能のいくつかを説明します。
Trelloは定義を行います ステージ 非常に簡単です。列を作成して使用を開始するだけです。最も一般的なものは、To Do、Doing、Review、およびDoneです。シンプルなため、保留中の他の列を追加したり(Jiraもこれを実行できますが、これらの問題を明示的に探しないと失われたように感じます)、Todoフロントエンドなどのシステムのさまざまな部分の列を作成できます。またはTodoバックエンド。これは、チームとプロジェクトが小さい場合(単純なウェブサイト、ウィジェット、拡張機能など、同時に管理するメンバーやタスクが少ない場合に最適です。
メンバーにカードを割り当てることができます。これは、開発者にカードを割り当てる方法です。非常に簡単です。コメントで他のメンバーにタグを付けることもできます。これにより、問題に関係するすべての人が問題についてコミュニケーションを取り続けることができます。
ユーザーはワンクリックで、自分のカードや他のチームメンバーのカードを簡単にフィルタリングできます。これは、カレンダービューで特に便利です。
Trelloはシンプルなため、カードの内容を開くたびにかんばんが表示されます。このビューから逃れることはできないため、これは非常に視覚的なアプローチです。また、カードにはボード上に表示される画像を含めることができます。
これはJiraにはないものです(または、少なくとも実際のプロジェクトで使用されているのを見たことがありません)。写真は言葉以上のものを言うことができるので、各チケットを開かなくても、何が起こっているのかを簡単に確認できます。
さらに、Trelloのカラフルなタグを使用すると、カードを拡張しなくても、さらに多くの情報を追加できます。少し良い構成で、これらのかんばんに相当するポストイットラベルは非常に役立ち、不必要なクリックを大幅に減らすことができます。
Trelloは、その本質的な単純さにより、情報の山に圧倒されるような感覚を避けながら、物事を単純かつ的確に保つように促します。多くの場合、あなたは自分が関わっていないアイテムの通知に絶えず攻撃されているプロジェクトに取り組んでいます。
この余分なノイズは、少なくとも私の経験では、Trelloではいくらか減少しているようです。 Trelloは情報を追加するのにそれほどユーザーフレンドリーではないため、問題が小さくなる傾向があることがわかりました。つまり、タスクはJiraよりも小さな部分に分割されます。いくつかの計画を立てれば、これらの小さなタスクはあまりノイズを生成しないはずです。
ゲーミフィケーションの概念の一部は、簡単なタスクを実行し、報酬を使用してそれをゲームに変えることです。 「それが報酬で補われても、難しさはあなたを先延ばしにしません」 この記事で指摘されているように Trelloブログ 。
チケットがあるステージから別のステージに移動するときはいつでも、アドレナリン(またはドーパミン)のブーストがあります。 Trelloでカードをドラッグせずにカードを別のステージに移動することはできないため(Jiraでは、問題のステータスを変更するのが最も簡単です)、進行状況と物理的に接続できます。気づかないうちに、その日は前日よりも多くの問題をノックアウトしようと競い合ったり(この気持ちで私だけではないことを願っています)、やることコラムを作るために戦っているような気がします。できるだけ早く空にします。今日、多くのソフトウェア製品はゲーミフィケーションを使用して、ほとんどのソーシャルプラットフォームでのビューやいいねのようなより大きなエンゲージメントを作成しています。そのアクション報酬のメカニズムが、人々をプラットフォームに引き付け続けています。
Trelloを使用することの喜びに今でも驚いています。確かに、そのシンプルさはこの体験にとって非常に重要です。タスクは小さくなる傾向があります。同じジョブを実行できますが、1つのJiraストーリーのステータスを[完了]に変更するよりも、3つのタスクを[レビュー用]列に移動する方が適切です。 (1つのJiraストーリーのコンバージョン率はTrelloで約3枚のカードだと思います。)
これは、参入障壁が非常に低いため、プロジェクトを管理しようとしている新しい開発者やビジネスオーナーにとって理想的です。 Trelloは、ソフトウェアエンジニアなど、誰でも簡単に習得できます。問題は、Trelloが特定のプロジェクトや巨大なチームには軽量すぎる可能性があることです。追加のボードを簡単に作成できますが、1つのボードで多くの開発者が作業することは問題を引き起こす可能性があります。これは、Jiraの共有ワークスペースと質的には同じではありません。
はい—マネージャーやビジネスオーナーが24時間年中無休で質問に答えることができない今日の典型的な状況では、必要なものがすべて書き留められているリポジトリを作成する方法として、ツールの使用を検討する必要があると思います。明確な方法で。これにより、Skypeの会話で忘れられたり、数百通のメールの下に埋もれてしまったために、混乱したりアイテムを見逃したりするのを防ぐことができます。趣味のサイトのようにプロジェクトが小さい場合、PMTはやり過ぎかもしれません。
これに対する答えは、あなたのニーズに最も適したものです。チームが4人以上で構成されていて、プロジェクトが1年以上続く場合は、Jiraを使用します。その場合は、Jiraの使用方法と使用方法について詳しく読むことを強くお勧めします。 ソフトウェア開発方法論 。
チームの人数が4人未満で、プロジェクトが単純なWebサイトである場合、または既存のプロジェクトにいくつかの機能を追加する場合は、その単純さからTrelloをお勧めします。いつものように、ツールを使用すると、どちらも仕事を成し遂げることができますが、それは最良のものがすべての人にとって同じであるという意味ではありません。
Jiraチケットは、アトムが管理チームの最小単位の1つであるようなものです。 Jiraの場合、チケットはタスク、ストーリー、またはバグである可能性があります。基本的には、完了する必要のあるタスクであり、Jiraに単一のアイテムとしてリストされています。
第11章破産で何が起こるか
Jiraは、開発者の大規模なチームの編成を容易にし、アクティビティと各アクティビティの現在の状態を追跡できるようにすることで機能します。そのために、優先順位やスプリントなどの多くの機能が含まれており、アジャイルに対応しています。
エピックは、達成しようとしている目的によって関連付けられているストーリー、タスクのグループです。ソーシャルメディアプラットフォームを実行していると想像してみてください。エピックは、ウェブサイトに関連するすべてのタスクを含むウェブサイトである場合があり、別のエピックは、アプリなどに関連する問題を含むアプリである場合があります。