のんちゃん。あーい。
by tsuyodrive
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


カテゴリ:仕事( 15 )

VBA楽しいな?

Excel VBAでにわかプログラミングをする必要があったので、興味と実益とを兼ねて取り組んでみた。Cプログラムとシェルで書かれていたものを全てVBAに置き換えたのだった。

知人から参考書を借りたり、Webで検索したりMSDNを覗いたりとあれこれ試行錯誤した末、目的のプログラム完成にあと一歩というところまで到達した感あり。まだまだ捨てたもんじゃないと実感した。

ただ、Excelのバージョンによって、動くメソッドが違うということもあり、現場と自分の使っているExcelの違いによって動かないということもありえるので、少し慎重にやる必要があるかも。

開発トピック:
●Cでいうところのcontinueがない。
 色々調べたが、見つからなかった。誰か教えて。
 結局If文のネストを1個掘り下げることで対応。しかし醜い。

●行の概念があるので、任意に開業して書こうとする場合は「_」(アンダースコア)をつける必要がある。
 めんどいな。

●If文やループ文はCのように{や}がないため、Viviで括弧の対応付けを確認しながら描いた処理をレビューするということができない。
 いままで基本的にやってたことができないと、細かいことながらえぇ~!!って思ってしまう。とりあえず、コメントに@@とか書いて、これを検索したりしながらでかいIf文とかを読むように工夫。あ、Ifというステートメントをそのまま検索すればいいのかもしれん(^^;

●オンラインヘルプがしょぼい。
 なんか目標の定まっていない文書というか、書式がバラバラですぐに目的とするものを探し出すことができない。
 とりあえず、オブジェクトブラウザからヘルプを見るのが、もっとも手っ取り早い参照方法だと知った。

●テキストビューがホイールマウスのホイールでスクロールしない。
 なんていい加減なつくりだ。

●Visual Studioと操作性の統一性があまりない。
 例えば、ステップ実行はVSがF10キー、ExcelVBAがF8キーである。
 F5キーの役割は一緒。なんで??

つづきは次回。
[PR]
by tsuyodrive | 2004-12-01 01:55 | 仕事

オブジェクト指向で考える。

3年前から本格的にオブジェクト指向の世界で仕事してきました。
私の仕事はCATIA V5のカスタマイズであり、基本的にVC++とCAAとCOMと呼ばれるコンポーネント技術(?)を使っての開発。
もうバリバリオブジェクト指向なのです。

ところが。

できあがった設計書や、ソースについてよーく考えてみました。確かに設計書ではクラス設計書、フィーチャ属性表、インターフェース仕様書などを作っています。ソースもコメントは//だし、オブジェクトをnewしたり、フィーチャからQueryInterfaceしたりしています。確かにオブジェクト指向が理解できないと書けない仕様書・ソースです。
しかし、これらがオブジェクト指向を使って開発しているものとはもはや言い難い。そう思えるようになってしまいました。
いや、言い方が悪いのかもしれません。
オブジェクト指向における技術は読めるし、理解できる。しかし、徹底的に活用しているかというと、必ずしもそうではないのです。
端的な例で言うと、一番初めに6つのコマンド(機能)ができて、それらを元にさらに次のリリース、リリースと行くに従いコマンド数が増えていきました。
あるとき、CATIAのバージョンUPに伴いいくつか新しい付加機能を追加する必要があり、操作性の一貫性を保つためそれらを開発したコマンド全てに追加しました。
またあるとき、内部ライブラリを一新するため、それまでのGUIは踏襲しながら新しい機能へ挿げ替えを行ったため、同じ顔つきながら別のコマンドが増えていきました。
コマンドの数は新旧合わせると約70個、その7割は似て非なるコードのコピーで作られています。
理由は「同じような機能を開発するから」ただそれだけ。

オブジェクト指向を理解できる人たちが携わって、なぜ似て非なるコードが大量生産されてしまっているのでしょうか?これは非常に大問題です。
なぜなら、これから新しい追加機能を付加することが不可欠となったとき、全てのコマンドに対して(少なくとも新しいコマンドに対して)、まったく同じコードをそれぞれにコピーして、それぞれの単体テストを行い、結合テストを行う必要がでてきます。もしくは、共通の機能に不具合があり早急に修正が必要とされる場合、似て非なるコードをコピーしているため全てのコマンドに対して(少なくとも新しいコマンドに対して)、同じ修正を加える必要が出てきてしまうのです。

オブジェクト指向って、何でしたっけ。
継承って、どういうときに使うのでしょうか。
この問題は実はずーっと見てみぬフリをしてきましたが、開発が先細りになるにつれ人が減ってきたのに、くだらないメンテナンス工事に無駄な工数を使い、通常の開発を圧迫するようになってきているのは判っていました。
よくよく考えたら、種をまいているのは自分たちではないですか。

結局、新しい(オブジェクト指向は決して新しい技術ではないですが)ものを理解しても、それまでの慣習や、あまり面倒を抱え込みたくないという意識から、目先に簡単に移るやり方へと流れてしまう傾向があるようです。本来、このような構造プログラミングからオブジェクト指向プログラミングへの移行は大きなパラダイムシフトを伴うものですが、
開発する人が何が変わったかを本質的に捉え、どう生かさなければいけないのかをじっくり考えてから取り組まないと、結局何も変わらないということなのでしょう。

このような問題を解く鍵は、「オブジェクト指向を使うと何がうれしいのか?」を良く考えることです。また、日頃抱えている問題や課題をどう解決するべきか?それを良く考えることです。
今この二つをつき合わせて思いつくのは次のような事柄です。
『オブジェクト指向の特に「継承」を上手に利用すると、少ないコードで、属性をちょっと変えるだけで多くのインスタンスを作り出すことができる。これはすなわち、共通のGUIや機能を持っているコマンド群には全て適用できる話である。コード量が減ればその後のテスト、工事、改善、不具合対応のすべてにおいて費用削減が可能となるはずである。』

長い文章ですみません。
しかし、今後自分のやるべきことが何かはっきりとしてきました。
オブジェクト指向をもっともっと徹底活用することで開発費用を下げ、生産性を向上させ生産余剰能力を増やし、他社に真似のできない開発プロセスを開発すること。です。
[PR]
by tsuyodrive | 2004-11-30 03:16 | 仕事

新しい開発手法を求めて。

TOC(制約条件の理論)を、「ザ・ゴール」シリーズ(全部で4つ)を2回ほど読んで学んだ。
思考プロセスもちょっとずつ使うようにしている。
まだ飛躍的な効果を生むには至っていないが、まだそんなに使ってないので当たり前。

今後、新しい開発プロセスを開発できれば、自社の利益拡大に繋がると思っているのだが、
それをTOCを利用してやってみたい。
もちろん、最近のトレンド(?)であるXPなどのアジャイル手法も参考程度に読んでいるが、
小規模開発にしか使えないのだとしたら意味あるのかないのか分からない。
少なくとも現在の手法からの切り替えで発生しうる問題を解決しなければ望めないだろう。

どちらかというと、日本的なスタイルをちょっとずつ変化させるほうが納得しやすい気もする。
一気にごそっと変えると不安が増幅して不平・不満が増大し、失敗する可能性が大きくなる気がする。
そして、今のスタイルにTOCを適用しても十分効果が得られると思う。

ただ、思考プロセスを会社で工数を使ってやっていくのはまずだめだろう。
認知度が低すぎるし、上の方は変化を嫌う傾向がある(それでいて何か無いかとわめく。矛盾しているよなー)。
結局、休暇中に考える時間を設けてコツコツとツリーを作る必要があるわけだ。
そうなってしまうと、余暇を上手に使えない私にはなかなかハードルが高くなってしまうのである・・・。
いやしかし、ここでやらねばいつやるのだ。
今はすぐにそれを生かす環境がないが、生かす環境が揃ったときに間に合わないというのでは意味が無いし。
[PR]
by tsuyodrive | 2004-11-22 02:42 | 仕事

台風23号(トカゲ)。

超大型台風トカゲが直撃ということで、常駐先企業から帰宅勧告が出され、全員16:30をめどに帰宅せよということで急いでマシンを落とし会社を出た。
栄に向かおうとしたが、強風で傘が折れそうになり、前から別の傘がものすごい勢いで飛んできて、停車中の車にバシバシあたって電柱に引っかかってとまった。
いやー、1秒間に15m進むのスピードで傘が飛んできたらよけれんぞ。前見れないし。
と思い、引き返して伏見までダッシュ。地下鉄経由に切り替えた。

妻は18時の定時までやって帰るということだったが、これはまずい。
栄町で待っているつもりで、「できるだけ早くうちにカエレ」とメールを打った。
幸い、17:10には会社を出てくれ、17:30に合流できた。
自宅最寄の駅につくと、すさまじい風雨でみんな飛ばされそうになりながら歩いている。
改札を出てしばらくすると、次の栄駅行きで最後の電車となります、というアナウンスが。
もし妻が18時までやっていたら、電車に乗れずに栄で立ち往生していたかもしれない。
危なかった~

自宅まで傘もさせないので、「姿勢を低めにして」と言いながら、手をつないで自宅までびしょぬれになりながら歩いた。駅から3分くらいの距離だが、着くころにはプールにそのまま飛び込んだかのように濡れまくっていた。
ここまで濡れると自然と笑えてきてしまうのがおもしろい。

そういえばいつも協力してもらっている、日本に来て間もないあいつはどうしたかなと思い、メールを打ってみた。台風ばっかりでさぞびっくりしてるだろうし、情報も遅れるかもしれない。そしたらこんな返信が帰ってきた。

Hi, I returned home as advised by our office. However I have a colleague stuck in Toyota-shi because the meitetsu line is off. So I'm on the way with the Celica. thank you for your mail

セリカで困っている同僚を助けに行くとのこと。無事で良かったが、大丈夫かな運転は。
無事に救出し帰宅していることを祈る。
[PR]
by tsuyodrive | 2004-10-21 01:47 | 仕事

英語シャワー。

今日は英語ならしゃべれるフランス人と4時間以上会議をした。
最初の1時間半は小規模の説明会ということで延々とやつがしゃべりまくった。
途中、集中力が切れたのかついていけなくなった。
他のメンバーもだんだんと憔悴した表情になってきてついてこれてないことを感じた。
やばい。この会議の主催者オレなんだけど・・・

英語の文章が敷き詰められたPowerPointのスライドを元にそれ以上の英単語が降り注いだので脳みそがオーバーフロー。いっぺんに処理しきれなくなってしまった。
分かっている振りしてうなずくのも限界あるよ・・・orz

その後、2時間半に渡って個別にミーティング。
1対1のときはお互いのペースを確かめ合いながらできるのでちゃんとついていける。
自分が繰り出すたどたどしい英語もなんとか形になっているようである。

思えばやつが日本にやってきて最初に会ったときは自己紹介もままならなかったが、
最近はきれいに英文が出てきたら気持ちがいいということがわかってきた。
やつが来て3ヶ月が経つが、かなり英会話能力が伸びたことを実感する。

いいやつなので、こちらが分からない顔をしていると一生懸命説明してくれる。
やつの熱心さに応えるにはヒアリング能力を高めるしかないわけで、そう思うことがモチベーションを高めてやる気にさせてくれるのかもしれない。
[PR]
by tsuyodrive | 2004-09-29 01:34 | 仕事