システム開発を成功させるアプローチをまとめてみた

2015年11月17日に投稿 → に更新

空と大地

「システム開発っていつもろくでもないことが起こるよなぁ…」
「予定外の仕様変更とかお客さんと揉めたりとか…」
「何かうまくやる方法はないかなぁ…」

私も15年以上ITエンジニアをやってますが、システム開発ってホント大変ですよね。
予定通りに行かないことが多いので、心配が絶えません。なんとかしてリリースまでこぎつけるとホッとします。

全てがスムーズにいくとまではいかなくても、出来るだけうまくいくアプローチを取りたいところです。

そこで今回はシステム開発を成功させるアプローチまとめてみました。

1. 開発プロセスでトラブル回避!

なんといっても開発の進め方は重要です。大きく分けて2種類あります。

伝統的なウォーターフォールモデル

システムの要件全てを洗い出してから、基本設計 → 詳細設計 → 実装 → 単体テスト → 結合テスト → システムテスト → リリースするものです。

水が上流から下流に流れるように進むことからウォーターフォールモデルと言われています。

業務システム開発では多くの企業がこのやり方を採用しています。

アジャイルプロセスでリスク軽減

ウォーターフォールモデルがシステム全体をいっぺに作るのに対して、アジャイルプロセスでは、開発範囲を数回に分けて開発を進めます。例えば20個の機能があるシステムの場合、最初の開発(イテレーションと呼ぶ)で5個の機能を要件定義 → 基本設計 → …システムテストまで進めます。そこでシステムをリリースして使い始めても良いですし、全ての機能を作り終えてからリリースしてもかまいません。

開発範囲を狭めて何度もイテレーションを繰り返していくことで最終的に全ての機能を実装するというアプローチです。

なんでこんなやり方をするかと言うと、ウォーターフォールモデルのように初めからすべての機能を作ろうとすると、後工程になって前工程の間違いが分かって仕様変更が発生した場合に、手戻りが大きくなってしまうからです。開発範囲を絞った中で仕様変更が起きても、手戻りは比較的少なくて済みます。

アジャイルプロセスは自社サービス開発のプロジェクトでよく採用されています。

2. フレームワークで生産性と規律を上げる!

フレームワークとはソフトウェアの骨組みです。例えばWebアプリケーションを作ろうとした場合、あるURLにリクエストが来たら、このプログラムを動かすといったルーティング処理のようなお決まりの処理手順があります。これらの手順を簡単に実装する仕組みがフレームワークには用意されています。

そろぞれのプログラミング言語には有名なフレームワークがあります。

  • Ruby → Ruby on rails、Sinatra、Padrino
  • Java → Spring Framework、Struts、JSF、Wicket、Tapestry
  • PHP → Symfony、Laravel、CakePHP、CodeIgniter、ZendFramework(言語はPHP)

フレームワークを使うと、

  • お決まりの処理をフレームワークがやってくれる
  • フレームワークの流儀に沿った規律あるプログラム構成で開発できる

などの利点があります。

3. 自動テストで品質とテスト効率を上げる!

システム開発のトラブルは大きく分けると2つあります。

  1. 顧客の要求と予算・期間が合わない
  2. 開発したソフトウェアの品質の低さ

1は顧客とのコミュニケーションの問題です。前述した通り、アジャイルプロセスを採用することで一度に行う開発範囲を狭めることで、顧客の要求のぶれを小さくできます。

2はテストの問題です。テストの質を上げれば、ソフトウェアの品質を上げることが出来ます。

テストの品質を上げる方法の一つとして自動テストがあります。

自動テスト = プログラムをテストするプログラムを作ること

テストは通常、人の手で行われます。実際のそのシステムが使用されるのと同じように操作して、正しく動くことを確認します。

テストが終わった後に仕様変更があってプログラムを改修したらまた同じテストをしなければなりません。何度もやるのは面倒だからと省いてしまうと、バグが取り残されてリリース後に発見されるなんてことになりかねません。

そこで、プログラムをテストするプログラムを作成し、プログラムにプログラムの正しさを確認させます。

JavaではJUnitというテスティングフレームワークを使うと簡単にテストをするプログラムを書くことが出来ます。

↑これが納品するプログラムだとして、これをテストするプログラムが↓です。

一度テスト用のプログラムを作ってしまえば、プログラムを実行するだけで何度でも繰り返しテストを一瞬で行えるようになります。

提案が通らない場合は?

この記事で紹介したアプローチを取れば、システム開発を以前よりもずっとスムーズに進めることができるはずですが、このような取り組みを提案しても通らない場合があります。

「今までと同じでいいよ。」
「そんなことやって失敗したらどうするの?責任とれるの?」

こんなことを言われた経験があるのではないでしょうか?私も何度も言われました。

そこで、私はきれいさっぱり、転職しました!

転職してみて分かったのは、自分に合った良い会社は存在するということです。もっと早く決断すればよかったなと思っています。

転職活動はやってみるとかんたん!

私自身3回ほど転職してるんですが、思ってたよりかんたんで、転職エージェントを使ったらあっという間でした。

エージェントが応募先候補の選出から、面接の日程調整までやってくれるので、こちらから動かなくても半分くらい自動的に進む感じで楽でした。しかも今は好景気で売り手市場なので転職するのにちょうど良い時期です。

レバテックキャリアっていうエージェントがおすすめです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

なので、レバテックキャリアのホームページ見てみてください。「ホントだ、美人じゃん♪」ってきっと思うはずです笑

職務経歴書の作り方がわからないという方は、私の使っているテンプレートを使ってみて下さい。

地方在住の人にも使える転職エージェントがある!

レバテックキャリアは東京・大阪近郊向けサービスなので、地方在住の方には全国の求人を扱っているワークポートがおすすめです。利用者の評判がめっちゃいいのでホームページ是非見てみてください。

人脈がなくてもフリーランスになれる!

フリーランスになりたい方にはギークスジョブがおすすめです。人脈がなくてもギークスジョブに登録するだけで案件を紹介してもらえます。案件の希望(どんな技術を使っているか、残業が少ないこと)等も聞いてくれるので、やりたい仕事が出来ます。対象地域は東京・大阪・名古屋・福岡近郊です。

「派遣社員」なら正社員とフリーランスのいいどこ取り!

フリーランスになりたいけど、確定申告とかめんどくさいなという方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるのでいいと思います。

私の先輩でフリーランスになった後、派遣社員になった人がいるんですが「自由かつ煩わしい手続きがなくて最高」って言ってました!リクルートITスタッフィングに登録するだけでかんたんに派遣社員になれます。

私(やまろう)への相談メールも募集中

転職や仕事術、勉強法等について質問や相談がありましたら、以下のメールフォームからぜひご連絡ください。
経験者ならかんたんに解決できる相談って多いのでお気軽にどうぞ!こう書いてもなかなかメールくれる人って少ないのでホント気軽にメールしてくれると嬉しいです。

メールアドレス (必須)

相談内容

たまに間違ったメールアドレスを入力されていて返信できない場合があります。一週間経っても返信がない場合、メールアドレスを確認の上、再度送信をお願いします。

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

ホームページを見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはワークポートというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『ワークポート』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 仕事術 , , ,