SlideShare a Scribd company logo
1 of 24
Download to read offline
Copyright © Software Research Associates, Inc. All Rights Reserved
株式会社 SRA
阪井 誠
#devsumiB
新技術で未来の扉を開け!
- Node-REDの環境構築と社内導入 -
セッションID(B-5)
Copyright © Software Research Associates, Inc. All Rights Reserved 1
自己紹介
• 阪井 誠 (株式会社SRA 関西事業部)
• Node-RED User Group Japan
• ソフトウェア技術者協会(SEA)
• ソフトウェアプロセス、Node-RED、チケット駆動
開発、アジャイル開発に興味を持つ。
• デブサミ講演は3回目。
• 1984年にSRAに入社して以来、UNIXをはじめとし
て、ソフトウェアプロセス、IoTなど、常に新しい
技術と向き合ってきた。
• 技術者にとって新しい技術への挑戦は、苦しみを伴
いますが、喜びであり、身を守る術だと思っていま
す。
Copyright © Software Research Associates, Inc. All Rights Reserved
Node-REDを知っていますか?
•知っている人
•使ったことがある人
•バリバリ使っている人
Copyright © Software Research Associates, Inc. All Rights Reserved
Node-REDを知っていますか?
• 線でつなぐ初心者向け?
• Node.jsだからサーバー?
• ラズパイだけ?
• Javascriptって面倒でしょ?
• 標準/フリーのモジュール(ノード)があるほか、
Node.jsのライブラリも使えて機能が豊富
• サーバーアプリはもちろん、クライアントアプリ
でも高性能
• IoTはもちろん、様々な業務で利用可能
• Visualに非同期処理が簡単に扱える
• 生産性が高い
Copyright © Software Research Associates, Inc. All Rights Reserved 4
目次
• Node-REDを知ってますか
• 目次
• Node-RED
• いきさつ
• 考えたこと
• 開発した環境
• 社内導入
• アンケート
• 考察
• まとめ
Copyright © Software Research Associates, Inc. All Rights Reserved 5
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/
Copyright © Software Research Associates, Inc. All Rights Reserved 6
インクリメンタルな開発
• Hello Worldの入出力のノードを置き換えるだけで
Webプログラムになる
一瞬でデプロイ
非同期処理を
可視化 簡単デバッグ
多機能なノード群
簡単デバッグ
Copyright © Software Research Associates, Inc. All Rights Reserved
Node-REDの長所・短所
長所:生産性が高い
• 高速な非同期処理が簡単に扱える
• アルゴリズムが可視化され
• 多機能なノード(モジュール)
• デプロイが一瞬
• 再利用が容易(インポート、エクスポート、サブフロー)
短所:工夫が必要
• 単体テストの自動化ができない
• 発展途上(1.0まであと少し)
• 方式設計が重要
• ループが特殊
• マージ・保守に工夫が必要
Copyright © Software Research Associates, Inc. All Rights Reserved
導入までの経緯
• Node-REDを用いたお客様の内製支援環境
• クラウドサービス上のDocker環境
• 環境の立ち上げ、複製、ユーザ管理
• 「仕事を減らすことになる」
• 数人×数ヵ月の実証環境の開発の仕事があった
• 1~2人×数週間でとりあえず動かせる
• 判断
• 「お客様と同じ方向を見る」(アジャイル開発)
• 「適切な費用をもらう」(オープンソース)
• 「新しい技術を取り入れる」(技術志向)
⇒ 積極的に協力
• 結果
• Win-Winの関係が築けた
• ユーザーが増えて仕事が増えた
• 社内にNode-REDを導入
• 効率的な開発を行うことができた
Copyright © Software Research Associates, Inc. All Rights Reserved
本心
• 面白そう
• 技術者としての興味
• どうせ誰かが作るなら自分たちで作りたい
• 内製には限界があるだろう
• 良いものは広がるはず
• 大切なこと
• お客様のコントロールはできない。協力するだけ
• リスクが少なければ利益も少ないが損はしない
• お客様がリスクを持つので、努力が評価される
• 先行者利益(ノウハウ)が得られる
• 成果
• Node-REDの生産性はすごい
• すぐに動いてとても便利
• 社内でも使わないと損!
• 短期間で多くの知識が得られた
Copyright © Software Research Associates, Inc. All Rights Reserved
社内への導入
• Node-REDを社内のリーダーにそそのかし
勧めた
• プロトタイプ
• テストダブル(ドライバ,モック,スタブ)
• 自社パッケージ
• ユーティリティなど
• Node-REDの紹介方法
• 生産性が高い
• 非同期処理なので性能が高い
• 敷居が低い
Copyright © Software Research Associates, Inc. All Rights Reserved
アンケート
• Node-REDの経験者8人にアンケートを行った.
• 社内サービス、プロトタイプ、テストダブル、
自社パッケージ、ユーティリティなど
• 全てのプロジェクトはいわゆるウォーターフォール
型開発の工程を持っていた
• 程度の差はあるが厳格な工程完了審査は行われていない
• メールでQCDとプロセスの変化をアンケートした
• 品質,コスト, 開発期間:4段階の選択式(重複選択
可)の評価と自由記述
• 要件定義,設計,プログラミング,テスト,リリースの
変化:自由記述
Copyright © Software Research Associates, Inc. All Rights Reserved
QCDアンケート結果 - 品質 -
• サクサクと実装,実行,確認・修整の作ってのループが良かった
• 内製にこだわるよりも品質が良い
• コード量が減った
• 試作に有効
• 非同期処理が容易(当時のnode,jsはpromiseしかなかった)
• フローを意識してシンプルな作りになった
• 単体テストができない
• コード検索ができないのでバグが見つけにくい(今はできます)
Copyright © Software Research Associates, Inc. All Rights Reserved
QCDアンケート結果 – コスト -
• 非同期処理が容易
• 高機能なコンポーネントが多い
• 設計からテストまでシームレスにでき効率が良い
• 処理部に注力できた
• diffが取れない(今はちょっとましに)
• ドキュメントが少ない
• 必要なノードを探すのに時間がかかった
• 繰り返し処理に苦労した
Copyright © Software Research Associates, Inc. All Rights Reserved
QCDアンケート結果 - 納期 -
• 非同期処理が容易
• カスタムノード作成で効率化できた
• 開発のスピード感が半端ない
• 他人のフローを簡単にインポート可
• 実装にいきなり入れる
• 効率よく開発できる
• 大きな手戻りがなかった
• 自作部分の作りで効率や保守性が変わる
• ドキュメントが少ない
• 品質の悪いノードがあった(貢献できます!)
• 必要なノードを探すのに時間がかかった
Copyright © Software Research Associates, Inc. All Rights Reserved
プロセスの変化 – ポジティブ -
• プロトタイプが早くできると説明も早く,意見を貰いやすい
• 曖昧な要求でもとりあえず作り始めることができる
• 作ったものから要件を確定していくことが可能
• 大まかな処理の流れをすぐにフローとして実装可能
• 設計とプログラミングのイテレーションが容易
• Injectノードとデバッグノードでの確認も容易
• ほんの少数のファイルをリリースするだけでよく,管理しやすい
• ユニットテストはカスタムフローやAPI単位しかできないが,不安は少なかった
• コード管理だけ課題・・・完成した開発環境になればすばらしいものになりそう
• (保守は)基本的に容易だが,開発環境を残さないと詳細を確認し辛かった
設計以降の問題を
指摘しながらも,
好意的な表現
Copyright © Software Research Associates, Inc. All Rights Reserved
プロセスの変化 – ネガティブ -
• 単体テストをどのように行うのかわかりませんでした
• 複数人数での開発が少し手間取る
• 外部リソースの設定が外だしに出来ず,リリース後にとても煩わしかった
• Node-REDの癖にあわせた設計は必要.設計次第
• 簡単な反面,リリース後の不具合も増える可能性がある
• コード全体の検索が出来ないため,複雑なシステムは保守しにくくなる
上流のプロセスに変
化がないとしていた.
Node-RED流の開発
スタイルをつかみ切
れていない
バージョンアップで
解決された課題も
Copyright © Software Research Associates, Inc. All Rights Reserved
考察
Node-REDの導入に重要なこと
• ツールの知識やノウハウを共有すること
• 特性を活かした設計で品質を作りこむこと
• 実装を繰り返して常に確認すること
• 上流から利用すること
情報共有や教育が重要であるだけでなく,
既存のプロセスをそのまま適用するのではなく,
積極的に変更することがプロセス改善につながる
Copyright © Software Research Associates, Inc. All Rights Reserved
おわりに
• Node-RED最高!
• 思った通りに作れる
• 思った通りに実装できる(Ruby以来の感動)
• 生産性が高い
• 新しい技術を避けてはいけない
• いずれ誰かがやる
• 貴重な経験ができる
• 小さく始めれば外しても被害は少ない
• 良い技術ならマーケットは後からついてくる
• 先行者利益が得よう!
• 良いものなら開発用に使え!
• 自ら広げればよい!
Copyright © Software Research Associates, Inc. All Rights Reserved 19
• http://icestories.exploratorium.edu/dispatches/big-ideas/penguins/index.html
技術者諸君!ファーストペンギンであれ!
Unless otherwise noted, this work is licensed under a Creative Commons
Attribution-Noncommercial-Share Alike 3.0 United States License.
• 怖がりのペンギンは群れで行動し、飛び込まない
• 最初に飛び込むは勇者ファーストペンギンと称賛される
• 勇気を出して新技術のブルーオーシャンに飛び込もう!
Copyright © Software Research Associates, Inc. All Rights Reserved 20
プラトンは著書『ラケス』において、
ソクラテスによる"勇気"の考察を紹介している 。
勇気とは、
「恐るべきものと恐るべからざるものとを
識別することなり」
https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97
飛び込む勇気
Copyright © Software Research Associates, Inc. All Rights Reserved 21
プラトンは著書『ラケス』において、
ソクラテスによる"勇気"の考察を紹介している 。
勇気とは、
「恐るべきものと恐るべからざるものとを
識別することなり」
https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97
そのためには
情報収集、信頼貯金、仲間が必要
書籍、本家(Web, Twitter, Slack)、
日本Node-REDユーザグループ(Web,Facebook)、
勉強会(NRUGのほか、、)
飛び込む勇気
Copyright © Software Research Associates, Inc. All Rights Reserved 22
• 日時:11/24(土) 14:00~17:00
• テーマ:
•
Nodeから手が出るNode-RED(初心者向け)
• 内容:ハンズオンおよび質疑応答
• 事前にNode-REDインストール済み環境を
ご用意ください
• 講師:佐々木 和繁、小南 敏弘(SRA)
• 2018年度新人研修 Node-RED担当
• 場所:エルおおさか (大阪府立労働センター)
• 天満橋と北浜の間、淀屋橋、大阪天満宮から徒歩
• 会議室 701
SEA関西でお会いしましょう
Copyright © Software Research Associates, Inc. All Rights Reserved 23
新技術で未来の扉を開け!
- Node-REDの環境構築と社内導入 –
完

