エンタープライズで、COBOL資産なども保有されている大手のユーザー様 向け開発基盤導入の提案活動に関っていると、やはり、業務優先で、「
技術的なことを覚えたくない。」と言うか、「
手順が変わるようなことはしたくない。」と言うケースが多いようで、オープン化によってテクノロジの高度化・複雑化が進む中、色々と変則的な質問や要求を受けたりします。
いろいろヒアリングなどを行った結果、経験値的にも、大手SIerのように数百画面に及ぶ業務アプリケーション開発の技術サポートや、プロジェクトのコントロールをした経験などは無い(ことが多い)ので、開発基盤の技術的な部分は良く認識されておらず、ブラック・ボックスに見えていることで、危惧の念を抱くようです(また、実際に、低品質で使い難い開発基盤に苦しめられた経験を持っているケースも多いようです)。
<参考>
しかし、保守・運用に係る点については、技術も業務とかなり密接に関係しており、また、開発基盤上のフレームワークやパッケージ・マネージャーだけでなく、DevOpsのコード、ビルド、テスト、パッケージ、リリース、コンフィギュレーション、モニターなど、様々なカテゴリで技術的な進化を観測できる分野でもあります。
なので、開発だけでなく、保守・運用を標準化・簡素化する技術を追求しつつ、且つ、それをユーザー様に提案することで、ユーザー様にも、これら技術の重要性(有用性)を理解して貰い、「
技術的なことを覚えたくない。」というスタンスから変化を促すことが効果的では無いか?と思います。
...と言う事で、今後とも、開発手順だけではなく、保守・運用に係る、リリース、デプロイなどの手順についてもプロジェクト・テンプレートのビルドシステムに取り込んで、ドンドン、モデル化していきたいと考えています。以下の辺りが重要になってくると思います。
<重要なテクノロジ>
エンタープライズ分野の保守・運用に係る、業務とかなり密接に関係しているテクノロジ(このように列挙すると、やはり基盤系は重要なんだな。と、改めて思います)。
- プロジェクト・テンプレート開発
- Webアプリ
- WebAPI
- Desktopアプリ
- スマホ・ネイティブ
- 認証基盤との連携
- パッケージ・マネージャー活用
(パッケージ開発を伴う) - スクリプティングによる各種 自動化
- (レグレッション)テスト自動化
- CI / CD基盤の導入
- Open PaaS(Docker, Kubernetes)の導入
<やらざるを得ないテクノロジ>
フロントエンド技術は、Webアプリケーションのパフォーマンスの問題を解決し、エンド・ユーザへの「露出・リーチ」を高める、開発技術の良し悪しを除いて、無視できない存在となっている。
- スマホ・ネイティブ
- ハイブリッド・アプリケーション
露出・リーチの観点でSPAは必須の技術ではない。 - Cordova / PhoneGap
- PWA(Progressive Web Apps)
<重要ではないテクノロジ・技術>
振り返って、エンタープライズ分野で個別の代替できるテクノロジ(ユーザ・インタフェースや、データ・アクセスなど)は、STP的な観点も加味すると、重要性は低くなる傾向が強い。または、実際の問題を解かない、多くの問題のテンプレートに見えるものを解決する技術も重要性は低い。
※ STP : Segmentation、Targeting、Positioning
- 他で代替できるテクノロジ
汎用的なツールであって、STP的にハマれば使えばイイ。そう考えると、特段、意識的に取り組まなくても、自然に導入される筈。 - (流行りの)開発言語
- Entity Framework
- UWP (Universal Windows Platform)
- 問題のテンプレートに見えるものを解決する技術
マーケティングに利用されることが多く、このような技術に技術者目線で取り組んでしまうと時間を無駄に浪費することになることも(過去15年に渡る)経験上、多い。 - オブジェクト指向 (OOAD: Object-Oriented Analysis and Design)
- サービス指向アーキテクチャ (SOA: Service-Oriented Architecture)
- マイクロサービス(Microservices)
某弊プロジェクトでは、「
(レグレッション)テスト自動化、CI/CD基盤の導入」、「
スマホ・ネイティブやハイブリッド・アプリケーションの認証含めたテンプレート化」の辺りが「道半ば」なので、来期以降この辺りを重点的に進めていきたいと考えています。