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導入時の効果的な開発を考える

6,938 views

Published on

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

Published in: Software
  • Did you try ⇒ www.HelpWriting.net ⇐?. They know how to do an amazing essay, research papers or dissertations.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ⇒ www.WritePaper.info ⇐ is a good website if you’re looking to get your essay written for you. You can also request things like research papers or dissertations. It’s really convenient and helpful.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❶❶❶ http://bit.ly/2F7hN3u ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2F7hN3u ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

×