Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Node-RED導入時の効果的な開発を考える

1,569 views

Published on

Node-RED UG Osaka 勉強会 Vol.2 発表資料

Published in: Software
  • Be the first to comment

  • Be the first to like this

Node-RED導入時の効果的な開発を考える

  1. 1. Copyright © Software Research Associates, Inc. All Rights Reserved 株式会社 SRA 阪井 誠 Node-RED導入時の効果的な開発を考える - 経験者へのアンケートから -
  2. 2. Copyright © Software Research Associates, Inc. All Rights Reserved 自己紹介 1 •阪井誠(ブログ:ソフトウェアさかば、Twitter: @sakaba37) •ソフトウェアプロセス、 Node-RED、チケット駆動開発、 アジャイル開発に興味を持つ自称「プロセスプログラマー」 •現場の開発からコンサル・研究、論文、書籍、雑誌など レビュー監訳 New: 8/14
  3. 3. Copyright © Software Research Associates, Inc. All Rights Reserved 背景:Node-REDの導入 • Visual IoTツールと呼ばれるNode-REDを利用した ところ、快適でとても生産性が高かった • 社内の親しい人間をそそのか宣伝し、 様々なプロジェクトで導入された • 大きな効果を上げたプロジェクトが多かったが、 それほどでもないプロジェクトもあった • Node-REDの開発経験者に品質,コスト,開発期間, プロセスの変化をアンケートした • アンケート結果から効果的な開発を考えた *1:Beck他,アジャイルソフトウェア開発宣言, http://agilemanifesto.org/iso/ja/manifesto.html,2001.
  4. 4. Copyright © Software Research Associates, Inc. All Rights Reserved 3 目次 • 背景 • 目次 • Node-RED • アンケート • アンケートの結果 • 考察 • まとめ • その後
  5. 5. Copyright © Software Research Associates, Inc. All Rights Reserved 4 Visual 開発ツールNode-RED • Node-RED*はVisual IoTツールと呼ばれ,Webブラウザ上の エディタでプログラミングする • 長円のプログラムモジュールをノードと呼び、標準ノードのほか、 コントリビュートされた多機能なノードが豊富にある • ノードを中央の編集領域に配置し,ノード間を接続してフロー (処理)を作成する • ノードには名前を付加できるが,単に配置するだけでも設定に 応じた内容が表示される * JS Foundation,Node-RED is a visual wiring tool for the Internet of Things,https://nodered.org/
  6. 6. Copyright © Software Research Associates, Inc. All Rights Reserved 5 Node-REDの特徴 • Hello Worldの入出力のノードを置き換えるだけで Webプログラムになる 一瞬でデプロイ 非同期処理を 可視化 簡単デバッグ 多機能なノード群 アンケートに影響しています
  7. 7. Copyright © Software Research Associates, Inc. All Rights Reserved Node-REDの長所・短所 長所: • 非同期処理が簡単に扱える(当時はPromise) • アルゴリズムが可視化される • 多機能なノード(モジュール) • デプロイが一瞬 • 再利用が容易 短所: • 単体テスト環境(xUnit)による自動化ができない • 発展途上(サンタさんは1.0を届けてくれなかった) • 方式設計が重要(スパゲッティ化、コピーだらけ) • ループが特殊 • マージ・保守に工夫が必要 アンケートに影響しています
  8. 8. Copyright © Software Research Associates, Inc. All Rights Reserved アンケート • Node-REDの経験者8人にアンケートを行った. • 社内サービス • プロトタイプ • テストダブル(ドライバ,モック,スタブ) • 自社パッケージ • ユーティリティなど • Node-REDは生産性が高いことから選択された. • 全てのプロジェクトはいわゆるウォーターフォール 型開発の工程を持っていた • 程度の差はあるが厳格な工程完了審査は行われていない • メールでQCDとプロセスの変化をアンケートした • 品質,コスト, 開発期間:4段階の選択式(重複選択可) の評価と自由記述 • 要件定義,設計,プログラミング,テスト,リリースの変 化:自由記述
  9. 9. Copyright © Software Research Associates, Inc. All Rights Reserved アンケート結果 • 評価方法 大分類 小分類 収集データ グラフ化 QCD 品質 4段階+自由記述 4段階 コスト 開発期間 プロセスの 変化 要件定義 自由記述 以下を判断して集計 • ネガティブ評価 • ポジティブ評価 • 変化なし および どちらともいえない 設計 プログラミング テスト リリース
  10. 10. Copyright © Software Research Associates, Inc. All Rights Reserved QCDアンケート結果 - 品質 - • サクサクと実装,実行,確認・修整の作ってのループが良かった • 内製にこだわるよりも品質が良い • コード量が減った • 試作に有効 • 非同期処理が容易 • フローを意識してシンプルな作りになった • 単体テストができない • コード検索ができないのでバグが見つけにくい
  11. 11. Copyright © Software Research Associates, Inc. All Rights Reserved QCDアンケート結果 – コスト - • 非同期処理が容易 • 高機能なコンポーネントが多い • 設計からテストまでシームレスにでき効率が良い • 処理部に注力できた • diffが取れない • ドキュメントが少ない • 必要なノードを探すのに時間がかかった • 繰り返し処理に苦労した
  12. 12. Copyright © Software Research Associates, Inc. All Rights Reserved QCDアンケート結果 - 納期 - • 非同期処理が容易 • カスタムノード作成で効率化できた • 開発のスピード感が半端ない • 他人のフローを簡単にインポート可 • 実装にいきなり入れる • 効率よく開発できる • 大きな手戻りがなかった • 自作部分の作りで効率や保守性が変わる • ドキュメントが少ない • 品質の悪いノードがあった • 必要なノードを探すのに時間がかかった
  13. 13. Copyright © Software Research Associates, Inc. All Rights Reserved アンケート結果 • 評価方法 大分類 小分類 収集データ グラフ化 QCD 品質 4段階+自由記述 4段階 コスト 開発期間 プロセスの 変化 要件定義 自由記述 以下を判断して集計 • ネガティブ評価 • ポジティブ評価 • 変化なし および どちらともいえない 設計 プログラミング テスト リリース
  14. 14. Copyright © Software Research Associates, Inc. All Rights Reserved プロセスの変化 – ポジティブ - • プロトタイプが早くできると説明も早く,意見を貰いやすい • 曖昧な要求でもとりあえず作り始めることができる • 作ったものから要件を確定していくことが可能 • 大まかな処理の流れをすぐにフローとして実装可能 • 設計とプログラミングのイテレーションが容易 • Injectノードとデバッグノードでの確認も容易 • ほんの少数のファイルをリリースするだけでよく,管理しやすい • ユニットテストはカスタムフローやAPI単位しかできないが,不安は少なかった • コード管理だけ課題・・・完成した開発環境になればすばらしいものになりそう • (保守は)基本的に容易だが,開発環境を残さないと詳細を確認し辛かった 設計以降の問題を 指摘しながらも, 好意的な表現
  15. 15. Copyright © Software Research Associates, Inc. All Rights Reserved プロセスの変化 – ネガティブ - • 単体テストをどのように行うのかわかりませんでした • 複数人数での開発が少し手間取る • 外部リソースの設定が外だしに出来ず,リリース後にとても煩わしかった • Node-REDの癖にあわせた設計は必要.設計次第 • 簡単な反面,リリース後の不具合も増える可能性がある • コード全体の検索が出来ないため,複雑なシステムは保守しにくくなる 上流のプロセスに変 化がないとしていた. Node-RED流の開発 スタイルをつかみ切 れていない
  16. 16. Copyright © Software Research Associates, Inc. All Rights Reserved 考察 Node-REDの導入に重要なこと • ツールの知識やノウハウを共有すること • 特性を活かした設計で品質を作りこむこと • 実装を繰り返して常に確認すること • 上流から利用すること 情報共有や教育が重要であるだけでなく, 既存のプロセスをそのまま適用するのではなく, 積極的に変更することがプロセス改善につながる ユーザ会に参加しましょう!
  17. 17. Copyright © Software Research Associates, Inc. All Rights Reserved まとめ • Node-REDの開発経験者8人にアンケートした • プロセスの変化を調査してその原因を考察した • 新しいツールを導入してプロセスの改善するには以下が必要 Node-REDの導入に必要なもの モダンアジャイルの指導理念 ツールの知識やノウハウを共有 する 人々を尊重する 特性を活かした設計を行う 安全な状態を前提とする 実装を繰り返して常に確認する 素早い実験と学習 主体的にプロセスを変更し、品質 を上流から作りこむ 価値を継続的に届ける • 得られた知見は,モダンアジャイル*の基本理念と通じる • Node-REDの良い導入が開発のアジリティ(機敏さ)を高める * Smith, Agile 2016 Keynote: Modern Agile, https://www.infoq.com/news/2016/08/agile2016-modern-agile, 笠原,Agile 2016の基調講演: モダンアジャイル, https://www.infoq.com/jp/news/2016/08 /agile2016-modern-agile, 2016. 元々生産性が 高いですが
  18. 18. Copyright © Software Research Associates, Inc. All Rights Reserved 17 その後:社内勉強会を開催 以下の内容を説明 • アンケートとその結果 • Node-REDの特徴と繰り返し開発 • 特徴、dashboard、繰り返し開発、 インジェクトノード、デバッグノード、 • 構造を設計・実装する • 意識するデータ、機能のまとめ方、システムの構造を考える、 作業分担の単位と方法 • テストの方法 • 単体レベル、機能テスト、非機能テスト • 上流から動かす • ドキュメントを軽量化する、とりあえず動かす、単純化する • はまりがちなところ • メモリ不足、Javascript、進化が速い
  19. 19. Copyright © Software Research Associates, Inc. All Rights Reserved 18 提供 Node-REDもそのほかも 一緒に開発しましょう! • 協力会社募集中 • 中途入社歓迎! 株式会社 SRA 関西事業部 〒541-0058 大阪市中央区南久宝寺町3-1-8MPR本町ビル2F TEL:06-4704-2611

×