HOME > ソフテックだより > 第144号(2011年8月17日発行) 現場の声編「ソフトウェア開発の作業効率向上」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第144号(2011年8月17日発行)
現場の声編

「ソフトウェア開発の作業効率向上」

1. はじめに

ソフテックでは、ソフトウェアの開発を行っており、作業効率の向上は欠かせません。
ソフテックだより第106号(2010年1月20日発行)現場の声編「作業効率向上により品質向上を目指す」にもありますように、ソフテックでは、作業効率の向上に向けて、色々な工夫を行っています。
本号では、より実際の作業に近い形でどのような効率化が行えるかという点について紹介したいと思います。

2. ソフトウェア開発の作業として

私は、組み込みソフト開発に関わることが多いのですが、ソフトウェア開発では、基本的に以下のような順番で作業が進められています。(実際は、お見積もりやお客様とのお打合せ作業などがあるのですが、ここでは省略します。)
今となっては、当たり前に感じるものもありますが、新入社員の頃から振り返って改善してきた部分も含めて紹介します。

2-1. 設計

  • 自動化できるところを探す

    面倒な計算を繰り返す必要があるときには、Microsoft Excelを利用して、計算を自動化するのが良いです。1回しかしない計算であれば電卓などで済ませてもいいのですが、繰り返しが必要な場合はかかる時間がかなり違いますし、計算間違いも減らせます。
    以前、分周率を調整してCPUのクロック計算を行う必要があったとき、最初、サンプルをいくつか計算していましたが、一つ一つやるのではなく、一気にExcelに計算させてしまうことにより、入力値を変えるだけで済みました。その結果を一覧にしてお客様に提出した際には、お客様のほうでもそのExcelシートをもとに資料化されており、効果的に使われるようになりました。

  • フォーマットを揃える

    ソフテックではISO9001で定められたフォーマットがあり、それで設計書を作っていますが、そのような予め決められたフォーマットがあれば、作業が大分楽になります。
    また、フォーマットの部分だけでなく、表ならこういう形で、フォントをどうして・・・というパターンを予め持っておいて、コピーペーストで活用するというのも効率化に繋がります。

2-2. コーディング/デバッグ

  • ツールを効果的に使う

    作業する際は、テキストエディタ/コンパイラなどを利用しますが、それぞれのツールに効果的な使い方があります。テキストエディタであれば、自分の見やすいように、表示を変える、ショートカットキーを変えておく、などの調整をしておくことによって、スムーズに作業を進めることができます。

  • 見やすいソースコードを書く

    見やすいソースコードを書いておくと、検索性、視認性が増し、作業効率が上がります。
    以前、ソースコードに手を入れるときにあまり見やすさという部分を意識せずに対応してしまいました。
    その結果、下表のような問題が発生し、不適合が発生したときの解決や、仕様変更などにいちいち時間がかかってしまう状況になりました。

    書き方 問題点
    #if 0 〜 #else 〜 #endifで長い箇所をくくっている ソースコードを追うのに、どこを追っているのか分からなくなり、問題の箇所を特定しづらい
    不要な処理がコメントアウトされたままになっている 検索するときにコメントアウトした同じような文字が無駄にひっかかってしまう
    関数名や変数名からその用途や使い方が分からない 処理の流れを見るときに関数ごとに最後まで追うことになってしまう
    If文の条件の数が多い/ If文のネストが深い どの条件でどの処理が実行されるか分かりづらい
    不適切(読んで意味が伝わりづらい)なコメントが書かれている 処理内容を誤って解釈してしまう

    表1. ソースコードの問題点

    見やすいソースコードの書き方という点では、ソフテックだより第19号「C言語のコーディング規約による保守性の向上」や、第139号「効果的なソースコードのコメントについて」などにも記載がありますのでそちらも参考になると思います。

2-3. テスト

  • テスト構成や作業内容を明確にしておく

    テスト対象となるソフトのバージョンや、どのような構成でテストを実施したかを試験項目書にしっかり記録しておくことにより、不適合が発生したときに容易に再現させることが出来ます。そのような情報が無いと、テストについてお客様との認識も合わせられないですし、不適合が再現できないということや、原因にたどりつくのが遅くなる、ということが起こります。

  • 考える余地の無い試験項目にする

    試験項目を作ること自体に時間がかかってしまうので状況によるのですが、作業の効率化を考えた場合、試験をするにあたってなるべく考える余地の無い項目にするべきです。「あれ、これはどうやるんだっけ?」「こっちの設定はどうするんだっけ?」といった迷いが生じる時間を無くすことができます。また、上述したような、再現性の問題なども解決しやすくなります。
    また、試験項目の作成者や、経験のある人でなくとも、少ない引継ぎ時間で試験が出来るという利点もあります。

3. 作業効率と5S

ソフテックだよりでも何度か書かれていますが、5S(整理・整頓・清掃・清潔・躾)も、作業効率向上に欠かせない内容となっています。
私は、ソフテックで5S推進室員としても活動を行っています。5Sとソフト開発は中々連想しづらいですが、細かいところで効果があります。