More Related Content

What's hot

Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)YuzoHirakawa
 
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたfastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたToshiyuki Hirata
 
CI/CD専用モニタと心理的安全性
CI/CD専用モニタと心理的安全性CI/CD専用モニタと心理的安全性
CI/CD専用モニタと心理的安全性Shinya Nakajima
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -Toshiyuki Hirata
 
将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3Hiroshi Oyamada
 
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)Kenichi Hoshi
 
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~Daisuke Ikeda
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようToshiyuki Hirata
 

What's hot (10)

Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
 
DroidKaigi_devicefarm
DroidKaigi_devicefarmDroidKaigi_devicefarm
DroidKaigi_devicefarm
 
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたfastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
 
CI/CD専用モニタと心理的安全性
CI/CD専用モニタと心理的安全性CI/CD専用モニタと心理的安全性
CI/CD専用モニタと心理的安全性
 
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
 
KINECT de DEPLOY
KINECT de DEPLOYKINECT de DEPLOY
KINECT de DEPLOY
 
将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3
 
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
uroboroSQLの紹介 (OSC2017 Tokyo/Spring)
 
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
 
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめようiOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
 

Similar to 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -

チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 Makoto SAKAI
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験についてRakuten Group, Inc.
 
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用Preferred Networks
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応Masaru Horioka
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Toshiyuki Hirata
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)TIS Inc.
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~Tomomi Kajita
 
ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材Makoto SAKAI
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2Ryohei Kamiya
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1Hiro Yoshioka
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境Toshiyuki Hirata
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2Yushi_Takagi
 
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスマスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスToshiyuki Hirata
 
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割DeNAにおけるSWETの役割
DeNAにおけるSWETの役割Toshiyuki Hirata
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みYuta Matsumura
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 

