ただいま修行中...

ソフトウェア開発において、勉強中で悪戦苦闘の日々

人と話すときに注意する点

2007-06-14 23:11:26 | ビジネス
人と話すときや教えるときに注意する点としては、相手との前提条件を合わせておくことが重要です。

例えば、自分よりも知識や経験がない人に教えるときに、相手のレベルに合わせなくてはなりません。
そうしておかないと相手が理解しているのかどうかを見極めて話をしていくことで、より理解が深まりますし、分かっていることならレベルを上げて話をすればよくなります。

話すときにも相手はこう考えているだろうやこれはわかっているだろうということで話をしてしまうと、こちらが意図したことが上手く伝わらなかったり、自分が理解できないことがあります。

やはり、人と話をするときには、相手との前提条件を合わせたうえで、話をしないといつまでたっても平行線のままだし、理解もできないと思います。

昔、私が教育実習に行ったときにもそのときに指導教官に言われたことを最近思い出して、注意しなくてはならないなと改めて思いました。

実現方法を考えるのは難しい

2007-06-13 22:30:52 | ソフトウェア開発
要求が分析できた後に、実現方法を考えるのは本当に難しいと思います。

例えば、こういった実現方法があるが、こういった問題点があります。
また、それとは別の方法で、実現方法を用意してもこういった問題点があります。

といったように、中々実現方法が決められないということはソフトウェア開発ではよくあることだと思います。
その中で、トレードオフをして、ベターなものを選択して実現をしていきます。

どうしても一人で考えていると、発想が似たようなものになってしまい、中々解決策を見出すことができないことがよくあります。

そんなときは、周りの人に相談すると、こうすればいいだよといった「ああなるほど」といったように簡単に解決する場合があります。自分の立場が逆のときにもあります。

要求分析が足りないこともあると思いますが、実現方法を考えるのは本当に難しいと思います。

最近になってようやく分かったこと

2007-06-11 21:46:41 | プログラミング
最近、オブジェクト指向リファクタリングなどの書籍や自分が実際に色々と試してみて分かったこととして、すべては読みやすいコードを書くためのテクニックであることがわかりました。

オブジェクト指向のデザインパターンなども色々な人が分かりやすいように体系化されています。
これも全ての人の共通言語としての活用だったり、他の人が見たときにこれはこのパターンだなということが分かるようにしてあるのだなと思います。

リファクタリングは、まさにその通りで、メソッドの抽出フィールドの移動などの基本的なことから始まります。

その他にも色々なテクニックなどがありますが、やはり同様に読みやすいコードを書くことにつながっているということが最近になってようやく分かりました。

読みやすいコードも、一度きりの開発ではなく保守の作業があるから重要であるということが日々言われているのだと思います。

桑田がメジャーに昇格

2007-06-10 11:41:16 | 野球
桑田メジャーに昇格しました。おめでとうございます。ちなみに背番号は「18」です。

巨人を退団したときから、メジャーに上がる日がいつくるのか気にしていました。
ようやく、メジャーに昇格して、まずは「中継ぎ」で登板となります。
私としては、桑田がメジャーの先発で投げる日が近いうちにくると思います。

桑田が所属しているパイレーツの投手陣があまりよくないからです。「中継ぎ」で結果を出せば、先発の座が回ってくると思います。

いまや魔球となった桑田のカーブレインボール」が活躍して日米通算200勝を達成して欲しいと思います。
レッドソックス岡島のカーブが通用するので、桑田のカーブも通用すると思います。
今はあんなに曲がるカーブを投げるピッチャーはいないからタイミングがとりづらいと思います。

ヤンキース戦に登板する可能性が高いので、クレメンスと投げ合ったらすごく面白いと思います。

明日の野球は中止

2007-06-09 21:46:27 | 野球
明日、本当なら草野球の試合でした。久しぶりの試合でワクワクしていました。

しかし、相手チームの人数が揃わないために、不戦勝ということで、試合はありません。我がチームも人数がギリギリでなんとか人数が揃う状態でした。
草野球というのは、人数が揃わなくて試合が行われないということが多々あります。

今回は、久しぶりに試合があるということで、みんなやる気に満ち溢れていましたが、なんだかそのやる気がうせてしまいました。

今度は、いつになるかわかりませんが、たとえ勝てなくても試合をしたいなと思っています。

日本の野球の底辺拡大のためにもぜひ草野球を盛り上げていこうと思います。

Appolloアプリ開発が面白そう

2007-06-08 23:13:10 | プログラミング
今日、@ITを読んでいたら、Appoloアプリのことがトップページにあり、面白そうそうだなと思いました。

