仮説・検証(51)公開算譜は機敏だ(open source is agile)GitHub and docker


第一部GitHub/docker 作業診断 公開算譜は機敏だ

As process assessment of projects on GitHub, open source is agile.

SWEST

http://swest.toppers.jp

に投稿した内容(の展開形)です。投稿原稿では紙幅に限界があり、自分の関連するQiitaの記事のURLを網羅できていません。関連するURLを記載したこの版を第一版の完全版(completed)とさせてください。

「三方よし」「三十点をめざす」「三倍速」を基本にした第三版はこちら。

https://researchmap.jp/mua9zm7c0-45645/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=218462&metadata_id=25961


1 はじめに(introduction)

名古屋市工業研究所とアワーズ株式会社は,AI 及びIoT の技術展開の中で,GitHub 上に,ネット及びRaspberry PI の開発事業を並行して展開した。目的は、オープンソースを利用開発で、オープンソースよりも生産性が低い方法から脱却である。成果は、ソースコード、議事録などを一括管理することによる無駄の排除である。これらの作業について,IPA が展開したSPEAK-IPA で水準5から診断し,課題が明確になったので報告する。


1.1 AI(articial Interigence)

「ゼロから始めるDeep Learning」[1] 読書会は,2017年3 月から実施し,昨年のSWEST でポスター発表している[2]。読書会は月1回午後開催した。輪講の後,夕方に数人づつLT を行った。LT では実験報告、参考文献JupyterNotebook の利用,cloud サービスの対応状況等の紹介があった[3]。読書会の参加者合計は30人である。その後、RPA(robot process automation)における日本語文字認識の課題と、不必要な作業の自動化は無意味だという報告がある[4]。


1.1.1 python

[1] は,python で記述している。Python 未経験者は, Python100 本ノックを推奨した[5]。また,pythonがR とのデータの扱いが共通しており,R とpythonをRaspberry Pi で動作させ,その利点を確認した[6]。

言語処理100本ノックをdockerで。python覚えるのに最適。

https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)

https://qiita.com/drafts/5dd49a046b5991af3a5e/edit


1.1.2 jupyter notebook

ソースコードとソースコード以外の文書を別に管理するのは手間であるだけでなく,整合性をとるための無駄が生じる。Jupyter notebook では,python のプログラム動作をそのまま文書化することができることが利点である。読書会の資料はjupyter notebook の使用を推奨した。


1.1.3 LATEX

jupybernotebook のPDF 出力には LATEX  を利用している。確率論及統計論輪講でもLaTeX 入力したデータをresearchmap にあげている[7]。


1.2 IoT(Internet of things)

2016 年から岐阜大学では最初に学ぶ言語をpythonとした。Python の利用しやすい環境としてRaspberryPI が普及している。Deep Learning でPython を利用したことから,Python つながりでRaspberry PI の演習への参加を呼びかけた。Raspberry PI 演習の参加者は,Deep Learning 読書会参加者以外もいるため合計32人,内過半数がDeep Learning 読書会参加者である。


1.2.1 Raspberry PI

Raspberry PI はCPU にARM を搭載し,Linux が標準的に搭載可能な仕様になっている[8]。Linux が搭載できるメモリの大きさ,ネットワーク対応がある。

直接単独で電子計算機として利用する場合には,キーボードとディスプレイを接続できるインタフェースを持っている。またTOPPERS/HRP等を移植しており,「名古屋のIoT は名古屋のOS で」を提唱している。

https://qiita.com/kaizen_nagoya/items/4c46153324a8081fe18c


1.2.2 Wireshark

Raspberry PI をネットワークの測定機器として利用することも可能である。Macintosh とRaspberry PIの双方にWireshark を入れ,通信機能を有効にする[9]。名古屋市工業研究所では,etherCAT による工場のオンライン化に対する支援,指導,提案などを行っている。Wireshark はetherCAT にも対応しており,

Raspberry PI で測定する方式を提唱している。また測定はセキュリティ対策も兼ねている[10][11]。


1.2.3 TOPPERS/FMP

リアルタイムOS のオープンソースであるTOPPERS 開発の課題は,クロスコンパイラの導入とリモートデバッグであった。TOPPERS 開発者会議で,Raspberry PI 用TOPPERS/FMP の開発の仕方が名古屋大学の本田晋也から紹介があった[12]。


1.2.4 docker

