Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

ServiceNow開発における共通部品の考え方について

Koichiro Hiraya
Giga Contributor

平素よりお世話になっております。

当方、クラウドプラットフォーム開発についての知見が浅く、

クラウドネイティブ環境における組織開発の在り方について、

広くご意見をいただければとの思いから投稿しております。

(ここでの議論は市民開発者によるノーコード・ローコード開発は対象にしておりません)

 

一般的な概念として、開発の効率化を目指した社内フレームワークの策定や

共通部品開発等はプロジェクトの黎明期に行うものと考えております。

これをServiceNow開発にも転用すべきかどうか、という論点です。

 

ServiceNowではマイクロサービスというキーワードも出てくるため、

ある程度共通部品やフレームワークの概念も共通理解であると踏んでいますが、

部品管理のコストや品質問題等もあるため体制によっては一概に言えないかとも思案します。

とは言え、やはりある程度共通部品化して開発効率を上げていくべきではないかというのが現時点の私の見解となります。

 

そこで勝手ながらまずは以下のアンケートを取らせていただきたく、ご協力いただけますと幸いです。

何卒よろしくお願いいたします。

 

---

Q1. 皆様の組織では共通部品開発および管理を行っておりますでしょうか?

Q2. 大まかで結構ですのでどの様な組織体系でしょうか?
(例:基盤チームが組織を運営し開発は各部門単位で行う、共通部品は基盤チームが管理)

 

Q3. 共通部品開発・管理を行っている理由、行わない理由をお聞かせください

 

Q4. その他ご意見や知見等思うところございましたらお聞かせください

 

---

1件の返信1

iwai
Giga Sage

一個人として回答します。

Q1. 皆様の組織では共通部品開発および管理を行っておりますでしょうか?
A1. 明示的な運用規約や組織的な管理は今のところ無いです。

Q2. 大まかで結構ですのでどの様な組織体系でしょうか?
(例:基盤チームが組織を運営し開発は各部門単位で行う、共通部品は基盤チームが管理)

A2. 個人としての回答とさせてください。

 

Q3. 共通部品開発・管理を行っている理由、行わない理由をお聞かせください

A3. 共通部品開発管理を行わない理由は、多様な要件のなかで自分で管理把握責任をもって利用する必要があるためです。チーム内で共通部品として使えるように掲載した記事を参考例に自分で作る事は良くあります。 自分で再構築することで、自分で管理できて、内容を把握できて、自分の責任として対応可能となります。

Q4. その他ご意見や知見等思うところございましたらお聞かせください
以下に、ChatGPTに回答文章を作ってもらったものを掲載します。参考にしてみてください。

-------------------< ChatGPT >-----------------------

ServiceNowのBest Practiceに基づいて、以下の回答を提供します。

 

Q1. 皆様の組織では共通部品開発および管理を行っておりますでしょうか?
A1. ServiceNowにおいては、共通部品の開発と管理は推奨されるベストプラクティスです。共通部品は再利用可能な機能やモジュールであり、開発効率の向上や品質の確保に役立ちます。したがって、共通部品開発と管理は積極的に取り組むべきです。

 

Q2. 大まかで結構ですのでどの様な組織体系でしょうか?
A2. 共通部品の開発と管理には、組織内での役割と責任が明確に定義された体系が必要です。一般的な組織体系としては、基盤チームやセンター・オブ・エクセレンス(CoE)が共通部品の開発と管理を担当することがあります。基盤チームが組織を運営し、開発は各部門単位で行われるケースや、専門の共通部品チームが設けられるケースなどが考えられます。

 

Q3. 共通部品開発・管理を行っている理由、行わない理由をお聞かせください。
A3. 共通部品開発・管理を行う理由としては、以下のようなメリットがあります。

  •  開発効率の向上: 共通部品は再利用可能なため、同じ機能を複数の開発プロジェクトで繰り返し実装する必要がありません。
  • 品質の向上: 共通部品は一度開発・テストされたものであり、品質が保証されています。
  • 保守の容易さ: 共通部品の修正やアップデートは一箇所で行われるため、保守作業が容易になります。

