システム開発にフレームワークを多用するメリット・デメリット

システムを開発する上で、現在多くの会社が利用している「フレームワーク」。 エンジニアの求人を見ていても、 「〇〇のフレームワーク経験者歓迎」 のような文言を見ます。 非常に多くの会社が活用しているフレームワークですが、実際にはどのようなメリット・デメリットがあるのでしょうか?

今さら聞けないフレームワークとは

今さら聞けないフレームワークとは

今さら聞けないフレームワークとは そもそも、フレームワークとは何なのでしょうか? フレームワークとは、様々なシステムを開発する上で、共通する概念や仕組みをあらかじめ用意し、それを活用して開発するための土台になります。 例えば、世の中には様々なシステムが存在しますが、多くのシステムで ・ログイン機能 ・メール送信 ・入力フォーム表示 ・データベース登録 などが行われます。 これらの機能をどのようなシステムでも汎用的に使えるように、事前に用意されたものがフレームワークになります。 フレームワークは、各々のプログラミング言語ごとに存在し、有名な所ではCSSのブートストラップや、PHPの Laravelなどがあります。

フレームワークでシステム開発をするメリット

フレームワークでシステム開発をするメリット

フレームワークでシステム開発をするメリット では、これらのフレームワークを使って開発することには、どのようなメリットがあるのでしょうか?

開発工数を減らすことが出来る

フレームワークを活用することで、これまで1から開発していた機能を、ある程度利用する事が出来ます。 「ある程度」と表現したのは、各々のシステムによって仕様が異なるため、カスタマイズが必要なケースが多いからです。 既にある機能を使うので、慣れていればかなり短い工数で大きなシステムを開発する事が出来るでしょう。

バグを減らすことが出来る

開発工数が減るのと同時に、既に完成された機能を利用するため、 「テストのし忘れや機能の追加漏れ」 も減らす事が出来ます。 例えば電話番号が正しい桁数で入力されているかや、ログインに失敗した際の動きなど、ちょっとした機能も、多くなってくれば「実装漏れ」が出てくるでしょう。 フレームワークを利用することで、そういったバグや実装漏れが少なくなるというメリットがあります。

誰でもメンテナンスがしやすい状態に

フレームワークをきちんと活用すれば、人によって組み方に大きな差が出なくなります。 例えば、同じプログラムを作るにも、オブジェクト指向を使ってカプセル化していく人と、1つのソースに必要な内容を全て書こうとするプログラマー。 こういった人によって組み方が違ったり、未熟でわかりにくい組み方しか出来ないプログラマーなど、品質に差がある場合、フレームワークを利用することである程度の同じ構造で作ることが可能になるでしょう。 それは同時にメンテナンスのしやすさにも繋がってきます。

フレームワークでシステム開発をするデメリット

フレームワークでシステム開発をするデメリット

フレームワークでシステム開発をするデメリット では、反対にフレームワークを利用する事にデメリットが有るのでしょうか。

フレームワーク特有の書き方や概念を学ぶ必要がある

フレームワークは、その言語を習得するのとは別に、フレームワーク独特の書き方や概念を学ぶ必要があります。 そのため、PHPのスクラッチ開発が出来る人を入れたとしても、そのフレームワークの書き方を学ぶために多少なりとも期間が必要ですし、プロジェクトによって利用するフレームワークが違っている場合には、別途勉強が必要です。 人をしっかりと育てられる環境があれば良いですが、人の入れ替わりが激しい場合には注意が必要でしょう。

使用中のフレームワークがマイナーになった時に経験者を探すのが難しい

特定のフレームワークを利用し続けると、もしもそのフレームワークがメジャーではなくなった際、経験者を募集することが難しくなります。 もちろん、即戦力ではなく育てる前提があれば良いのですが、出来れば即戦力を雇いたい企業としては特定のフレームワークに偏ることがリスクとなるでしょう。

開発者が理解せずに開発する可能性も

フレームワーク自体は、開発を非常に簡単にしてくれます。 しかし、その一方で簡単だからこそ 「何をどの様に行っているのか」 を理解せずに開発する人が出てくるでしょう。 そうなると、不要なデータを受け渡しし、それが後々バグに繋がる・・・などのリスクがあります。 しっかりとした日本語ドキュメントのあるフレームワークなら、勉強することも出来るでしょうが、中には日本語ドキュメントが少ないフレームワークも存在します。 そういった中で、技術者によって差が出てくる可能性もあるでしょう。

独自フレームワークの開発も検討を!

実際、多くの企業がフレームワークを利用しているとは思いますが、複雑な機能を追加しようとすれば、一部分だけフレームワークから外した開発をしているケースも多いのではないでしょうか。 フレームワークは、基本的な機能や汎用性の高いものに関しては網羅しているでしょうが、細かい仕様に耐えきれない可能性もあります。 そのため、一部分だけをフレームワークの構造から外しての開発・・・という可能性があるのです。 開発規模が大きくなればなるほど、そういったフレームワーク外の開発が増えてくる事もあり、フレームワークを利用する事のメリットが薄れてくるケースもあります。 そのため、長期的に見た場合、自社に必要な物を集めた独自フレームワークの導入を検討するのも一つの手段ではないでしょうか。 もちろん、簡単なことではないでしょうし、それ自体の開発やテストに多くの工数が必要になるかと思います。 しかし、しっかりとした独自フレームワークを開発すれば、最終的に自社の開発工数の削減とともに、しっかりとしたドキュメントが存在するフレームワークが作れます。

本気のシステム開発はAMELAに

本気のシステム開発はAMELAに

本気のシステム開発はAMELAに AMELAは、システム開発からIT人材の派遣まで、幅広いIT事業を展開しています。 「独自フレームワークを作っていきたいけど、自社の人材だけでは開発力に不安がある」 そういった不安も、弊社に相談頂ければ解決するケースが多いです。 これからの時代は、システムを単に作るだけではなく、 「どの様に作るのか」「何のために作るのか」 ということが非常に重要になってきます。 多くの知識と経験を持ったAMELAだからこそ出来る提案がありますので、是非ご相談頂ければと思います。