斉藤直希が,Macintosh でも開発できるようにdocker にTOPPERS/FMP クロスコンパイル環境を構築した[13]。演習の手順を再現し,Qiita に掲載した[14]。ここでは,手直しした内容をdocker hub に掲載する方法を紹介した。また、QEMU のVirt ボード(ARM AArch64:Cortex-A53 搭載) で動作するSSPカーネルの依存部コードをContributed Software として登録している[15]。


2 2 projects on GitHub

GitHub の利用方法の演習と,AI 及びIoT の共同研究の展開のため,2つの作業をGitHub で公開している。3人づつ,tail, scheduler の2つの班で,それぞれの事業を展開した。リーダはそれぞれの班の最年少者とし,新しい仕事の仕方は新しい人が主導できるようにした。最年長者は,GitHub の設定や,日程確認などの支援に回ってもらった。3作業日で1回試作し,3日ごとに振り返り,次の段階の目標設定をした。


2.1 tail project

Raspberry PI を試作品の中心とし,ネットワークからの通知によって,小さな動物が尻尾を振る企画である[16]。第一試作としては,メールが届いたら,Raspberry PI がモータを回し,尻尾を振るというものである。目標設定として,百均に提案できるようにという案があり,そのために検討すべきこと,作業,調査などを分担している。この成果は,名古屋市工業研究所で開催している「名古屋のIoT は名古屋のOS

で」のセミナのLT で河村が発表している[17]。


2.2 scheduler project

日程調整のためのウェブサービスを企画した[18]。目標設定としては,Raspberry PI でも,docker からでも利用できることを目指した。また,Web サービスの提供も,Raspberry PI でも,docker でもサーバになれるような仕組みを検討した。


2.3 公開算譜(open source)

Linux, Apache, TOPPES など実際に仕事で利用しているソフトウェアの半数近くはオープンソースである。これらは、GitHub やSourceForge にあり、使い方はslideshare やQiita に資料がある。ネットで公開している資料を、集約ながら作業を先に進めた。


2.4 報告と記録(report and record)

毎日の作業は, cybozu live に、「わかったこと、分からなかったこと、よかったこと、あらためたいこと」を記載している。毎週の報告は、プレゼンまたはQiitaの記事を作成し、5分間のLT 形式で実施している。

口頭で意思を伝えた場合には,どちらかが記録することを原則とした。cyboze live も利用しており,全てをGitHub にあげていない。


2.5 道具と方法(tool and method)

新しいOS, 新しい言語、新しいFramework を利用するには、新しい方法で行うだけでなく、技術者の能力の増進と作業の効率化の両方を判定すると良い。技術者の能力が上がれば、効率的な道具の利用方法を選択することを記録する[19]。


3 作業診断(process assessment)

作業診断は,アメリカがソ連との宇宙開発競争において,有人宇宙開発での遅れの原因分析を体系化したのが作業診断モデルである。その国際標準化したものがISO/IEC 15504[20], ISO/IEC 33001[21] などである。これらのモデルが,水準5を目指した背景を理解せずに用いると,無駄を増殖することがある。


3.1 SPEAK-IPA

SPEAK-IPA[22] は、ISO/IEC 15504 に基づいた新日鉄ソリューションのモデルspeak に基づいている。IPAと名古屋市工業研究所で訓練を実施してきた。2018年は7月に名古屋市工業研究所で開催する。


3.2 機敏(agile)

アジャイルとは,プログラマが当たり前のことを当たり前にやっていることである。計算機の高速化、高容量化、低価格化で、昔の仕事の仕方に対して、改善するのがアジャイルである。作業診断は実際にやっていることを,複数の視点から眺める方法である。アジャイルを作業診断すると,当たり前のことを当たり前にできているかを確認できる。水準5から診断していくと,水準1、水準2のモデルがメインフレーム時代のやり方であることが分かる。


3.3 面談(interview)

SPEAK-IPA アセッサコースで、面談による聞き取り調査の技法を演習する。「文書がない」という事象を「趣味がない」という事象に対応させ,いかに「趣味がない」という主張をする人から,「趣味」を聞き出す訓練を行った。「文書がない」というのも,同名の書類がないだけで,ソースコードを含めた文書のどこかには,記載していることがほとんどである。特に,プロセスモデルがないという場合は,新人教育の教材を作っている組織では,新人教育の教材に標準プロセスに相当する記載がある。


3.4 設計図(design chart)

設計は,ソースコードだけでは不十分なことがある。UML の状態遷移図,時系列図,刻時図,利用事例図

