「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>生産技術#ga6cf401]] *目次 [#i0858fcf] #contents *概要 [#q81b9af8] テクノロジやエンジニアリング関連のベネフィット創出プロジェクト、プログラム、~ (...ある意味、ソフトウェア生産技術、開発基盤開発プロジェクト)の結果の過去情報から教訓をまとめる。 *区分毎の事例 [#o9707793] **UIサブシステム関連 [#n64b9cb6] ***概要 [#s5ecae36] -過去事例を見てみると、セグメント、ターゲットにハマっているかが重要と言える。 -また、昨今では、Webサービスなどで利用されることが≒トレンドに乗る条件と~ なっているため、IDEなどにロックインされていないことが重要になってきている。 ***事例 [#q051fa50] -VB6のフォームアプリケーション~ (その後の.NETのWindows Forms)~ --非常に高い生産性で、エンプラで多用されている。 --UIコントロールをD&D、ダブルクリック、コードの実装~ と非常に直感的な手順で、簡単に習得・実装できるのが当時ウケた。 -Webアプリケーション(MPA → AJAX) --エンプラのWebアプリでは、コレがデファクト。 --また、Webサービスのスタートアップなどでも~ コレの技術で開発されるケースは、まだまだ多い。 --方式 ---MVC~ 柔軟な対応が可能なMVCが流行っている。 ---Web Forms(JSF)~ 柔軟な対応が可能なMVCが流行ってはいるが、~ セグメント的にはハマる分野もまだまだ多い。 -Webアプリケーション(SPA)~ --「狭い帯域幅でもコンテンツにユーザがリーチできるように。」~ 的な要件コンテキストで採用されるUI技術であると考える。 ---故に、エンプラの生産性にリーチしないことがある。 ---しかし、ミドルウェアなどの管理画面には使用される。 --スタートアップ後の成功したWebサービスなどで利用される。~ (如何にエンドユーザにリーチするか?的な要件のコンテキストで) -スマホ(ネイティブ)アプリ --基本的にSPAと同じだが、 --ネイティブなので、 ---性能的に優れている。 ---ネイティブ・アクセス的に優れている。 ***参考 [#b5f79ba2] -[[OSSコンソーシアム > 開発基盤部会 Blog>#r9304761]] **データ・アクセス関連 [#a3229460] ***概要 [#o1db43a0] -過去事例を見てみると、セグメント、ターゲットにハマっているかが重要と言える。 -色々なタイプのORMが出てきたが、結局は、要件に沿って使い分けている。 ***事例 [#d46c3a9e] -データ・プロバイダ --[[ADO.NET>https://techinfoofmicrosofttech.osscons.jp/index.php?ADO.NET%E3%83%87%E3%83%BC%E3%82%BF%E3%83%97%E3%83%AD%E3%83%90%E3%82%A4%E3%83%80]] -ORM --[[Dapper>https://techinfoofmicrosofttech.osscons.jp/index.php?Dapper]] --[[Entity Framework>https://techinfoofmicrosofttech.osscons.jp/index.php?Entity%20Framework]] ***参考 [#s610c241] -[[OSSコンソーシアム > 開発基盤部会 Blog>#ofc376b1]] **テスト関連 [#md75863a] ***概要 [#qcf72f84] -過去事例を見てみると、セグメント、ターゲットにハマっているかが重要と言える。 -テスト関連は、プラクティスなので、そのプラクティスが誕生したセグメント以外にはハマらない可能性がある。 ***事例 [#w28fa9e7] -CI / CD -テスト自動化 --TDD(テストコードを書く系) --UIオートメーション系 ***参考 [#g6db6743] -[[OSSコンソーシアム > 開発基盤部会 Blog>#v38d1037]] **プライベート・クラウド関連 [#q6ccfa68] ***概要 [#t8b82fb3] -SI事業者でアレコレ検討がされた。 -ハイブリッド・クラウド・ポータルは上手く行かない。~ ハイブリッド・クラウドに投資できる企業が出現しないので。 -最終的に、メガ・クラウド謹製の垂直統合に落ち着く感じ。 --Azure Stack --AWS Outposts ***事例 [#u63ec1e9] -ハイブリッド・クラウド・ポータル的な。 --ハイブリッド・クラウド・ポータル(社内みたいな) --一昔前、[[PrimeCloud Controller>http://www.primecloud-controller.org/]]というOSSがあった。 -担ぐ系 --プラクラ ---VMware vCenter Server ---Microsoft System Center ---Cloud Stackなど --PaaS ---OpenShift ---[[Cloud Foundry]] -OSS系 --Open Stack --[[Kubernetes]] ***参考 [#m7507f7c] -[[トレンドだからと言って成長していない事業に投資してもダメ>#a4347025]] -[[OSSコンソーシアム > 開発基盤部会 Blog>#z10a67f1]] **アーキテクチャ関連 [#oc680a0c] ***概要 [#f0152c3f] -書籍レベルにまでなればいいが、組織内での取り組みは微妙。 -デザインパターンなど空気的な存在になってようやく効果が出てくる。 -マイナーな状態ではナカナカ効果が出てこない~ (テンプレートやIDEなどのサポートがない状態では難しい)。 ***事例 [#f705c292] -オブジェクト指向 分析/設計/プログラミング(OOA、OOD、OOP)~ OOD、OOP辺りは空気化してイイ感じになっている。OOAは普及しなかった感。 -サービス指向(SOA)、マイクロサービス~ しかし、SOAやマイクロサービス系は、理論をこねくり回したわりに、~ Webメソッド実装できりゃーエエとかそのレベルになっている。~ -ドメイン駆動設計(DDD)→ クリーンアーキテクチャ~ DDDも≒クリーンアーキテクチャ位で落ち着くのが良いのかも知れない。 -クラウド・アーキテクチャ --主語がデカイのでは?オンプレをクラウドにもっていくなら変更は不要 --ただし、要件次第で、以下のような対応が必要になるケースは多い。 ---クロスドメイン認証に対応 ---WebAPIやDBのリトライポリシー策定&実装 ***参考 [#f373795a] -[[ソフトウェアアーキテクチャを学ぶために - kawasima>https://scrapbox.io/kawasima/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%82%92%E5%AD%A6%E3%81%B6%E3%81%9F%E3%82%81%E3%81%AB]]~ -[[OSSコンソーシアム > 開発基盤部会 Blog>#v2a747a2]] **プロセス関連 [#p77523bf] ***マネジメント・プロセス [#z2f50f65] -[[PMP]]の改訂履歴を参照すると良い。 -基本的に大きな変化はない。 -近年の大きな変更は、 --[[適応型ライフサイクル>#h70a735e]]が、PMBOKガイド6版で大幅に強化された。 --[[組織的プロジェクト・マネジメント(OPM)>#e015e825]]の重要性が増している。 ***エンジニアリング・プロセス [#gbd7bd5e] -特に下流の開発方法論については、大きな変化は見られない。 -[[2001~2010あたりで>生産技術#z41fbc62]]大方、Fixした感がある。 ***要件定義と適応型ライフサイクル [#h70a735e] -要件に係る上流に関しては、近年重要性を増している。 -そういう動きが、[[2010以降の生産技術>生産技術#o8f3316e]]で見られる。 ***[[マーケティング]] や [[組織的プロジェクト・マネジメント(OPM)>PMP:共通 - 組織的プロジェクト・マネジメント(OPM)]] [#e015e825] 事業戦略と組織戦略 に関しては、近年重要性を増している。 **, etc. [#v4971429] 必要に応じて追記していく。 *教訓登録簿 [#v6317282] **基本的にトレンドは無視できない。 [#jcda0365] 以下のような話で、結局、トレンドは無視できない。 -トレンドに乗ってない技術は、disconになってサポートが切れる。 -クラウド、スマホなどの浸透により、デマンドサイドのニーズとしても増えてくる。 ***トレンドだからと言って成長していない事業に投資してもダメ [#a4347025] -例えば、垂直統合型のソフトウェア産業が斜陽化しているとする。 -そんな中で、クラウド(プラットフォーム)が出てきて、~ 焦って、垂直統合型スキームのまま投資しても勝てる訳が無い。 ***トレンド無視のニッチ系は事業と深い関連が必要だが短期的な話。 [#he152541] -トレンドに乗っていない、ニッチである場合、 --[[トレンドを無視して良いケースもある>#jcda0365]] --ただし、事業と深い関連が必要になる。 -つまり、 --トレンド ≒ 外部要因(環境要因)であるが、 --ニッチ ≒ 内部要因(自社事業要因)である >と言うことになる。 -また、 --ニッチは、短期的には重要である。 --トレンドは、長期的に重要性を増して行く。 >と言う傾向がある。 **ライフサイクルは早くなってきている(同時に注力ポイントでもある)。 [#e462cdf0] ***ライフサイクルの変化 [#u47332cc] SoRだけでなく、SoEでのIT利用が進み、 -一応、技術は(基礎部分というより、応用部分が)、進歩していると言える。 -その結果として、ランタイム系のライフサイクルは短くなっている。 -代表的な例が、Javaや.NET Coreの長期商用サポート(LTS : Long Time Support)の提供。 ***注力ポイントの変化 [#l21a3fac] -早いライフサイクルの中で、廃れない技術を見極め、ピックアップすることの重要性が高まっている。 --ただし、[[SPA系のフレームワーク>(MV*) UIフレームワーク]]の栄枯盛衰をみると、予測不可能と思われるケースも多い。 --事業的に、急いでいなければ、慌てず待つ。と言う選択肢を選択する事も重要になる。 -同時に、 >[[エンジニアリング・プロセス>#gbd7bd5e]]などの、~ 変化の乏しい分野は、相対的に注力ポイントではない。 >と言える。 **競争のレイヤは上がっていく(スタックは積み上がっていく)。 [#v24d450c] ***ハード → ソフト [#g7c60602] -ハード --オンプレ --仮想化 --クラウド -ソフト --OS → ミドル → 上モノ --IaaS → PaaS → SaaS ***インフラ → フロントエンド [#p0d40d3b] -インフラ →(仮想化/クラウド)→ アプリ -バックエンド →(PaaS/SaaS)→ フロントエンド ***参考 [#de345746] -「青銀行の勘定系をFirebase前提で構築できるか?」 - たなかこういちの開発ノート~ http://tanakakoichi9230.hatenablog.com/entry/20200129/1580288556 **ゲームチェンジやパラダイムシフトは起きる。 [#h805552a] ***概要 [#le788997] 以下のような変化の積み重なりで当然、起きうる。 -[[基本的にトレンドは無視できない。>#jcda0365]] -[[ライフサイクルは早くなってきている(同時に注力ポイントでもある)。>#e462cdf0]] -[[競争のレイヤは上がっていく(スタックは積み上がっていく)。>#v24d450c]] ***事例 [#h3e20546] -ソフトはハードのオマケ → ハードはソフトのオマケ。 -垂直統合事業 → オープン・アーキテクチャ → 垂直統合事業 -プロダクト → OSS -オンプレ → クラウド ***参考 [#iaac4523] -[[OSSコンソーシアム > 開発基盤部会 Blog>#lbda79e4]] **天地人が揃う、時勢を読む必要がある。 [#d33150b6] ***概要 [#d0047075] -色々、時勢を読む必要がある。 --少子・高齢化社会 → 生産年齢人口の減少 --国際競争力の低下(新興国が伸びた) --終身雇用の崩壊 ---メンバシップ雇用による新50代問題の発生。 ---メンバシップ雇用からジョブ型雇用へ。 -天地人 --孟子の「公孫丑章句上」の中の一節「天時不如地利。地利不如人和」に由来 ---天:天の時=タイミング ---地:地の利=おかれた環境 ---人:人の輪=人心の一致 --意味としては、 ---「天<地<人」だが、人心の一致には天・地も必要な訳で、 ---戦に勝つことや物事を成功させるには(天地人の)3条件が必要。 ***参考 [#c9e16c40] -[[OSSコンソーシアム > 開発基盤部会 Blog>#l7b775fa]] **, etc. [#t18ae29c] 必要に応じて追記していく。 *教訓のサマリ [#p20d6db6] サマリすると、大枠で以下のように言える。 **ミクロではセグメント&ターゲットが重要 [#wa8f66be] ミクロな技術のフィッティングでは、その技術が、~ 適切にセグメンテーションされたターゲットにフィットするかどうかという話。 **マクロではゲームチェンジやパラダイムシフトを考慮 [#o1c17e41] マクロな事業戦略と組織戦略では、~ -ゲームチェンジやパラダイムシフトに備えた対応が必要になる。 -変化が起き無い分野は斜陽の分野であり、注力ポイントではない。 **戦略性が低いと、Buzzに乗った予算認可やカタストロフィ芸になる。 [#j6383cc5] 論理的ではない未来予測位ありがちなパターン。 -[[Buzzに乗った予算認可>#fe1c98cd]] --自分ではあまり考えていないが、Buzzってるので、予算認可され易い。 --予算認可されたはいいが、あまり考えていないので結果が出ず苦しむことも。 -[[カタストロフィ芸>#nc13707e]] --自身のスタックが浅い人がカタストロフィを期待して行う希望的観測。 --基本的に、実績の無い人が大口を叩くだけで終わることになる。 的な芸風 **適切な、[[組織的プロジェクト・マネジメント(OPM)>PMP:共通 - 組織的プロジェクト・マネジメント(OPM)]]を行う。 [#h60b67da] ベネフィット創出の対象は、[[プログラム・マネジメント>PMP:共通 - OPM - プログラム・マネジメント]]になる。 *参考 [#h5787631] **[[トレンドの分析(シェア)>シェア]] [#u85984c4] **[[マイクロソフト系技術情報 Wiki > VS系コンテンツ>https://techinfoofmicrosofttech.osscons.jp/index.php?VS%E7%B3%BB%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84]] [#b24f9f96] ***[[UI系>https://techinfoofmicrosofttech.osscons.jp/index.php?VS%E7%B3%BB%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84#k830afa2]] [#p575c895] Subsystem & Framework -Windows Form vs WPF -ASP.NET Web Forms vs ASP.NET MVC -従来型のWebアプリ vs SPA(Single-page Application) -様々なSPAフレームワーク -ネイティブ vs ハイブリッド ***[[開発ツール>https://techinfoofmicrosofttech.osscons.jp/index.php?VS%E7%B3%BB%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84#tf2b4c64]] [#z5a84f86] -IDE vs RAD vs EUC vs Template & Package (開発支援ツールの種類) -ADO.NET vs ORM (Entity Framework, Dapper) -SVN vs Git vs TFS ***[[その他>https://techinfoofmicrosofttech.osscons.jp/index.php?VS%E7%B3%BB%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84#q4904875]] [#de0c47e2] -ASP.NET Forms認証 vs ASP.NET Identity **[[OSSコンソーシアム > 開発基盤部会 Blog>https://www.osscons.jp/dotNetDevelopmentInfrastructure/Blog/]] [#z1fe1ae5] ***[[生産技術界隈でBuzzったケド、ダメだった...>https://www.osscons.jp/joy5hs42t-537/]] [#fe1c98cd] ***[[カタストロフィ的芸風について考える。>https://www.osscons.jp/jo4lb1fp9-537/]] [#nc13707e] ***UIサブシステム関連 [#r9304761] -[[結局、WebAPIのフロントエンドUIの使いドコロってさぁ。>https://www.osscons.jp/jorwrrjui-537/]] -[[マイクロソフトのUIサブシステムが流行らない説の源はどの辺なのか?>https://www.osscons.jp/jopcgrqrt-537/]] ***データ・アクセス関連 [#ofc376b1] -[[エンプラ界隈でのEntity Framework離れ進んでますね。>https://www.osscons.jp/jowlrb9pr-537/]] ***テスト関連 [#v38d1037] -[[SIでCIやテスト自動化が、なかなか上手く行かない理由>https://www.osscons.jp/jo46pq2ts-537/]] -[[CIを軽くdisったケド、ライブラリ開発でプラクティスを実践している件。>https://www.osscons.jp/jorwiwj0d-537/]] ***プライベート・クラウド関連 [#z10a67f1] -[[Open PaaS系が某弊界隈で微妙だった件について分析してみた。>https://www.osscons.jp/joqtakc2c-537/]] -[[共通基盤の類は仕訳時?となると、ラストマン戦略が有効では?>https://www.osscons.jp/jobq5vsln-537/]] ***アーキテクチャ関連 [#v2a747a2] -[[ガイドライン適用の際はフィッティングが重要な件(リトライ実装の例>https://www.osscons.jp/joww525n6-537]] -[[生産技術界隈でBuzzったケド、ダメだった...>#fe1c98cd]] -[[カタストロフィ的芸風について考える。>#nc13707e]] -[[DDDに関して思った事(難し過ぎるとOOADの二の舞になるよ。的な話)。>https://www.osscons.jp/jok7exzd5-537/]] ***ゲームチェンジやパラダイムシフト [#lbda79e4] -クラウドネイティブ開発の浸透 --[[オレオレPKCE実装とマイクロサービスやクラウドネイティブ開発の浸透>https://www.osscons.jp/jom4szpyu-537/]] --[[クラウドネイティブ開発の浸透と、トークン・チェックのカスタマイズ>https://www.osscons.jp/jospv68kt-537/]] -[[ソフトウェアの生産技術と研究開発の歴史と、その融合。>https://www.osscons.jp/jow7n5vww-537/]] -[[オンプレSIが無理ゲーに成り行く世界観。>https://www.osscons.jp/jo2qr4k3i-537/]] -[[デマンドサイドのほうが適切な技術選定が可能である。と言う問題。>https://www.osscons.jp/jokn58aq6-537/]] -[[パッケージとSaaSで、基盤に対するオーナーシップに差がある感。>https://www.osscons.jp/jolohrqmd-537/]] -[[ReactにFragmentのPKCEを実装してて思った事、要件のコンテキストが違う。>https://www.osscons.jp/jo8x24w2i-537/]] -[[今更、受託開発からサービス開発へのゲームチェンジの話>https://www.osscons.jp/jop9sn62a-537/]] ***時勢を読む [#l7b775fa] -[[「減らすが勝ち」(価値)の社会になる気がする今日この頃。>https://www.osscons.jp/joz073qqz-537/]] -[[最近の若者が、「会社との距離が重要。」と言う様に...、>https://www.osscons.jp/jo8rdw2qs-537/]] -[[世代を問わず求められていることは、専門性とオーナーシップかも?>https://www.osscons.jp/joz1aahtt-537/]] -[[プロジェクトのプログラム化により淘汰されるサプライサイド>https://www.osscons.jp/jo9ht61ag-537/]] -[[SI事業って今後どうなっていくのか?を考えてみた。>https://www.osscons.jp/jo2v990s6-537/]] -[[基幹系システムのスクラッチ開発が出来なくなる時代が来る(かも)。>https://www.osscons.jp/jom64y1yw-537/]]