Similar to 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - (20)

チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
 
ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材ソフトウェア産業に望まれる人材
ソフトウェア産業に望まれる人材
 
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2
 
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービスマスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
 
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 

More from Makoto SAKAI

プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-Makoto SAKAI
 
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-Makoto SAKAI
 
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」Makoto SAKAI
 
メールやチャットでも役立つテクニック
メールやチャットでも役立つテクニックメールやチャットでも役立つテクニック
メールやチャットでも役立つテクニックMakoto SAKAI
 
改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話Makoto SAKAI
 
(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話Makoto SAKAI
 
論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修Makoto SAKAI
 
SS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさSS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさMakoto SAKAI
 
プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理Makoto SAKAI
 
複合主キーの扱い方
複合主キーの扱い方複合主キーの扱い方
複合主キーの扱い方Makoto SAKAI
 
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発Makoto SAKAI
 
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析Makoto SAKAI
 
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -Makoto SAKAI
 
社会人のためのシンポジウム発表入門 リーン論文作法
社会人のためのシンポジウム発表入門   リーン論文作法社会人のためのシンポジウム発表入門   リーン論文作法
社会人のためのシンポジウム発表入門 リーン論文作法Makoto SAKAI
 
パネル:Redmineの未来を考える
パネル:Redmineの未来を考えるパネル:Redmineの未来を考える
パネル:Redmineの未来を考えるMakoto SAKAI
 
古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップ古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップMakoto SAKAI
 
チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -Makoto SAKAI
 
計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)Makoto SAKAI
 
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-Makoto SAKAI
 
