ソフトウェアを早く完成させる方法

2015年1月6日に投稿 → に更新

「プログラミングは楽しいけど、完成までに時間がめっちゃ掛かるのが辛いところだよなぁ…。」
「作りたいソフトウェアのアイデアはいっぱいあるのに、時間が足りない。もっと早く作れたらなぁ…。」

一般的にソフトウェア開発には多くの時間と労力が必要とされますが、やり方を工夫すれば個人や少人数で短期間にソフトウェアを完成させることは可能です。

そのやり方について紹介します。

コード量を減らす方法

既存のソフトウェアやサンプルをベースにして作る

ソフトウェア開発のスピードを上げるのに最も重要な考え方は「一から全部自分で作らない」ということです。

既存のソフトウェアやサンプルコードに流用できるものがあったら積極的に流用しましょう。

既存のソフトウェアは完成されたソフトウェアなので基本的なバグのないコードです。これを流用することでコードを書く手間とテスト・デバッグをする手間が省けます。

Ruby on Railsなどのフレームワークに備わっているScaffoldと呼ばれるプログラムの自動生成機能も同様の目的で使えます。

ライブラリ・フレームワークを使う

流用できるソフトウェアがない場合も一から全部自分で作ろうとしてはいけません。

使用てきそうなライブラリ・フレームワークを使いましょう。ライブラリ・フレームワークもまた完成されたソフトウェアなので基本的なバグのないコードです。

同様にこれを流用することでコードを書く手間とテスト・デバッグをする手間が省けます。

コーディングのスピードを上げる方法

頭の中でロジックを完成させてからコードを打ち始める

経験上、ロジックを考えながらコードを書いていくよりも、ロジックを頭の中で完成させてからコードを書いた方が結果的に早く正解のコードが書ける場合が多いと感じます。

頭の中で完成させるというのは、本当に頭の中だけで完結させなければいけないわけではなく、紙にメモを書きながらとか、簡単な仕様書を書くとか、大まかなロジックをコードのコメントに先に書くとかでもOKです。

今からこういうコードを書くんだというイメージを明確にすることが重要です。

ただし、初めて使う技術の場合はこの方法が使えません。ちょっとコードを書いて動作確認して、という試行錯誤が必要になるからです。

タイピングスピードを上げて集中力、思考スピードを上がる

タイピングを早くすれば、それだけ早くソフトウェアは完成します。といってもソフトウェア開発の大半はタイピングではなく、思考やデバッグ作業なので、タイピングを速くしたところで短縮できる時間はたかが知れていると考えられがちですが、タイピングスピードを上げると、作業に勢いがついて、集中力や思考スピードも上がります。

速くタイピングするには集中する必要があります。そして、脳の活動に勢いが付きます。すると思考スピードも上がります。脳の活動モードのギアを上げるようなイメージです。

人間はリラックスしている時に集中力が上がると言われているので、タイピングスピードを上げる際にリラックスして打つイメージを持つと良いでしょう。

コンマ一秒でも早くタイピングしようとして緊張してはいけません。早く打つというよりも流れるように止まることなく滑らかに打つイメージです。キーボードはカタカタ叩くのが気持ちよくて穏やかで楽しいイメージでやるとうまくいきます。

そのような集中状態に入るとタイピングミスが減ります。タイピングミスが少ないからストレスも減ってよりリラックスして集中状態に入るというよい循環がなされます。

仕様を早く決める

仕様も既存のソフトウェアから流用する

プログラムのコードを一から全部自分で作るのではなく、既存のソフトウェアを流用するのと同様にソフトウェアの仕様も既存のソフトウェアのものを流用すると早く正しい仕様を完成させることが出来ます。

仕様が出来あがっても後で間違いが発覚するということはよくあります。それくらい正しい仕様を作るというのは難しいことです。

しかし、既存のソフトウェアの仕様は完成されています。間違いを見つけては直しという試行錯誤が繰り返された結果、完成された仕様だからです。なのでコードだけでなく仕様も既存の完成されたものから流用できないかを考えてみましょう。

例えば、多くのソフトウェアは一覧画面の要素をクリックすると詳細画面が出て詳細画面の更新ボタンを押すと更新画面が出て、更新画面の更新ボタンを押すと確認画面が出て確認画面の確定ボタンを押すと更新完了画面が出るというようなつくりになっています。

このような基本的な仕様は大抵のソフトウェアで一緒なので、流用できます。他のソフトウェアと仕様が似ているということはユーザーの利便性にもつながります。他のソフトウェアで覚えた操作感をそのまま使えた方が覚えることが少なくて楽です。

斬新なアイデアのソフトウェアの場合、既存のソフトウェアに似たものがない場合があります。その場合にも全部が一致してなくても部分的には同じ仕様があるはずなので、そこを取り入れましょう。

今までにない要素の部分は自力で試行錯誤しながら考えるしかないですが、本当にまるっきり新しいソフトウェアというのはなかなかないので、思考の抽象度を上げて既存のソフトウェアとの共通点がないかを探せばきっと流用できる仕様が見つかるはずです。

仕様策定の締め切りを決める。

どんな仕事においても締め切りを決めることは重要です。締切がないと作業スピードは上がらないし、決断できないからです。

「今日決めなくてもいいや」と考えたら今日決まりません。また、仕様を決めるには決断が必要です。

「もう少し考えたら、もっと良い仕様が浮かびそうだ」と感じてずるずると決められない場合があります。締切があることで、その時点のベストな仕様だと、割り切って決断することが出来ます。

工夫次第で可能性は無限大!

何事も工夫すれば改善できる所はあるものです。

とはいえ、自分一人で組織の生産性を上げることはできません。ここで挙げたようなアイデアが受け入れてもらえないような場合は、転職を考えてみても良いかもしれません。私の場合、転職によって、仕事の幅を広げ、スキルアップも年収アップも出来ました。

転職活動すると、いろいろな会社や仕事があることを知れて、それだけでも人生の可能性が大きく広がると思います。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

メールアドレス (必須)

相談内容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 - 仕事術