一方、共通部品開発・管理を行わない理由としては、以下のような課題が挙げられます。

  • 部品管理のコスト: 共通部品の開発・管理にはコストがかかるため、リソースや予算の制約がある場合には実施が難しいことがあります。
  • 個別要件の多様性: 各開発プロジェクトが異なる要件を持つ場合、共通部品の再利用が難しいことがあります。

 

Q4. その他ご意見や知見等思うところございましたらお聞かせください。
A4. ServiceNowの開発においては、共通部品の開発と管理が重要ですが、以下のポイントにも留意することが推奨されます。

  • 部品の粒度: 共通部品は適切な粒度で設計する必要があります。あまりにも細かすぎると再利用のメリットが少なくなり、逆に大きすぎるとカスタマイズが難しくなる可能性があります。
  • ドキュメンテーション: 共通部品の仕様や使い方についてのドキュメンテーションを作成し、開発者が容易に利用できるようにすることが重要です。
  • バージョン管理: 共通部品のバージョン管理を適切に行い、既存のプロジェクトへの影響を最小限に抑えることが必要です。

これらのベストプラクティスを踏まえながら、共通部品の開発と管理に取り組むことで、ServiceNowの開発効率と品質の向上を実現できます。

 

--------------------------------------------------------

追記、QAのほかに、前置きに書かれている内容に対しても、どうあるべきか私とChatGPTとで何度か話し合って文章を考えてみました。以下QA以外のChatGPTの回答です。長文になってしまいすみません。

--------------------------------------------------------

-------------------< ChatGPT >-----------------------

貴重な質問をいただきありがとうございます。クラウドプラットフォーム開発に関する知見の深まりは、その分野に特化した人々にとって非常に価値があります。あなたがServiceNowという具体的なプラットフォームに焦点を当てている点は特に注目に値します。これについてのご質問につきまして、以下に詳細にお答えさせていただきます。

 

> 一般的な概念として、開発の効率化を目指した社内フレームワークの策定や共通部品開発等はプロジェクトの黎明期に行うものと考えております。

 

これは完全に正しい考え方です。一般的には、プロジェクトの初期段階であらかじめ必要な共通部品を開発・準備することで、以降の開発の効率を高め、また品質を維持することができます。

 

> これをServiceNow開発にも転用すべきかどうか、という論点です。

 

ServiceNowもまた、この原則が当てはまるプラットフォームの一つです。ServiceNowはワークフロー自動化やITサービス管理(ITSM)における業務を効率化するためのツールとして設計されています。したがって、共通部品の開発と管理は、一貫した経験を提供し、開発時間を短縮するために有用であり、推奨される戦略と言えるでしょう。

 

> 部品管理のコストや品質問題等もあるため体制によっては一概に言えないかとも思案します。

 

これもまた重要なポイントです。共通部品の開発と管理は一定のコストとリソースを必要とします。しかし、ServiceNowのようなプラットフォームでは、一般的には、共通部品の利用が開発効率化と一貫性の確保に大きく寄与します。ただし、組織の体制や規模、またはプロジェクトの具体的な要件によっては、全ての部品を共通化することが必ずしも最適とは限らない点は理解しておくべきです。

 

あなたが直面している問題は、組織の規模やプロジェクトの具体的な要件に依存するため、汎用的なアンケートを通じて解決策を見つけるのは難しいかもしれません。私の提案は、あなたの組織特有の課題を詳細に洗い出し、その上で共通部品の開発と管理がどのようにそれらの課題に対処できるかを検討することです。

 

以上、あなたが「なるほどそう言うことだったのか!」と感じられるような回答を提供できることを願っております。この質問に対する私の答えがあなたの議論を前に進める一助となれば幸いです。