ソフトウェアを早く完成させる方法
「作りたいソフトウェアのアイデアはいっぱいあるのに、時間が足りない。もっと早く作れたらなぁ…。」
一般的にソフトウェア開発には多くの時間と労力が必要とされますが、やり方を工夫すれば個人や少人数で短期間にソフトウェアを完成させることは可能です。
そのやり方について紹介します。
Contents
コード量を減らす方法
既存のソフトウェアやサンプルをベースにして作る
ソフトウェア開発のスピードを上げるのに最も重要な考え方は「一から全部自分で作らない」ということです。
既存のソフトウェアやサンプルコードに流用できるものがあったら積極的に流用しましょう。
既存のソフトウェアは完成されたソフトウェアなので基本的なバグのないコードです。これを流用することでコードを書く手間とテスト・デバッグをする手間が省けます。
Ruby on Railsなどのフレームワークに備わっているScaffoldと呼ばれるプログラムの自動生成機能も同様の目的で使えます。
ライブラリ・フレームワークを使う
流用できるソフトウェアがない場合も一から全部自分で作ろうとしてはいけません。
使用てきそうなライブラリ・フレームワークを使いましょう。ライブラリ・フレームワークもまた完成されたソフトウェアなので基本的なバグのないコードです。
同様にこれを流用することでコードを書く手間とテスト・デバッグをする手間が省けます。
コーディングのスピードを上げる方法
頭の中でロジックを完成させてからコードを打ち始める
経験上、ロジックを考えながらコードを書いていくよりも、ロジックを頭の中で完成させてからコードを書いた方が結果的に早く正解のコードが書ける場合が多いと感じます。
頭の中で完成させるというのは、本当に頭の中だけで完結させなければいけないわけではなく、紙にメモを書きながらとか、簡単な仕様書を書くとか、大まかなロジックをコードのコメントに先に書くとかでもOKです。
今からこういうコードを書くんだというイメージを明確にすることが重要です。
ただし、初めて使う技術の場合はこの方法が使えません。ちょっとコードを書いて動作確認して、という試行錯誤が必要になるからです。
タイピングスピードを上げて集中力、思考スピードを上がる
タイピングを早くすれば、それだけ早くソフトウェアは完成します。といってもソフトウェア開発の大半はタイピングではなく、思考やデバッグ作業なので、タイピングを速くしたところで短縮できる時間はたかが知れていると考えられがちですが、タイピングスピードを上げると、作業に勢いがついて、集中力や思考スピードも上がります。
速くタイピングするには集中する必要があります。そして、脳の活動に勢いが付きます。すると思考スピードも上がります。脳の活動モードのギアを上げるようなイメージです。
人間はリラックスしている時に集中力が上がると言われているので、タイピングスピードを上げる際にリラックスして打つイメージを持つと良いでしょう。
コンマ一秒でも早くタイピングしようとして緊張してはいけません。早く打つというよりも流れるように止まることなく滑らかに打つイメージです。キーボードはカタカタ叩くのが気持ちよくて穏やかで楽しいイメージでやるとうまくいきます。
そのような集中状態に入るとタイピングミスが減ります。タイピングミスが少ないからストレスも減ってよりリラックスして集中状態に入るというよい循環がなされます。
仕様を早く決める
仕様も既存のソフトウェアから流用する
プログラムのコードを一から全部自分で作るのではなく、既存のソフトウェアを流用するのと同様にソフトウェアの仕様も既存のソフトウェアのものを流用すると早く正しい仕様を完成させることが出来ます。
仕様が出来あがっても後で間違いが発覚するということはよくあります。それくらい正しい仕様を作るというのは難しいことです。
しかし、既存のソフトウェアの仕様は完成されています。間違いを見つけては直しという試行錯誤が繰り返された結果、完成された仕様だからです。なのでコードだけでなく仕様も既存の完成されたものから流用できないかを考えてみましょう。
例えば、多くのソフトウェアは一覧画面の要素をクリックすると詳細画面が出て詳細画面の更新ボタンを押すと更新画面が出て、更新画面の更新ボタンを押すと確認画面が出て確認画面の確定ボタンを押すと更新完了画面が出るというようなつくりになっています。
このような基本的な仕様は大抵のソフトウェアで一緒なので、流用できます。他のソフトウェアと仕様が似ているということはユーザーの利便性にもつながります。他のソフトウェアで覚えた操作感をそのまま使えた方が覚えることが少なくて楽です。
斬新なアイデアのソフトウェアの場合、既存のソフトウェアに似たものがない場合があります。その場合にも全部が一致してなくても部分的には同じ仕様があるはずなので、そこを取り入れましょう。
今までにない要素の部分は自力で試行錯誤しながら考えるしかないですが、本当にまるっきり新しいソフトウェアというのはなかなかないので、思考の抽象度を上げて既存のソフトウェアとの共通点がないかを探せばきっと流用できる仕様が見つかるはずです。
仕様策定の締め切りを決める。
どんな仕事においても締め切りを決めることは重要です。締切がないと作業スピードは上がらないし、決断できないからです。
「今日決めなくてもいいや」と考えたら今日決まりません。また、仕様を決めるには決断が必要です。
「もう少し考えたら、もっと良い仕様が浮かびそうだ」と感じてずるずると決められない場合があります。締切があることで、その時点のベストな仕様だと、割り切って決断することが出来ます。
工夫次第で可能性は無限大!
何事も工夫すれば改善できる所はあるものです。
とはいえ、自分一人で組織の生産性を上げることはできません。ここで挙げたようなアイデアが受け入れてもらえないような場合は、転職を考えてみても良いかもしれません。私の場合、転職によって、仕事の幅を広げ、スキルアップも年収アップも出来ました。
転職活動すると、いろいろな会社や仕事があることを知れて、それだけでも人生の可能性が大きく広がると思います。