が大切である。HAZOP でも,現物,動画,写真がない場合には,これらの設計図を用いて分析を行っている。大きな目標設定の際には,GSN などん利用も進んでいる。診断モデルの水準4,水準5と,各企業の社是,事業目標をGSN で記述すると,事象の構造と概念の上下関係を明確化できることがわかっている。[23]


3.5 HAZOP

HAZOP 未経験者が多かったため,SWEST と同様に,3人の班で3回回す演習を行った[24][25]。仕様が11の誘導語を適用するだけでなく、FTA, FMEAとの組み合わせ[26]、TRIZ と連携した方法を提唱している[27][28]。文書見直しに際して,例外処理が規定しているかを確認した面談の際に,相手の話に対して,11の誘導語を利用して質問することも検討した。診断に際しては,診断結果の妥当性,作用の逆の検討などに用いた。STAMP 等の手法は部分集合であり、HAZOP 活用への一段階である[29]。


3.6 確率論及統計論輪講

SWEST でも実施している確率論及統計論の輪講により,社会事象を統計的に扱う際の,確率の低さについて整理している[30]。参考文献は,理論物理学ようであるため,社会事象を扱うための補助教材を用意した[31]。JAXA/IPA WOCS で発表した企業における作業改善・作業診断における統計,確率の利用の幅広さは,参考になっている[32]。


4 まとめと今後の課題

水準5から診断したため,水準4以下の判定において,制約条件が明確になっていることから,判断にブレが少なかった。AI に関する処理はGitHub にあげていない。文書見直しだけでは不十分であり,面談による診断の有効性が確認できた。GitHub のどこに,何をあげれば,どういう意味があるか,どこにあげた項目の何を測定すれば,最適化に役立つかなど,一つづつ作業を積み上げていくことが大切であることが想定できた。ISO/IEC 33018 ではアセッサの能力に関する国際文書を審議している,ここでは確率・統計の重要性,水準5からの診断の必要性を日本からの意見として提案したい[33]。

他の事業ではbitbucket を利用しており、両者に共通な部分の標準化と、異なる部分の効率化を検討したい[34]。8 月からゼロから始めるDeepLearning 言語処理編[35] の読書会を開催する予定である[36]。また、アセンブラの理解にTOPPERS が役立つことをQiitaで展開し,docker の利用を紹介している[37]。Eclipseとdocker の連携,GitHub とdocker の連携を検討しており,クロス開発とリモートデバッグの体系化に寄与することを目指している。量子コンピュータ[38] を応用した遺伝子機能発現解析[39] を確率論と深層学習との組み合わせで検討している。


参考文献

[1] ゼロから作るDeep Learning, 斎藤康毅, オライリー,2016

[2] Deep Learning 導入のための読書会「ゼロから作るDeep Learning」, 小川清, 松原和音, 斉藤直希, SWEST 19, 2017,

https://www.slideshare.net/kaizenjapan/deep-learning-reading-club-nimbi

[3] 公設試験研究機関における深層学習に関する社会人向け研修, 斉藤直希小川清松原和音, 電気関係学会東海支部, 2017

[4] Web Isolation, RPA, Deep Learning, 量子コンピュータ,HAZOP, 小川清, 2018,

https://qiita.com/kaizen_nagoya/items/29c7bac44861503a0612

[5] 言語処理100 本ノック2015, 岡崎直観, 東北大学乾・鈴木研究室, http://www.cl.ecei.tohoku.ac.jp/nlp100/

[6] R(データマイニング入門) Raspbian(Raspberry

PI),Mac OSX, docker/ubuntu  6段階。データ取得・導入・起動・実行・描画・一括実行, 小川清, 2017,

https://qiita.com/kaizen_nagoya/items/e8417310129c2425af59

[7] 確率論及び統計論輪講, 小川清, 2016-2018,

https://researchmap.jp/josgkrcbv-2087795/#2087795

[8] RASPBERRY PI FOUNDATION, https://www.raspberrypi.org

[9] Raspberry Pi でWireshark を活用する12 の関門, 小川清, 2018, https://qiita.com/kaizen_nagoya/items/b3fa0a20855d44c3768d

[10] IoT の安全・安心設計・運用指針, 小川清,斉藤直希,電気関係学会東海支部, 2017

[11] IoT のサイバセキュリティ対策, 小川清, IoTLT, 2017

[12] ラズパイではじめるコンパクト&リアルタイムOS, 利長勇児, 本田晋也, インタフェース2018 年6 月号, CQ出版