うまくいくチケット駆動開発 - リーンとリファクタリング -
うまくいくチケット駆動開発 - リーンとリファクタリング -うまくいくチケット駆動開発 - リーンとリファクタリング -
うまくいくチケット駆動開発 - リーンとリファクタリング -Makoto SAKAI
 

More from Makoto SAKAI (20)

プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
 
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
 
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
 
メールやチャットでも役立つテクニック
メールやチャットでも役立つテクニックメールやチャットでも役立つテクニック
メールやチャットでも役立つテクニック
 
改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話
 
(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話
 
論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修
 
SS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさSS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさ
 
プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理
 
複合主キーの扱い方
複合主キーの扱い方複合主キーの扱い方
複合主キーの扱い方
 
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
 
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
 
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
 
社会人のためのシンポジウム発表入門 リーン論文作法
社会人のためのシンポジウム発表入門   リーン論文作法社会人のためのシンポジウム発表入門   リーン論文作法
社会人のためのシンポジウム発表入門 リーン論文作法
 
パネル:Redmineの未来を考える
パネル:Redmineの未来を考えるパネル:Redmineの未来を考える
パネル:Redmineの未来を考える
 
古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップ古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップ
 
チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -
 
計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)
 
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
ウォーターフォール開発におけるチケット駆動開発 -ウォータフォール開発をアダプタブルにする-
 
