net用アプリケーション フレームワーク “open...
TRANSCRIPT
.NET用アプリケーション フレームワーク
“Open 棟梁”のオープンソース化について
1
自己紹介
西野大介(にしのだいすけ)
経歴
date content
2000年04月 日立システムエンジニアリング→日立システムアンドサービス入社
2000年08月 Windows DNAベースの大規模Webアプリケーションの基盤開発に従事
2003年04月 日立システムアンドサービス 生産技術部へ異動
Microsoft系技術のサポートエンジニアを担当
2007年09月 社内ツール、.NET用アプリケーション・フレームワーク“棟梁”のリリース
2010年10月 合併 (日立ソリューションズ) 生産技術センタへの異動
2014年04月 • Open棟梁リリース(日立グループで初めてのオープンソース化)
• OSSコンソーシアムに「.NET開発基盤部会」を立上げ
専門 Microsoft系技術のサポート .NET開発 Windowsプラットフォーム構築
• AD, IIS, NLB,WSFC, SQL Server. • 仮想化・クラウド (Hyper-V, Azure) • パッケージ (Dynamics CRM, AX)
主要プロジェクト 金融業 保険代理店システム 金融業 投資銀行営業支援用システム 運輸・交通業 車両情報システム 自動車・保険B2Bデータ交換システム 各業種・業務向け自社パッケージ(金融・医療・自治体等) 開発基盤ソリューション、有償サポート 社内設備(クラウドを活用した検証環境高速デリバリ)開発
2
1. Open棟梁とは?
フレームワーク中心の“ノウハウ蓄積”・“二度手間防止”を目的とした 『社内ツール』
• フレームワーク、共通部品、開発ツールから、利用ガイド、チュートリアル、 サンプルプログラム、『プロジェクト・テンプレート』等を整備している。
• 特定プロジェクトのアーキテクチャに合わせてカスタマイズされたオンライン処理やバッチ処理の『プロジェクト・テンプレート』を事前に準備、展開することで、開発プロジェクトの迅速な立ち上げを可能にする。
案件毎のアーキテクチャを反映した 『プロジェクト・テンプレート』
カスタマイズ可能レイヤのカスタマイズ
カスタマイズ可能な標準化フレームワーク ( P / F / D層 の構造と実装箇所の規定)
共通部品/開発支援ツール (通信制御、動的パラメタライズド・クエリ)
各種ドキュメント ・ 利用ガイド ・ チュートリアル ・ サンプル.etc
ランタイム フレームワーク (e.g. ASP.NET, WPF, WCF, ADO.NET)
ランタイム ( .NET CLR )
3
2. オープンソース化の全体像 (1)
2014年04月23日にオープンソース化 (以下OSS化と略す)。 構想からオープンソース化まで約2年の歳月を要した。
~ 以下、OSS化のタイムテーブル ~
• 2012年6月頃- 2013年4月頃: OSS化についての構想を始める。 社内の製品化ワーキング・グループに掛け合うが最初は相手にされない。 周囲にOSS化が必要な旨を説く。
• 2013年04月18日 - 08月19日: 直上上司、幹部を説得するための「OSS化シナリオ」の作成。
• 2013年08月22日 - 11月27日: 事業部長の合意を得て、社内の関連部署と効果・リスクを協議し社内手続きを進める。
• 2014年01月23日 - 04月08日: OSSコンソーシアムに準備ワーキング・グループを立上げる。
• 2014年04月21日:役員決裁の完了。
• 2014年04月23日: OSSコンソーシアムがGithubへソースコードをアップロード。 弊社からオープンソース化のニュースリリースを配信。
• 2014年06月18日: OSSコンソーシアム、準備ワーキング・グループでセミナーを開催。 • 2014年06月27日:.NET開発基盤部会、 OSSコンソーシアムの総会にて承認。
4
2. オープンソース化の全体像 (2)
長考や他を頼るのは、無意味なので、上司説得から開始するのが良い。
費した 努力
上司説得 合意を得る。
法律や、内規の壁(詳しくは後述)
開示作業
OSSコンソーシアム Fork案の提案で解決 (詳しくは後述)
全体で2年の歳月 約1年 約1年
幹部説得 合意を得る。
シナリオ作成
後は、関連部門のチェックを クリアして行けば良い。
経過時間
5
3. オープンソース化に至った動機 (1)
「古臭い“生産性向上のための社内ツール”のままでは、 私・自部門・弊社の技術力は、なかなか成長できない。」
• マーケティング不要の社内市場。
• 市場価値が評価されにくい (適用 n 件 → 予算 n M¥)
• 参考:CEDEC2014 「 (社内)ライブラリを作ってはいけない ~それでも作りたいあなたへのアドバイス~」 http://www.slideshare.net/yoshihirokurohata/cedec2014-2
これらは、日本メーカ製品や、SIer(受託開発)の問題と似ている。 個人の価値が、大企業の組織力に簡単に勝てないために起こる。
• 製品+SEの顧客囲い込みという日本メーカのスキーム (製品単独では売れない日本メーカ製品ができあがる)
• 御用聞き止まり(適切な提案ができない)、To-Beを描けない。 マーケティング戦略がない。従って、差別化要素もない。
• しかし、多様性の無い組織は、変化に適応できず全滅してしまう。
6
モノづくりのスマイル・カーブ (モノづくりの価値が下がり続けている)
• 一方で、受託開発事業は危機的状況、 出典:田中克己の針路IT - 受託ソフト開発会社は、もう終わり!:ITpro http://itpro.nikkeibp.co.jp/article/Watcher/20120530/399413/
• 産業を中心にオープン系技術+内製化の動きもある。 出典:積水化学工業、オープンソースと内製化 http://www.publickey1.jp/blog/14/2_aws_summit_tokyo_2014.html
• こういった中でも、なかなか変化を受け入れない。 価値をつくり込み、提案・マネタイズするサイクルを回すのが苦手
• … と言うことで、 技術開発、ナレッジ蓄積、案件導入にさまざまな課題がある。
3. オープンソース化に至った動機 (2)
7
3. オープンソース化に至った動機 (3)
• そこで考えた解決案は、 技術的な価値をつくり込み、提案・マネタイズするサイクルの構築。 → 社外にも提供して技術力をアピールし、受注を増加させる。
オープン化の中で優位性無し。 オープン化でメーカ系に優位性ないでしょ? 名内泰藏氏の言う「オープン化という名のブラックボックス化」
QCD”F”を向上させます。 品質、生産性(コスト・納期) + 柔軟性。 Java Web 一辺倒の中、適切な提案が可能。 Web API、リッチ・クライアント、クラウド(Paas) .etc
差別化します。 どんなことをしたら、さらなる差別化になるか? これだけやり切ってるオレオレ・フレームワークもないだろ。 OSS化したら良いかも。… 当時はその程度の考え。
開発基盤は製品化と比較しOSS化が有利である。 (OSS化は、それ自体が目的ではなく、目的達成のための手段)
8
4. オープンソース化のポイント (how-to)
• 一人で悩まない。まずは上司へ相談する。 一人で悩むと、悶々とした日々を過ごすことになる。 当事者でない第三者を巻き込んでも、うまく行かない。 説得は粘り強く。メリットが勝れば基本的に説得は可能。
• どのような理屈で企業へ貢献できるか?を適切に説明する。 メリット(効果)・デメリット(リスク)の整理と説明。 個人的な本音と建前は使い分けることが重要。
(例:個人的には有償サポートを標榜していたとしても、現状のSI事業の ドメインから乖離しているため、ここからは企業への貢献を説明できない)。
• 必要に応じて、専門家に相談する。
輸出管理: 日立では社外にソースコードを公開する場合、 禁輸国からのアクセス制御が必要という”内規”があった。 (これでは、Github等のリポジトリにソースを公開できない)
財務処理: このため、寄贈という案が浮上したが、寄贈では経理処理が複雑になる。
長々と悩んだが解決しなかったため、OSSコンソーシアムへ、 寄贈の相談を目的に訪問。→ Fork案の提案で解決することとなった!!
9
4. オープンソース化のポイント (precondition)
• 無事にOSS化できた理由
Microsoft系技術はメーカ系SIerでは “少数派”のため利害調整が容易だった。
Javaでは、利害調整ができず、 OSS化できなかったかもしれない。
社外(他社)に類似品が存在せず、 社内関係者の説得に有利だった。
• OSS化が難しくなるケース
利害調整:既に事業化されフィーを とっているプロダクトは調整が難しい。
内務規程:大きな企業はリスク管理のための ステップが多いためOSS化は大変らしい。
10
4. オープンソース化のポイント (else)
• その他、思うこと。
組織的にやらなかったから、良いものになったのかもしれない。 「コーポレートカルチャー」では、あまり良いものができないのかもしれない。
そういうことで生産年齢人口を増やす男・女のダイバーシティも良いけど、 「プロフェッショナル・カルチャー」という、ダイバーシティも重要だと思う。
出典:細谷功の逃げるか、残るか、老化企業での身の処し方 第10回 下流は組織力だが上流は個人の能力:Itpro
http://itpro.nikkeibp.co.jp/atcl/column/14/557503/081200003/
「コーポレートカルチャー」 と 「プロフェッショナルカルチャー」 「上流はタダである」 という 「常識」
野心的になることは馬鹿げている。ロケットを月に送り出す必要はない。
出典:「10倍プログラマ」の神話、 Ruby on Railsの生みの親が語った高い生産性のカギとは!
https://newspicks.com/news/807878/
世の中、出来の悪いものはあまりに多いし、 改善すべき点というのはたくさんあるので、 ほんの少し良くするだけでいいんですよ。
11
5. オープンソース化後の状況 (1)
まだまだ、社外からは信用がないし、 QCD向上の範囲は使わなくても作れる。 ・・・ OSS化したら終わりではなく、OSS化してからが始まり。
• 状況:案件への導入
• 案件導入数は前年比150%増 Dynamics CRM / AXなどの作らない開発も増加中。 そんな中、2015年は15件/年 程度の案件へ導入 社外公開で、社内からある程度の信頼が得られた。
• コンペ受注 複数社コンペに勝つ (各社、差別化の要素がないため)。
• 社外からの引合いは増加、受注は微増程度 Twitterで話題になるが、まだ、お客様には届いていない。 引合い数社、受注済み2社→まだまだ、これからの状況。
12
5. オープンソース化後の状況 (2)
• 課題:価値をつくり込み、提案・マネタイズするサイクルを回すこと。
原価低減の生産技術、お金をかけてR&D等は時代遅れ?
自分の技術をマネタイズしていかないと …。 社外引合・有償サポートの拡大 ソリューション・メニューの準備
他社にない、差別化できる機能を追加していく。 ASP.NET MVC, SPA対応テンプレート / チュートリアル WIFを使用した、IDフェデレーション対応テンプレート
自動生成機能の強化により、内製支援ツール化する。
テクノロジ・リサーチ ASP.NET SignalR .etc .NET Core 5 & ASP.NET vNext 対応 (?)
SaaS開発 (?)
13
5. オープンソース化後の状況 (3)
• コミュニティ・活動 ( 宜しければ部会に参加して下さい ♨ )
OpenTouryoProject https://github.com/OpenTouryoProject OpenTouryo, Documents, Templates リポジトリ CloudOS リポジトリ、SampleProgram リポジトリ
.NET 開発基盤部会 - OSSコンソーシアム Blog
http://www.osscons.jp/dotNetDevelopmentInfrastructure/Blog/ Open棟梁 Wiki
http://opentouryo.osscons.jp/ マイクロソフト系技術情報 Wiki
http://techinfoofmicrosofttech.osscons.jp/
2014年10月22日 : Open 棟梁 01-50 リリース http://www.osscons.jp/joi94ey46-537/ Open棟梁概要説明 01-50
http://www.slideshare.net/daisukenishino/open-01-50-40474003
Open棟梁機能紹介 01-50 http://www.slideshare.net/daisukenishino/open-0150
14
END
※ Open棟梁は、弊社の商標です。 ※ その他記載の会社名、製品名は、それぞれの会社の商標もしくは登録商標です。