3-1. 「整理」:必要なものと不必要なものを区別して、不必要なものは処分すること/「整頓」:必要なものをすぐ使えるように、身の回りを整えておくこと。

  • 机上の資料

    作業机に、例えば旧プロジェクトの資料が置いてあって、新プロジェクトの資料と混ざっていると、パッとどの資料を見るかに気づけなくなります。終わったものはファイリングして机の中に仕舞う、資料立てに置いておくというような対応をしておけば、後から見たくなった時にもそれほど検索し辛くなりません。
    紙のものは、もう不要という場合には、スキャナーで取り込んで、破棄することや、予めPDFのものしか用意しておかないという対応も良いと思います。

  • 作業スペースの確保

    読まない本や、不要な資料など、不要なものが机上にあると、まとまった作業スペースが取れません。特に、マイコンの組み込みソフト開発などで、基板を広げて作業することがありますが、それはまとまったスペースが無いと出来ません。(基板の接触などの事故を防ぐ効果があります)また、紙の資料を置いて作業する場合でも、置くところが無いと、その都度よけたり片付けたりする時間がかかります。上述したような、資料が混ざってしまうということも起こります。

  • PC内の整理

    PC内の整理も大切です。「デスクトップを綺麗にしておく」「どのファイルがどこにあるか分かるようにする」「不要なファイルは破棄する」のような対応をしておくことで、検索性やハードディスク容量の削減などにつながり、作業効率化が望める部分だと思います。

3-2. 「清掃」:職場および身の回りをきれいにすること。

  • こまめに清掃する

    ソフテック本社事業所では、5S活動の一環として、毎週月曜日に事業所内の一斉清掃を行っています。そのときに、各自机の清掃も行っています。
    定期的に清掃することで、作業スペースの確保や、物品の劣化や紛失を防ぐこと、綺麗な環境で作業する気分の良さというのがあります。

3-3. 「清潔」:3S(整理、整頓、清掃)を維持すること。

  • 維持をする

    定期的に見直し、維持することによって、その状態を保って作業できるようになります。忙しいと疎かにしがちですが、片付ける時間をもつことによって、気分転換になったり、効率が上がるという効果もあります。また、同じことを続けていくことにより、その「片付ける」という作業自体の効率も上がると思います。

3-4. 「躾」:決められたルールを守ること。

  • 決められたことを守る

    どのような効率化をするかは、自分で決めるところもありますので、それらを守って対応できるかどうかがポイントとなります。
    もちろん、会社のルールとして定められていることも遵守する必要があります。

  • 挨拶

    ソフテックでは、5S推進の一環として、挨拶運動を行っています。社内でも、対顧客でも、挨拶をしっかりすることによって、関係者やお客様とのコミュニケーションがスムーズになることが考えられます。ひいては、それも作業の効率化に繋がると思います。

4. 心がけること

やはり、作業しているときに、常日頃から、もっと効率化できるのではないだろうかという点を考えながら作業することだと思います。
一度慣れてしまうと、それが当たり前の作業だと思ってしまいそこから進めなくなってしまいます。
例として、以前私は長期で出張に出ていました。その間は出張清算を毎月まとめて提出する必要があり、毎回一つ一つ計算して書いていたのですが、途中から自分で予めExcelでフォーマットをまとめておいて、日数だけ入れれば出張費が分かるようにしました。月一回のことですし細かいことですが、そうやって細かいところを怠らずに改善していくことで、大きな効果が得られると考えて作業しています。

5. 終わりに

ここまで、色々と書かせていただきましたが、実際のところ自分としては徹底できていない部分もありますし、もっと効率化できる部分も今後見つかってくると思います。今回紹介した内容以外にも、色々とあると思います。
ソフトウェアは、納期や価格だけでなく、品質が最優先と言われますが、日々の作業の中で、効率化を目指していくことで、大きな向上に繋がると思います。
本号の内容が、少しでもご覧の皆様の参考になれば幸いです。

6. 付録

最後に、私が良く使用しているキーボードショートカット集を紹介します。
その他、ソフトウェア開発には特別なツールを用いることが多いのですが、それぞれに、上手い使い方があると思いますので、その辺をマスターすることが作業効率向上の近道だと思います。
また、そのようなツールによっては、自分の好きなようにショートカットを作成できたりしますので、やりやすいようにカスタマイズしていくことで、さらに作業効率の向上に近づくと思います。

Windows 基本 
[Ctrl]+C コピー
[Ctrl]+X 切り取り
[Ctrl]+V 貼り付け
[Ctrl]+Z やり直し
[Shift]+矢印 文字選択
[Ctrl]+矢印 単語ごとにカーソルを移動
[Shift]+End 行末まで選択
文字入力
[F6] ひらがな
[F7] 全角カタカナ
[F8] 半角カタカナ
[F9] 全角英数
[F10] 半角英数
Windowsのショートカット
[Win]+E エクスプローラ起動
[Win]+L コンピュータのロック
[Ctrl]+[Shift]+[Esc] タスクマネージャの起動
[Alt]+[F4] アプリケーションの終了
[Alt]+[Tab] アプリケーションの切り替え
Word [Ctrl]+B 文字を太字にする
[Ctrl]+F 検索
[Ctrl]+I 文字を斜体にする
[Ctrl]+U 文字に下線を付ける
[Shift]+Enter 段落内で改行する
[F4] 直前の操作を繰り返す
Excel [Shift]+矢印 選択幅を広げながら移動
[Ctrl]+ 矢印 入力済みセルと空白セルの境目までジャンプ
セルで文字を入力中に[Alt]+[Enter] セル内改行
[Shift]+[Space] 行選択
[Ctrl]+[Space] 列選択
[Ctrl]+[PageDown] 次のシートに移動
[Ctrl]+[PageUp] 前のシートに移動
[F2] セルを編集する
[F4] 直前の操作を繰り返す

表2. キーボードショートカット一覧

(Y.S.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