以下@ITの記事の説明より抜粋
Appoloとは、HTMLJavaScript(Ajax)、FlashFlexPDFを連携させてデスクトップアプリケーションを簡単に作ることができるプラットフォームです。
Apolloアプリの開発はすぐに始めることができます。
なぜならば既存の技術(例えばHTML、JavaScript、Flash、Flex)で開発されたアプリにApollo用の設定ファイルを記述するだけで完成してしまうからです。

こんなことが昔の記事に書いてあり、3回目がアップされていました。

ちょっと面白そうなので、家のPCにインストールして色々と試してみようと思います。

それにしても色々と面白そうなアプリ開発ができるのは本当に幸せだなと思います。
プログラマでよかったなと感じるときの一つです。

※テンプレートを更新しましたが、ちょっとみづらかったので、元に戻しました。


コーディング作業に集中するとかなり疲れる

2007-06-07 22:16:26 | プログラミング
今日は、特に打ち合わせや内線がかかってくることがなかったので、午後からコーディングの作業に集中することができました。

そのときに、かなりコーディングの作業に集中していたので、定時を過ぎたときには、すごく疲れていました。

こんなにコーディングに集中できたのは、本当に久しぶりでした。
集中していたので、本来予定していた部分よりもかなり前倒しで作業を進めることができました。

このように、色々な打ち合わせや内線がかかってこないことにより、作業に集中できる環境があれば、誰でも予定よりも早く完成させることはできると思います。
その他の制約があるから、作業に集中できなかったり、別の仕事をしなくてはならなかったりするのだと思います。

この部分を中々、他の人からは理解できないことなんだと思います。
特に日本の経営者は、生産性をあげろといいますが、こういった経営者は、本質的な問題が何かを捉えていないと思います。

まだまだ修行中の身なので偉そうなことはいえませんが、たぶんあっていると思います。

お勧めの本

2007-06-06 23:05:06 | プログラミング
最近、本棚からマーチンファウラーリファクタリング―プログラムの体質改善テクニックを出してきて、読み返してみました。

この本は、ポリモフィズムがわかってきたなという人にはお勧めだなと思います。

この本の中で、デザインパターンStateStrategyFactoryMethodパターンなどが載っています。しかし、これらを知らなくてもこの本の中で解説が載っているので、特に問題ありません。

また、細かく手順を書いてあったり、色々なサンプルプログラムがあるので、Javaを知らなくても、Javaを知らなくても割とわかりやすく書いてあります。

サンプルも簡単なものが載っていたり、実際に自分達の業務に置き換えても応用が可能なように書いてあると思います。

この本は、何度読んでも飽きのこない1冊になります。

これはオブジェクト指向の理解を深めるのに役立つ1冊になると思うので、読んだことがない人は読んだほうがいいと思います。

今日、このブログのテンプレートを更新してみました。
野球が好きなので、これにしてみましたが、すこし字がみづらいかなと思います。

私がC#を選択する理由

2007-06-05 23:31:23 | C#
まず、ソフトウェアを作成する上で、どの言語で作成するかを考えます。

まず、Windowsアプリなら、C++VBDelphiなど、WEBアプリならRubyJavaPHPなど様々あります。

その中で、Windowsアプリなら私はC#を選択します。
大きな理由は、デリゲートGCがあるからです。
デリゲートがあることで、複数のViewへの通知が簡単であることです。
DelphiやC++を使用する場合には、関数ポインタでアクセスするために、複数のViewへの通知は非常にソースコードを書かなくてはならないので、非常に面倒であることがあります。

GCは、C++やVBやDelphiにはないので、メモリリークを気にする必要がないことがあります。

このような点から、私ならC#を選択します。

言語を選択するときには、色々な要件を元に決めていきますが、現在のところではC#がいいのではないかと思います。
ただ、型の制約が厳しいのは、面倒だなというときはあります。


マインドマップの活用方法

2007-06-04 21:58:20 | ソフトウェアテスト
以前、このブログでマインドマップってすばらしいというタイトルで書きました。

その後に、ソフトウェアテスト・PRESS Vol.4でマインドマップを活用したテストケース作成やTEFメーリングリストなど様々なところで話題になっております。

私が、どのようにテストケースを作成しているかというと、大体この機能とこの機能の関連性などを明確にするために使用しています。
例えば、WORDのツール-オプションの機能を見たときに、「蛍光ペン」の設定が反映されるのはこことここの箇所だなどです。
限界値などを含めてしまうと、大きくなりすぎてしまうので、機能の関連性についてを列記するようにしています。

これにより、組み合わせ漏れによるバグというものは約1/2程度に減りました。

マインドマップを活用すると、本当に便利であるなというのは、組み合わせを明確にしたり、仕様の漏れなどを見つけるのには非常に便利だなと思います。

初めてインストールする人の為に、1点だけ、Javaをインストールしないと、起動できないので、注意してください。