mohikanz team
516
4
0

SDDの勧め

Published at December 1, 2017 6:54 p.m.

mohikanz Advent Calendar 2017の12日目の記事です。

はじめに

少し?だいぶ?前から、テスト駆動開発、略してTDD(test-driven development)が話題になってますね
なので、流行りに乗っかっていくスタイルでいこうと思います←

皆さんご存知の通り、仕事中はmohikanzチャンネルに常駐してるので、SDD(Slack-driven development):Slack駆動開発と言っても過言ではないのではと!!
そこで、自分が行なっているSlack駆動開発の手法・利点を紹介していこうと思います。

開発手法

TDDの開発手法

  1. 機能に必要なテストを書く
  2. 最低限の実装を行なう
  3. その実装をテストする
  4. テストを通れば、コードをリファクタリングする

TDDでは、このサイクルを小さい機能ごとに繰り返し行っていき、大きな機能を作り上げていく開発手法をとります。

あれ?SDDもこれと似たようなものではないか。

SDDの開発手法

  1. Slackを開き、リアクションをつける。またはコメントを書く
  2. タスクの実装を行う
  3. その実装を実行する。その間にSlackをみておく。
  4. 実行して問題がなければ、gitにコミットしたり等する。

このサイクルを小さい機能ごとにすることによって、生産性を(あまり)落とさずに開発できるのではないかと思います。

ここで重要なのが、サイクルの1.と3.の切り分けです。
3.では、新しいメッセージの確認で終わらせるということです。これには、「実装の実行が終わるまでにSlackから離れる」および「確認したメッセージの返答・リアクションをサイクルの4.を行っている間に考えられる」という意味がちゃんとあります。

利点

TDDの利点

Clean code that works がTDDの目標らしいです。
「きれい(Clean)かつ動く(works)コード(code)」という意味らしいです。
最初からきれいで動くコードを書くのは至難の技なので、「まず動くコードを書く。それからきれいにする。」というのをサイクルに入れることで、サイクルが1つ終わるたびにきれにかつ動くコードが出来上がっていくと解釈しました。

SDDの利点

SDDの目標は、Boost your motivation , productivity and chat.
「やる気と生産性と雑談の加速」です。
最初から、やる気をあげるのは至難の技です。やる気をあげる方法は色々ありますが、時間がかかってしまうと、作業時間が減り生産性が下がってしまいます。しかし、やる気をあげるところをサイクルに組み込むことで解決しています。
このことにより、雑談の量と生産性を比例させることに成功できました。
Slackを見てどんどん雑談していくことで「やる気も生産性も上げて行ける」のがSDDの利点と言えるでしょう。

出典

https://ja.wikipedia.org/wiki/テスト駆動開発

*TDDの情報は間違いが含まれる場合がありますが、こちらでは保証し兼ねますのでご理解ください。
TDDの正しい情報はこちらから個人で入手をお願いいたします。
https://www.amazon.co.jp/テスト駆動開発-Kent-Beck/dp/4274217884

最後に

ここまでお読みいただきありがとうございました。
あくまで1個人の方法なので、みなさんに効果があるかはわかりません。
一般の方には、SDDではない方法をオススメいたします。が、mohikanzにいる方は、Slackに常駐・生産性の低下という問題があるかと思います。そちらの症状によく効く開発手法となっております。用法用量を守って正しくお使いください。

追記

ちゃんとしたのも書かないとと思い、SDDっぽく、Slackと連携させていて便利なものを書いておこうかなと思います。
Slackとの連携の仕方は、各自調べてね←

  • Jenkins
    • ビルドの結果を通知してくれる
    • 今回のビルドに含まれる変更を行った人を表示
  • DeployGate
    • Deploygateからアプリを入れて、クラッシュした時に通知がくる
    • リンクからクラッシュログが見れる
  • GitLab
    • マージリクエストの追加・承認時に通知
  • AppFollow: Review&Update Monitor
    • アプリにつけられたレビューを通知
    • アプリのアップデートを通知
    • Slack Appから追加可能
  • polly
    • アンケートを簡単に取れる