うまくいくチケット駆動開発 - リーンとリファクタリング -
うまくいくチケット駆動開発 - リーンとリファクタリング -うまくいくチケット駆動開発 - リーンとリファクタリング -
うまくいくチケット駆動開発 - リーンとリファクタリング -
 

新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -

  • 1. Copyright © Software Research Associates, Inc. All Rights Reserved 株式会社 SRA 阪井 誠 #devsumiB 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 - セッションID(B-5)
  • 2. Copyright © Software Research Associates, Inc. All Rights Reserved 1 自己紹介 • 阪井 誠 (株式会社SRA 関西事業部) • Node-RED User Group Japan • ソフトウェア技術者協会(SEA) • ソフトウェアプロセス、Node-RED、チケット駆動 開発、アジャイル開発に興味を持つ。 • デブサミ講演は3回目。 • 1984年にSRAに入社して以来、UNIXをはじめとし て、ソフトウェアプロセス、IoTなど、常に新しい 技術と向き合ってきた。 • 技術者にとって新しい技術への挑戦は、苦しみを伴 いますが、喜びであり、身を守る術だと思っていま す。
  • 3. Copyright © Software Research Associates, Inc. All Rights Reserved Node-REDを知っていますか? •知っている人 •使ったことがある人 •バリバリ使っている人
  • 4. Copyright © Software Research Associates, Inc. All Rights Reserved Node-REDを知っていますか? • 線でつなぐ初心者向け? • Node.jsだからサーバー? • ラズパイだけ? • Javascriptって面倒でしょ? • 標準/フリーのモジュール(ノード)があるほか、 Node.jsのライブラリも使えて機能が豊富 • サーバーアプリはもちろん、クライアントアプリ でも高性能 • IoTはもちろん、様々な業務で利用可能 • Visualに非同期処理が簡単に扱える • 生産性が高い
  • 5. Copyright © Software Research Associates, Inc. All Rights Reserved 4 目次 • Node-REDを知ってますか • 目次 • Node-RED • いきさつ • 考えたこと • 開発した環境 • 社内導入 • アンケート • 考察 • まとめ
  • 6. Copyright © Software Research Associates, Inc. All Rights Reserved 5 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/
  • 7. Copyright © Software Research Associates, Inc. All Rights Reserved 6 インクリメンタルな開発 • Hello Worldの入出力のノードを置き換えるだけで Webプログラムになる 一瞬でデプロイ 非同期処理を 可視化 簡単デバッグ 多機能なノード群 簡単デバッグ
  • 8. Copyright © Software Research Associates, Inc. All Rights Reserved Node-REDの長所・短所 長所:生産性が高い • 高速な非同期処理が簡単に扱える • アルゴリズムが可視化され • 多機能なノード(モジュール) • デプロイが一瞬 • 再利用が容易(インポート、エクスポート、サブフロー) 短所:工夫が必要 • 単体テストの自動化ができない • 発展途上(1.0まであと少し) • 方式設計が重要 • ループが特殊 • マージ・保守に工夫が必要
  • 9. Copyright © Software Research Associates, Inc. All Rights Reserved 導入までの経緯 • Node-REDを用いたお客様の内製支援環境 • クラウドサービス上のDocker環境 • 環境の立ち上げ、複製、ユーザ管理 • 「仕事を減らすことになる」 • 数人×数ヵ月の実証環境の開発の仕事があった • 1~2人×数週間でとりあえず動かせる • 判断 • 「お客様と同じ方向を見る」(アジャイル開発) • 「適切な費用をもらう」(オープンソース) • 「新しい技術を取り入れる」(技術志向) ⇒ 積極的に協力 • 結果 • Win-Winの関係が築けた • ユーザーが増えて仕事が増えた • 社内にNode-REDを導入 • 効率的な開発を行うことができた
  • 10. Copyright © Software Research Associates, Inc. All Rights Reserved 本心 • 面白そう • 技術者としての興味 • どうせ誰かが作るなら自分たちで作りたい • 内製には限界があるだろう • 良いものは広がるはず • 大切なこと • お客様のコントロールはできない。協力するだけ • リスクが少なければ利益も少ないが損はしない • お客様がリスクを持つので、努力が評価される • 先行者利益(ノウハウ)が得られる • 成果 • Node-REDの生産性はすごい • すぐに動いてとても便利 • 社内でも使わないと損! • 短期間で多くの知識が得られた
  • 11. Copyright © Software Research Associates, Inc. All Rights Reserved 社内への導入 • Node-REDを社内のリーダーにそそのかし 勧めた • プロトタイプ • テストダブル(ドライバ,モック,スタブ) • 自社パッケージ • ユーティリティなど • Node-REDの紹介方法 • 生産性が高い • 非同期処理なので性能が高い • 敷居が低い
  • 12. Copyright © Software Research Associates, Inc. All Rights Reserved アンケート • Node-REDの経験者8人にアンケートを行った. • 社内サービス、プロトタイプ、テストダブル、 自社パッケージ、ユーティリティなど • 全てのプロジェクトはいわゆるウォーターフォール 型開発の工程を持っていた • 程度の差はあるが厳格な工程完了審査は行われていない • メールでQCDとプロセスの変化をアンケートした • 品質,コスト, 開発期間:4段階の選択式(重複選択 可)の評価と自由記述 • 要件定義,設計,プログラミング,テスト,リリースの 変化:自由記述
  • 13. Copyright © Software Research Associates, Inc. All Rights Reserved QCDアンケート結果 - 品質 - • サクサクと実装,実行,確認・修整の作ってのループが良かった • 内製にこだわるよりも品質が良い • コード量が減った • 試作に有効 • 非同期処理が容易(当時のnode,jsはpromiseしかなかった) • フローを意識してシンプルな作りになった • 単体テストができない • コード検索ができないのでバグが見つけにくい(今はできます)
  • 14. Copyright © Software Research Associates, Inc. All Rights Reserved QCDアンケート結果 – コスト - • 非同期処理が容易 • 高機能なコンポーネントが多い • 設計からテストまでシームレスにでき効率が良い • 処理部に注力できた • diffが取れない(今はちょっとましに) • ドキュメントが少ない • 必要なノードを探すのに時間がかかった • 繰り返し処理に苦労した
  • 15. Copyright © Software Research Associates, Inc. All Rights Reserved QCDアンケート結果 - 納期 - • 非同期処理が容易 • カスタムノード作成で効率化できた • 開発のスピード感が半端ない • 他人のフローを簡単にインポート可 • 実装にいきなり入れる • 効率よく開発できる • 大きな手戻りがなかった • 自作部分の作りで効率や保守性が変わる • ドキュメントが少ない • 品質の悪いノードがあった(貢献できます!) • 必要なノードを探すのに時間がかかった
  • 16. Copyright © Software Research Associates, Inc. All Rights Reserved プロセスの変化 – ポジティブ - • プロトタイプが早くできると説明も早く,意見を貰いやすい • 曖昧な要求でもとりあえず作り始めることができる • 作ったものから要件を確定していくことが可能 • 大まかな処理の流れをすぐにフローとして実装可能 • 設計とプログラミングのイテレーションが容易 • Injectノードとデバッグノードでの確認も容易 • ほんの少数のファイルをリリースするだけでよく,管理しやすい • ユニットテストはカスタムフローやAPI単位しかできないが,不安は少なかった • コード管理だけ課題・・・完成した開発環境になればすばらしいものになりそう • (保守は)基本的に容易だが,開発環境を残さないと詳細を確認し辛かった 設計以降の問題を 指摘しながらも, 好意的な表現
  • 17. Copyright © Software Research Associates, Inc. All Rights Reserved プロセスの変化 – ネガティブ - • 単体テストをどのように行うのかわかりませんでした • 複数人数での開発が少し手間取る • 外部リソースの設定が外だしに出来ず,リリース後にとても煩わしかった • Node-REDの癖にあわせた設計は必要.設計次第 • 簡単な反面,リリース後の不具合も増える可能性がある • コード全体の検索が出来ないため,複雑なシステムは保守しにくくなる 上流のプロセスに変 化がないとしていた. Node-RED流の開発 スタイルをつかみ切 れていない バージョンアップで 解決された課題も
  • 18. Copyright © Software Research Associates, Inc. All Rights Reserved 考察 Node-REDの導入に重要なこと • ツールの知識やノウハウを共有すること • 特性を活かした設計で品質を作りこむこと • 実装を繰り返して常に確認すること • 上流から利用すること 情報共有や教育が重要であるだけでなく, 既存のプロセスをそのまま適用するのではなく, 積極的に変更することがプロセス改善につながる
  • 19. Copyright © Software Research Associates, Inc. All Rights Reserved おわりに • Node-RED最高! • 思った通りに作れる • 思った通りに実装できる(Ruby以来の感動) • 生産性が高い • 新しい技術を避けてはいけない • いずれ誰かがやる • 貴重な経験ができる • 小さく始めれば外しても被害は少ない • 良い技術ならマーケットは後からついてくる • 先行者利益が得よう! • 良いものなら開発用に使え! • 自ら広げればよい!
  • 20. Copyright © Software Research Associates, Inc. All Rights Reserved 19 • http://icestories.exploratorium.edu/dispatches/big-ideas/penguins/index.html 技術者諸君!ファーストペンギンであれ! Unless otherwise noted, this work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. • 怖がりのペンギンは群れで行動し、飛び込まない • 最初に飛び込むは勇者ファーストペンギンと称賛される • 勇気を出して新技術のブルーオーシャンに飛び込もう!
  • 21. Copyright © Software Research Associates, Inc. All Rights Reserved 20 プラトンは著書『ラケス』において、 ソクラテスによる"勇気"の考察を紹介している 。 勇気とは、 「恐るべきものと恐るべからざるものとを 識別することなり」 https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97 飛び込む勇気
  • 22. Copyright © Software Research Associates, Inc. All Rights Reserved 21 プラトンは著書『ラケス』において、 ソクラテスによる"勇気"の考察を紹介している 。 勇気とは、 「恐るべきものと恐るべからざるものとを 識別することなり」 https://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97 そのためには 情報収集、信頼貯金、仲間が必要 書籍、本家(Web, Twitter, Slack)、 日本Node-REDユーザグループ(Web,Facebook)、 勉強会(NRUGのほか、、) 飛び込む勇気
  • 23. Copyright © Software Research Associates, Inc. All Rights Reserved 22 • 日時:11/24(土) 14:00~17:00 • テーマ: • Nodeから手が出るNode-RED(初心者向け) • 内容:ハンズオンおよび質疑応答 • 事前にNode-REDインストール済み環境を ご用意ください • 講師:佐々木 和繁、小南 敏弘(SRA) • 2018年度新人研修 Node-RED担当 • 場所:エルおおさか (大阪府立労働センター) • 天満橋と北浜の間、淀屋橋、大阪天満宮から徒歩 • 会議室 701 SEA関西でお会いしましょう
  • 24. Copyright © Software Research Associates, Inc. All Rights Reserved 23 新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 – 完