プロフィール

島田圭二

Author:島田圭二
Follow shimanp on Twitter

カレンダー
10 | 2017/11 | 12
- - - 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 - -
読断と変見内検索
訪問ありがとうございます
最近のコメント
最近のトラックバック
関連リンク
カテゴリー
月別アーカイブ


スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)
プログラマーとしての僕をレベルアップさせた一言
時として、ある一言が人を変えてしまうことがある。
少し大げさだけど、プログラマーとしての僕を1段レベルアップさせた言葉がある。

あれは確か3年前の夏ころだった。
プログラマ2年目であまりプログラムをさせてもらえずテストばかりさせられていた。
あるとき凄腕プログラマーの方が作ったプログラムをテストしていた。
その方に「僕にはこれを作れる気がしないっすよ」と言ったら、
その方がこうおっしゃった。

「ようはデータ構造なんですよ」

これを聞いたとき頭を真上から打ち抜かれたような衝撃が走った。
たぶん他の人が聞いても「あたりまえじゃね?」程度だと思うが
言葉というのは、内容もさることながら、タイミングも重要だ。
僕の場合、これしかないというタイミングでこの言葉を言われた。

結局プログラムでやることはデータを受け取って(入力)、そのデータを処理して(処理)、
処理結果のデータを出力する(出力)、の3つだ。
そう全てのプログラムの目的はデータなのだ。
あるデータが欲しいから人はせこせこと体を壊してまでプログラムを作る。
そしてデータはデータ構造によって、保持、管理される。
つまり、「ようはデータ構造」なのである。

スポンサーサイト
開発 | 【2009-02-16(Mon) 00:53:15】 | Trackback:(0) | Comments:(0)
ソフトウェア工学の属人性の排除は間違っているのか?
従来のソフトウェア工学が決定的に間違っている点 - kwatchの日記
従来のソフトウェア工学は、属人性を排除して開発者の能力を均一化しようとしている。この点に置いて、従来のソフトウェア工学は決定的に間違っている。

僕の考えの結論を始めに言っておく。


ずばり、属人性の排除は間違っていない、である。

なんで間違ってない?


そもそも、学問というのは、ある目的を達成するために、知識を体系化していって、
誰が見ても分かるようにしていく、ものだと僕は考えている。
つまり、前提条件からして属人性排除が備わっているのだ。
例えば、1+1は3進以上は2である。これをある人は3である人が100と言い出したら
学問は成り立たない。誰が見ても1+1は2なのである。
ソフトウェア工学も同じである。ソフトウェア工学はソフトウェアを開発するために、
開発の手順や、運用の方法、人事の配置・・・などなどを体系化していくものだ。
属人性を排除し、体系化することにより、誰が見ても同じという共通認識が持て、
開発効率がよくなるのである。

ここで一つ言っておきたいことがある。
属人性を排除するからといって、能力は均一化しない
これはイコールではない。むしろ、属人性を排除して体系化することにより、
お互いの知識を共有することができ、お互いの能力は上がると僕は思っている。

確かにプログラマーは作業効率に差がつきやすい職業ではある。
でも差がつくところの多くは技術力ではなく、作業の進め方やモチベーション管理であることのほうが
多いと思う。確かに高度の技術になればなるほど、技術差と作業効率の関連性は強くなる。
しかし、実際高度な技術を用したシステムというのはそれほど多くないと思う。
特にソフトウェア開発では高度でない仕事は自動化しやすいので、自動化できないような高度な仕事しか残りにくい。
確かに、自動化できることはあるし、これからさらに自動化できることは増えていくだろう。
しかし、人間にとって高度でないからといって、システムで自動化できるわけではない。
今のコンピュータで自動化できるのは入力された情報をあらかじめ決められた処理をして、
出力するのが限界だ。
なので、現段階では高度な技術を持っていない、プログラマーであってもやることはある。
ソフトウェア工学では、高度な技術ではないけど、システムで自動化できないところを、
体系化して誰がやっても同じようにしていくものではないだろうか。


開発 | 【2009-02-07(Sat) 10:28:43】 | Trackback:(0) | Comments:(0)
システム開発 - ER図はシステムを語る
僕はシステム開発においてER図をとても重視している。
その重視度は世界でもトップクラスではないかと思うほどだ。

今回はなぜそこまで重視するのか理由を書きたい。

まずER図のことを書く前に、システムとはどういうものか考えてみたい。

システムと聞くとコンピュータのシステムを思い浮かべてしまうけど、
Wikiにもあるように、とても広い意味で使われる
人間だって一つのシステムだし、人間が構成する、家族や会社もシステムである。
そしてこれらが構成する社会、国もシステムであり、さらに他生物と構成しあった地球も
システムである。
言ってみればこの世の中は全てシステムで成り立っていると言っても過言ではなない。

次にシステムに重要なことはなんだろうか考えてみたい。
ずばり、それは情報だと僕は考えている。
情報という言葉もシステムと負けず劣らず一般性の高い言葉である。
目から見た映像も情報だし、口から入れる食べ物も一つの情報だ。
人間は取り込んだ情報を処理して体というインターフェースにフィードバックを返す。
それは時として病という形で現れることもある。
そして、システムである人間そのものも実は情報という面を持っており、
家族や会社のシステムはこの情報を処理して、さまざまなインターフェースに
フィードバックを返している。例えばそれは、夫婦喧嘩だったり、インサイダー取引だったりする。

つまり、システムはお互いに影響を及ぼしあう要素が情報をやり取りすることに
より成り立っているのである。
もっといってしまうと情報がなければシステムは成り立たないとも言える。

コンピュータのシステムを開発する際も当然、扱う情報があり、
情報がなければシステムはなんら意味を成さない。
なので、システムを開発する際扱う情報を決めたり整理しなければならない。
そうここでようやくER図の話が出てくるのだ。
ERとはEntity-relationshipの略で、データの関連という意味である。
このデータの関連図を使って情報を整理し、データベースを設計するのである。
データベースとは情報を保持しておく場所のことである。

ER図の描き方など詳しいことは省くが、この情報の整理がおかしいと
当然システムに影響を及ぼしてくる。

例えば図書館を思い浮かべて欲しい。
たいていの図書館は、きれいに整理されており、政治、経済、歴史、科学、など
カテゴリわけされている。
しかし、政治の本が科学の本棚にあったり、歴史の本が経済の本棚にあったりしたら、
どうだろうか?図書館員ですら探し物が見つからず、図書館というシステムは
うまく機能しなくなるはずである。

図書館の話をコンピュータに置き換えると、本棚がデータベースで
プログラムが図書館であり、図書館員もプログラムの一部になる。
なのでデータベースを設計するER図がおかしいと、プログラムも
おかしなものになっていき、最悪一から設計し直しという自体もありえる。
しかし逆に、ER図がしっかりしていると、見ただけでどういったシステムなのかが分かる。
例えば、ER図で「タイヤ」「エンジン」とあったら何を思い浮かべるだろか?
たぶん多くの人が車を思い浮かべると思う。
なのでこのER図を見れば、あぁ車のシステムを開発してるんだなと分かるのである。

最後にまとめる。
システムは情報により成り立ち、その情報を設計するのがER図である。
ゆえに僕はER図を重視するのである。


開発 | 【2008-11-15(Sat) 14:15:59】 | Trackback:(0) | Comments:(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。