エントリー
こんにちは、本日、 kanbanonrails.comサービスについて説明します。これにより、かんばんボードを作成し、GithubおよびBitbucketと統合できます。
かんばん方法論とは何ですか?
方法論はすでにHabréで何度も説明されているので、詳細には触れませんが、実際には、プロジェクトを効果的に管理できるツールであるとしか言いません。 この記事では、カードかんばんとそのプログラム形式での実装について説明します。
カードのセット(いわゆる課題、つまりタスク)があり、カードを移動する列があります。 原則として、タスクを作成するとき、「backlog」や「ready_to_work」などのタグでマークします。そのため、すぐにタグの「backlog」または「ready_to_work」を持つタスクを取得する列の1つと相関します。 次に、このタスクを進めながら、「コーディング」、「テスト」など、他の列に移動します。 アイデアは、パフォーマンスを合理的に使用し、いずれかの列にカードが蓄積しないようにすることです。 さらに、これにより、誰が何に取り組んでいるかを確認し、プロジェクトがどのように前進しているかを理解できます。
現在の実装は何ですか?
もちろん、今私が上で書いたことをできるようにする多くのサービスがあります。 しかし、それらにはそれぞれ欠点(ニュアンス)があります。 たとえば、それらのほとんどは支払われる必要があります。 すべてがGithubまたはBitbucketと統合されているわけではありません。 すべてが便利で、通常のユーザーインターフェイスを備えているわけではありません。 さらに、それらのすべてが「ボード」をセクションに分割できるわけではありません。 ここでは、たとえば、非常に人気のあるサービスwaffle.io huboard.com trello.comがありますが、それらはすべて上記の欠点があります。
私のサービスの特徴と機能
したがって、非常に柔軟で機能的な独自のサービスを作成することにしました。 マネージャーを招待することができます。マネージャーはgithub / bitbucketリポジトリーに直接アクセスする必要はありません。 たとえば、まったく登録されていない場合があります。 招待を作成するときは、プロジェクトでのユーザーの役割を指定する必要があります。 現在、所有者、メンバー、マネージャーの3つの役割を使用できます。 「所有者」ロールを持つユーザーはプロジェクトを編集/削除できますが、「メンバー」と「マネージャー」はできません。 さらに、「所有者」と「メンバー」はチケットを作成できます。 ボードはセクションと列に分けることができます。 「すべて」というセクションを作成して(たとえば)、そこにすべてのチケットを含めることができます(チェックボックスの対応するボックスをチェックする必要があります)。 または、「client」タグを持つ「Clients」セクションを作成し、「client」タグを持つすべてのチケットがそこに到着するようにすることができます。 次に、セクションの列を作成できます。 列を作成するときは、タグが重複しないように注意してください。 つまり、たとえば、「design」タグを含む「Design」列を作成すると、「design」タグの中にあるすべてのチケットがそこに届きます。 さらに、列の高さと幅を指定できます。 このサービスは71の言語に翻訳されていますが、ほとんどは自動翻訳ですが、翻訳でエラーや不正確が見つかった場合はいつでもプルリクエストを送信できます。 次に、GithubとBitbucketとの同期プロセスについて少し説明しますが、同時に、GithubとBitbucketを接続せずにいつでも私のサービスを使用できます。
プロジェクト同期
プロジェクトをGithubまたはBitbucketと同期するには、最初に設定でこれらのサービスを接続する必要があります。または、メニューの対応するアイコンをクリックして、それらのサービスを簡単に確認できます。 次に、プロジェクトセクションの同期ボタンをクリックする必要があります。 Githubによる認証中に、組織のデータへのリクエストを承認することを忘れないでください。そうしないと、組織のリポジトリを同期することができなくなります。
チケット同期
プロジェクトを同期するとき、それらのタスク(問題)は同時に転送されます。 一部のプロジェクト(リポジトリ)にIssueが接続されていない可能性があるため、チケットが表示されないことに注意してください。GithubまたはBitbucketにIssuesのセクションが含まれていることを確認してください。
Webhookの作成
プロジェクトとタスクが同期された後、APIサービスを介して、タスクの作成/更新時にサービスに送信されるフックが作成されます。
なぜオープンソースなのですか?
まず、私は常にオープンソースプロジェクトのサポーターでした。 第二に、プライベートリポジトリには非常に重要な情報が含まれている可能性があるため、このサービスをすべてオープンソースにすることをお勧めします。
技術スタック
このサービスでは、Ruby、Ruby on Rails、PostgreSQL、Slim、Sass、CoffeeScript、Sidekiq、Redis、Memcachedなど、お気に入りのテクノロジースタックを使用しています。 リアルタイムのユーザーインタラクションでは、Webソケット、つまりAction Cableフレームワークを使用します。 また、Seleniumを追加したかったのですが、私はcuckumberでの受け入れテストが本当に好きだったのですが、ご存知のようにコードをテストでカバーし、無限にリファクタリングできるので、統合テストに限定することにしました。
おわりに
私は約10日でプロジェクトを完了し、主に夜間に作業しました。 多くの作業が行われましたが、以前のプロジェクトの多くの基礎を使用しました。 さらに、いくつかの驚きに出会いました(ここでは「問題」という言葉の方が適しています)。たとえば、bitpack apiにアクセスするために使用したgemが、Webフックを作成しようとしたときにエラーを生成しました。 その中の何かを分岐して修正する必要がありました(これは一時的な解決策であるため、gemリポジトリーに対してプルリクエストを行いませんでした)。 私のサービスは開発の初期段階にあり、まだやるべきことがたくさんありますので、質問、提案、コメントがある場合はコメントを書いてください。それらを読んで喜んで回答します。
このサービスはオープンソースなので、サーバーに展開して会社で使用できますが、独自のサーバーがない場合、または展開に煩わされたくない場合は、 kanbanonrails.comで登録できます(GithubまたはBitbucketを使用できます) 。 サイトでのプロジェクトの登録と作成はまだ無料です。将来的には関税が発生する可能性があります。たとえば、広告で稼ぐなど、関税なしで行うこともできます。 いずれの場合でも、いつでもコードを複製してサーバーにデプロイできます。プロジェクトはオープンソースになり、ライセンスをクローズ/変更する予定はありません。 ちなみに、私はこのプロジェクトと他のいくつかのプロジェクトの投資家を探しているので、協力に興味があるなら、ここにpartnership@technoelegance.comまたはkopylov.german@gmail.comを書いてください。
そしてもちろん、githubリポジトリへのリンク: github.com/technoeleganceteam/kanban_on_rails
UPD(2016年7月10日): Gitlabとの統合を行い、それについてREADME.mdに書きました 。 要するに、メインのGitlabサーバー(https://gitlab.com)を使用して、デフォルトの統合を行い、ユーザーがGitlabに自分のサーバーを使用する場合、KanbanOnRailsを自分のサーバーにも展開して使用できると判断しました。 、しかし、このために彼はいくつかのパラメーターを設定に登録する必要があります。これはREADME.mdで書きました。