[13] docker-toppers-fmp-rpi64, 斉藤直希, 2017,

https://GitHub.com/nmiri-nagoya-nsaito/docker-toppers-fmp-rpi64

[14] Docker をどっかーらどうやって使えばいいんでしょう。TOPPERS/FMP on RaspberryPi with Macintosh 編5つの関門, 小川清, 2018,https://qiita.com/kaizen_nagoya/items/9c46c6da8ceb64d2d7af

[15] ARM AArch64 プロセッサ向けTOPPERS/SSP カーネル, 斉藤直希, 2018,

http://dev.toppers.jp/tracuser/contrib/wiki/ssp aarch64

[16] 尻尾プロジェクト, 大谷英利也ら,2018,https://GitHub.com/H-kawamura/tail

[17] メール受信お知らせ装置, 大谷英利也, 古林昭久, 宮本達也, 河村英幸,2018, https://www.youtube.com/watch?v=gGnfRVxXmSQ

[18] スケジューラプロジェクト, 遠藤諄ら, 2018, https://GitHub.com/nagonagoya/Scheduler

[19] SPEK-IPA アセッサコース教材, 小川清, 2018

[20] ISO/IEC 15504-2,Software Engineering, Process Assessment, 2004

[21] ISO/IEC 33001, IT, Process Assessment, 2014

[22] ソフトウェアプロセスの供給者能力判定及びアセスメントキット-IPA 版(SPEAK-IPA) の改訂, 2013,

https://www.ipa.go.jp/sec/reports/201303262.html

[23] Open Process Assessment Goals for Open source project products TOPPERS/ssp, using GSN. 小川清, 2015, https://www.slideshare.net/kaizenjapan/ssp-gsn3

[24] 想定外をなくす実践安全分析(HAZOP) 2.0, 小川清,13th SWEST, 2011

[25] HAZOP 3.0 (Safety and Security), 小川清, 19thSWEST,2017

[26] 安全分析において、HAZOP,FMEA,FTA の組み合わせによるリスクアセスメントの進め方の検討, 小川明秀, 小川清, 日本学術会議安全工学シンポジウム, 2015,https://www.slideshare.net/kaizenjapan/hazopogawa2015

[27] HAZOP TRIZ 連携による交通安全分析, 小川明秀,小川清, 日本学術会議安全工学シンポジウム, 2017,

https://www.slideshare.net/kaizenjapan/road-traffic-safety-analysis-with-hazop-and-triz

[28] 安全・安心分析手法のHAZOP による統合的運用,小川明秀, 小川清, 電気関係学会東海支部, 2017,

https://bit.ly/2LeoHsj

[29] IoT/深層学習利用におけるSTAMP とHAZOP についての研究小川清, STAMP ワークショップ, IPA 2017

[30] 確率論及統計論輪講, 小川清, SWEST18, 2016, https://www.slideshare.net/kaizenjapan/ss-64890382

[31] 初等統計解析, 佐和隆光, 新曜社, 1974

[32] 確率論及統計論輪講精度より成果, 小寺浩司, 柏原一雄,石津和紀, 北野敏明, 佐藤克, 小室睦, 小川清, WOCS, 2016, https://www.slideshare.net/kaizenjapan/ss-70572076

[33] ISO/IEC 33018 process assessment, DTR, 2018

[34] GitHub, bitbucket 事始め, 小川清, 2018, https://qiita.com/kaizen_nagoya/items/198c4dc14b12e86d8b3e

[35] ゼロから作るDeep Learning 2 自然言語処理編, 斎藤康毅, オライリー, 2018

[36] 「ゼロから作るDeep Learning 2自然言語処理編」読書会に参加する前に読んで置くとよい資料とプログラム,小川清,2017, https://qiita.com/kaizen_nagoya/items/537b1810265bbbc70e73

[37] Qiita で組立語(assembler)・機械語(machine lan-guage)・CPU <アセンブラへの道>, 小川清, 2018,

https://qiita.com/kaizen_nagoya/items/46f2333c2647b0e692b2

[38] 量子コンピュータプログラムへの道, 小川清, 2017, https://qiita.com/kaizen_nagoya/items/37c90488c87bbe9f2d71

[39] 遺伝子解析、遺伝子機能解析, 小川清, 2018, https://qiita.com/kaizen_nagoya/items/150646f72c55a36f8c39


第二部 SPEAK-IPA アセッサコース

2018年7月、SPEAK-IPAアセッサコースを開催した。

上旬に、予行演習として6名、下旬に本番22名で実施した。


