検索
連載

試行錯誤で分かったスパゲッティコード撃退法システム開発プロジェクトの現場から(1)(2/2 ページ)

開発現場は日々の仕事の場であるとともに、学びの場でもある。先輩エンジニアが過去に直面した困難の数々、そこから学んだスキルや考え方を紹介する。

PC用表示
Share
Tweet
LINE
Hatena
前のページへ |       

鍵はエレガントさ

 「WindowsのアプリケーションならVisual Basicだろう」という安直な発想で開発環境を決め、本とヘルプを片手にいざ作り始めてはみたものの、ソースコードはどうしてもスパゲッティコード(複雑に絡み合って整理されていないソースコード。バグの温床)に……。たった数日前に自分の手で書いたはずのコードなのに、なぜか読み返しても意味不明という状態なのです。

 失敗の大きな一因は、開発環境の理解不足でした。私は環境がどんな機能を提供しているかを十分に把握しないまま、コーディングに入っていました。結果として、意味もなく複雑なコードになってしまっていたのです。

 数百行のコードを書き終え、後になってよくよくヘルプを読み返してみると、同じことがたった1行のコマンドで実現できることに気付いたりするわけです。「早くいってよ!」と誰もいない空間に向かって叫びつつ、苦労して書き上げたコードを自ら消すという悲しい瞬間を何度か経験しました。

 そんな失敗を繰り返すうち、シンプルで無駄のないソースコードほど可読性やメンテナンス性が高く、バグも出にくいことが実感として分かってきました。数学の問題を解くとき、解答がエレガント(この場合、無駄がなく洗練されているというニュアンス)であればあるほど、論理的な誤りを生みにくいといわれるのと同じです。

 「ユーザーにとって必要なのはシステムであり、ソースコードではない」。極論すれば、ソースコードを1ステップ増やすことは、その分品質を下げることにつながるということに気が付いたのです。

「いま」やるべきこと……とにかく引き出しを増やす

 エレガントなソースコードを書くためには、開発環境が持つ機能を十分に把握し、それらを使いこなすノウハウが必要です。とにかく自分の中に、知識とノウハウの引き出しをたくさん増やさなければということに思い至りました。

 その後私は何かを調べるとき、調べようとしている事柄そのものだけでなく、周辺の情報も含めて網羅的に覚えるようにしました。また、新しく分かったことはすぐに実機で挙動を確かめ、理解を深めるようにしました。幸い、当時はそんな時間的なゆとりがあったのです。

 そんなふうに試行錯誤を重ねていった結果、だんだんと知識が身に付き、開発方針も見えてきました。

  • 開発環境はVisual Basicではなく、Accessとする
  • レポートはExcel形式で、Accessから自動作成する
  • Access、Excelの持つ標準機能を活用し、コーディングは極力行わない

 途中いろいろと苦労はあったものの、このシステムは数カ月でどうにか完成し、運用にこぎつけることができました。

このままではいけない

 簡単なものとはいえ、とにかく1つの仕組みを作り上げたということで、周囲から「開発ができる人」と見なされ、次々と案件を依頼されるようになりました。会社の仕事以外のちょっとした開発を手伝い、感謝されたこともありました。

 苦労しながらも自分で考えた仕組みを作り上げるという達成感を何度か味わい、周囲からも評価されたことから、今後もこの仕事を続けていく自信がついた1年間でした。何もない環境からの開発を経験したことから、足りない知識を自発的に収集するという姿勢と、ITにかかわる者として基本的・汎用的な知識を身に付けることができました。

 しかし、いくつかの開発案件をこなしたとはいっても、あくまでも自己流で、1人で仕事をしているにすぎません。プロジェクトという組織があり、開発工程が確立されている環境で仕事の進め方を覚えていかなければ、スキルの発展だけでなく社会人としての成長にも限界があります。

 「このままではいけない。現状に満足していたら今後の進歩はない」。社会人生活が2年目に入ろうとするころ、私は早くもキャリアを考えるうえでの分岐点にいたのです……。

筆者紹介

アクセンチュア・テクノロジー・ソリューションズ

稲井紀茂

1972年生まれ。神戸生まれの大阪育ち。大阪でプログラマ、システムエンジニアとして約7年を過ごした後、2003年にアクセンチュア・テクノロジー・ソリューションズに入社し上京。主に流通業・製造業の販売管理・SCM系システムの構築に携わり、現在に至る。



「システム開発プロジェクトの現場から」バックナンバー

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る