フレームワーク開発者が考えること

はじめに

自社でライブラリやフレームワークを開発する機会があります。 ただ、この分野のエンジニアって育ちにくい状況なのかなぁと思っています。

  • 人の割り当て。具体的な開発案件の方が予算も期限もあり、割り当てられやすい
  • 開発方法の違い。具体的な開発案件に比べて抽象的で分かりにくい。

ライブラリ、フレームワーク開発に着目した書籍や情報って、案外見つけにくいと思います。 「猿でもわかるフレームワーク開発、ないかなぁ」と、数年来、書店を巡るくらいですので(笑い

せっかくなので、フレームワーク開発者としての自分の考え方やをブログに残していくことにしました。

ライブラリ、フレームワークとは何ぞや

ライブラリ、フレームワークの違いについては、以下の記事が参考になると思います。

ライブラリとフレームワークの違い

一方で、フレームワークとライブラリにはフレームワークには、いくつか間違った認識があると思います。

フレームワークへの勘違い

こういう共通ライブラリはいらない

フレームワーク開発の魅力は、具体的な各案件に隠れていた一連の処理を見つけ出し、ワークフロー化することだと思っています。

フレームワーク開発者に必要なことって何?

人が割り当てられないことや、開発方法が他の案件と異なることが、本当に開発者の育成を妨げている原因なのでしょうか?

ライブラリやフレームワーク開発者には、どのような事を求めているのでしょうか?

  1. C++, C#など、開発言語に対する知識が高いこと
  2. UMLなどでモデリングできること
  3. デザインパターンを知っていること
  4. 要件分析ができること

私の勤める会社での、ライブラリ、フレームワーク開発者に対する認識ってこんな感じだと思います。 とにかく、レベルが高くないといけない、難しいことが考えられないといけない、と。 いやいや、本当にそうなの?

自分はUMLモデリングしますが、言語知識は求めているレベルには達していないと思います。 デザインパターンは知っていますが、要件分析した上でモデリングする際に、あくまで役に立つ程度の知識です。

自分が行ってきた開発の経験上、ライブラリ開発者の必要条件とフレームワーク開発者の必要条件は違うと思います。

自分が思っている、フレームワーク開発者に必要なものは、少なくとも次の2つではないかと思います。

  1. 要件分析ができること
  2. UMLなどでモデリングできること

ただ、要件分析が、具体的な案件と違い、難しいのかもしれませんが(^_^;

これから、自分が抱えた事例をもとに、何かしら考えをまとめられたらと思います。