1.前提

10歳以上、日本語・プログラミング言語を含む複数の言語の理解についてのみです。それ以外の要件は、実際の演習の中での役割分担で対応可能だと考えています。


1.1 制約

名古屋市の組織の制約として、参加者が定員を超えた場合には、名古屋市在住または在勤の方を優先させていただきます。また中小企業支援組織の制約として、同じ地域からの応募であれば、中小企業を優先させていただきます。


2.目的

ISO/IEC 15504が、TRの段階、国際規格の段階、ISO/IEC330XXシリーズの段階と、三段階目になっています。

Process Assessment Modelが、誰が、何のために作り、どのような使い方ができるかを訓練する場が、公開の場では世界中にどこにもないという要請から実施しています。

そのため、営利で訓練されている方の、唯一の公開訓練場所として、ご利用いただいています。


3.目標

全ての参加いただいた方が、参加前と参加後の差が最大になるように運営するようにしています。


3.1 参加者の目標設定

目標設定*やる気*能力 参考文献

https://www.slideshare.net/kaizenjapan/before-study-gifu-university-2016


4. 指針


4.1 三次元以上の空間を想定する

目的、目標など、直交する三つ以上を想定し、すべての活動、成果も三次元以上で評価する。


三方よし

近江商人の三方よしを実践し、顧客、売り手、社会のいずれもの利益が均衡し、損失が一箇所にならないことを指定。


4.2 短期、中期、長期を検討する。


5 資料


面談(interview)

実現可能な改善案をついつい口走ってしまう雰囲気を醸し出す。


指摘事項

Lvevel 5.2 の図とLevel5.2 の表とが対応していない

図は成果ごとに分岐。


第三部


わかったこと

機敏だから水準4、5だけ評価すればよい。

標準プロセスは機敏(agile)


わからなかったこと

参加者の目標設定。


よかったこと

水準5から評価しないと意味がないことが浸透した。


あらためること

資料の整理方法が雑。


改めて欲しい事

W 講義中のご指示が、どこの何の部分なのかが掴めませんでした

A この記事が回答です。わかりにくかった理由は、

あちこあち、資料がばらばらしていたこと。BasicとAdvanceの両方の資料を使っていたこと。

基本資料が年度が違うものをつかっていたこと。


改めたいこと


目標設定を最初にしてもらう。

https://www.slideshare.net/kaizenjapan/before-study-gifu-university-2016


第四部資料集

対象事業は、

https://github.com/nagonagoya/Scheduler

https://github.com/H-kawamura/tail

の2つです。

対象組織は、名古屋市工業研究所

http://www.nmiri.city.nagoya.jp

と、アワーズ

http://www.hrs-grp.co.jp/index.html

動画

https://www.youtube.com/watch?v=gGnfRVxXmSQ

仕立てと着付け

https://www.slideshare.net/kaizenjapan/4bpptx

仕立てと着付け(文字ばけしている資料なので図だけ参照)

https://www.slideshare.net/kaizenjapan/ss-29237952

科学分類

https://www.slideshare.net/kaizenjapan/ss-65852140

インタビューの題材 名探偵ポワロ 第65話 複数の時計( 動画:期限付き 配信終了日:2018年8月1日

https://gyao.yahoo.co.jp/player/00569/v08532/v0828500000000527951/

いかに、相手に時間をあたえれば、そこに回答があるか。

インタビューのいろは。


SPEAK-IPA一式

https://www.ipa.go.jp/sec/reports/20130326_2.html


2012

https://www.ipa.go.jp/sec/softwareengineering/seminar/20121107-08.html


movie

2014 advance

https://sec.ipa.go.jp/seminar/20141125-26.html

https://www.youtube.com/watch?v=d0OImm3KguY


2014 basic

https://sec.ipa.go.jp/seminar/20141125-26.html

https://www.youtube.com/watch?v=xsH11jC5lmg


Spinach

https://www.youtube.com/watch?v=n4aRBB_zv2c

https://www.youtube.com/watch?v=soGOwvlbRFs

https://www.youtube.com/watch?v=0Z7oH1_cPMs


入門

https://sec.ipa.go.jp/seminar/20141027.html

https://www.youtube.com/watch?v=Qn8_yrA1BMI

https://www.youtube.com/watch?v=OVw_ZVO3sJ4


文書履歴(document history)

ver. 0.10 初稿 20180731

ver. 0.11 未記入項目の追記 20181014

ver. 0.12 docker追記