<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>退役プログラマのブログ</title>
	<link>http://www.fores.jp/blog</link>
	<description></description>
	<pubDate>Tue, 19 Aug 2008 06:47:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>備忘録（普通に考えることの大切さ）</title>
		<link>http://www.fores.jp/blog/?p=33</link>
		<comments>http://www.fores.jp/blog/?p=33#comments</comments>
		<pubDate>Tue, 19 Aug 2008 06:47:26 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=33</guid>
		<description><![CDATA[ここでいう普通に考えることとは、常識的に考えるということではありません。
言い換えれば一から積み立て直すことです。
システム開発の途中またはリリース後に設計ミスが発覚した場合、
その原因が解ってみると難しいことでもなんでもなく
設計の時点で検出することが十分可能なことがほとんどです。
ひどい話ですが、設計またはプログラミングの時点で
誰かが解っていた場合がほとんどなのではないでしょうか？
どんな理由があろうとも
（事前に何らかの理由により断りを進言してお客様に了承を得てない限りですが。）
普通に考えれば、おかしな話です。
科学実験ではないですが、理論と実際のあわない場合は、
間違いなく理論の方が間違っています。
「これが常識だから」
「本に書いてあるから」
「過去にこれでうまくいったから」
「すごい誰々さんが言ったから」
雑音には耳を貸さずに一から考えてみて下さい。
間違いもしくは改良すべき点は、
思い込みの中にあることがほとんどなので
最終目的を念頭に一から時間をかけて検証してみることが大切です。
（実は私は仕事の中ではこんな時間をとる余裕がないのがほとんどなので、
実際には通勤中の電車の中とかでしか考えることができないのですが。）
コツは全体的に俯瞰してみることと一から考えることを交互に繰り返すことです。
経験を積むとともに「カン」のほうが
理屈立てて得た結論より正しいことがままあります。
何かしっくりこない場合は、論理立ての出発地の辺りを
よくよく考え直したほうが良いと思います。
論理立ての枠組み自体が間違っていたというのは良くある話です。
何かに囚われずに一から考え直してみると良い突破口が見つかりやすいという話でした。
]]></description>
			<content:encoded><![CDATA[<p>ここでいう普通に考えることとは、常識的に考えるということではありません。<br />
言い換えれば一から積み立て直すことです。</p>
<p>システム開発の途中またはリリース後に設計ミスが発覚した場合、<br />
その原因が解ってみると難しいことでもなんでもなく<br />
設計の時点で検出することが十分可能なことがほとんどです。<br />
ひどい話ですが、設計またはプログラミングの時点で<br />
誰かが解っていた場合がほとんどなのではないでしょうか？</p>
<p>どんな理由があろうとも<br />
（事前に何らかの理由により断りを進言してお客様に了承を得てない限りですが。）<br />
普通に考えれば、おかしな話です。</p>
<p>科学実験ではないですが、理論と実際のあわない場合は、<br />
間違いなく理論の方が間違っています。<br />
「これが常識だから」<br />
「本に書いてあるから」<br />
「過去にこれでうまくいったから」<br />
「すごい誰々さんが言ったから」<br />
雑音には耳を貸さずに一から考えてみて下さい。</p>
<p>間違いもしくは改良すべき点は、<br />
思い込みの中にあることがほとんどなので<br />
最終目的を念頭に一から時間をかけて検証してみることが大切です。<br />
（実は私は仕事の中ではこんな時間をとる余裕がないのがほとんどなので、<br />
実際には通勤中の電車の中とかでしか考えることができないのですが。）</p>
<p>コツは全体的に俯瞰してみることと一から考えることを交互に繰り返すことです。<br />
経験を積むとともに「カン」のほうが<br />
理屈立てて得た結論より正しいことがままあります。<br />
何かしっくりこない場合は、論理立ての出発地の辺りを<br />
よくよく考え直したほうが良いと思います。</p>
<p>論理立ての枠組み自体が間違っていたというのは良くある話です。</p>
<p>何かに囚われずに一から考え直してみると良い突破口が見つかりやすいという話でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=33</wfw:commentRss>
		</item>
		<item>
		<title>ラボの作品をマイコミジャーナル様でとりあげてもらいました</title>
		<link>http://www.fores.jp/blog/?p=32</link>
		<comments>http://www.fores.jp/blog/?p=32#comments</comments>
		<pubDate>Thu, 24 Jul 2008 07:07:36 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[ブログ]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=32</guid>
		<description><![CDATA[フォーエスラボ（Fores　Labs）
↓
http://www.fores.jp/labs/index.html
で作った作品をマイコミジャーナル様でとりあげてもらいました
↓
「QRコードを簡単に作るAIRアプリケーション「QRメーカー」無償提供開始」
http://journal.mycom.co.jp/news/2008/07/23/048/index.html
「フォーエス、QRコードを簡単作成できるAdobe AIRアプリケーションを配布」
http://journal.mycom.co.jp/news/2008/07/23/047/index.html
これも、うちの技術者がタイトなスケジュールの中、
がんばってくれたおかげです。
ありがとうございました。
より多くの人に使ってもらって
機能面、デザイン面、操作性面とかでダメ出しを
たくさんもらえると嬉しいのですが。。。
]]></description>
			<content:encoded><![CDATA[<p>フォーエスラボ（Fores　Labs）<br />
↓<br />
http://www.fores.jp/labs/index.html</p>
<p>で作った作品をマイコミジャーナル様でとりあげてもらいました<br />
↓<br />
「QRコードを簡単に作るAIRアプリケーション「QRメーカー」無償提供開始」<br />
http://journal.mycom.co.jp/news/2008/07/23/048/index.html<br />
「フォーエス、QRコードを簡単作成できるAdobe AIRアプリケーションを配布」<br />
http://journal.mycom.co.jp/news/2008/07/23/047/index.html</p>
<p>これも、うちの技術者がタイトなスケジュールの中、<br />
がんばってくれたおかげです。<br />
ありがとうございました。</p>
<p>より多くの人に使ってもらって<br />
機能面、デザイン面、操作性面とかでダメ出しを<br />
たくさんもらえると嬉しいのですが。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=32</wfw:commentRss>
		</item>
		<item>
		<title>備忘録（開発手法の落とし穴、その２）</title>
		<link>http://www.fores.jp/blog/?p=31</link>
		<comments>http://www.fores.jp/blog/?p=31#comments</comments>
		<pubDate>Tue, 22 Jul 2008 06:51:29 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=31</guid>
		<description><![CDATA[前回で述べた話は、プログラマとして十分な経験を積みたたき上げたＳＥにとっては当たり前のことです。
システムの開発工程の中で、それでも難しいことが、まだ二つ残ります。
その一つは、お客様の前で直接会話してシステムに求められる機能をその場で決めていく場合です。
短時間の会話の中で、要求された機能に対してシステム内部のイメージを作り、
出来る、出来ないを決めなくてはなりません。
出来る場合は良いのですが出来ない場合には、現実世界のシミュレーションの中から
お客様の求める効果に近い代替案を考え、さらにはその代替案のシステム内部のイメージを作り、
提案しなければなりません。
そもそもこの仕事はサービス業なので、お客様の案に特別な無理がなく、代替案がなければ、
効果が確実なお客様の案を無理を承知で受けるしかないでしょう。
この部分の難しさは、会話をしながらの短時間のうちに二つのシミュレーションをしなければならない点です。
もう一つは複数会社により連動する複数業務システム開発を行う場合なのですが、
会社をまたがって他システムインターフェースを決める場合です。
通常、他システムインターフェースは基本設計工程で確定され、それ以降変更することは至難の業です。
つまり基本設計工程でプログラミングのイメージを作り上げる必要があるのです。
この難しさは二つ先のシミュレーションを行わなくてはならないことにあります。
最後に、システムの開発工程の中で忘れがちな大事なことをことをもう一つ話させてもらいます。
それは、プログラミング工程で品質の作り込み自体をおざなりにしてしまうことです。
品質の作り込みの九十数パーセントまではここで行われるのです。
プログラミングの後のテスト工程にたよって十分な品質を確保することは至難の業です。
人の頭を開けてみて生産ラインのチェックができれば良いのですが、
そのことは会話またはコード自体から読み取る以外にありません。
あるプログラマが、その時点で求められるスキルレベルに極端に達していないことが判明した場合には、
（そのプログラマにとっては残酷な話ですが）
スクラップ＆ビルドが最も早い選択の場合がほとんどです。
つまるところシステム開発の最終到達点は、
効果的な機能仕様を持った使用に耐える品質のプログラム群を作り上げることです。
正確に作るためのドキュメントはもちろんのこと、
メンテナンスのためのドキュメントを作成するのであっても、
それはプログラミング群がきちんと出来た上での話です。
プログラミング以外の全ての工程は、プログラミングのためにあるのであって、
そのことを忘れてプログラミングをおろそかにして、良いものができるはずがありません。
ですから管理のレベルでは、他の工程を皺寄せたり、端折ったりしてでも、
出来る限り十分な時間をプログラミングのために確保するように努めなくてはなりません。
進捗の遅れをプログラミング工程で取り戻すようなことは、
本当に愚の骨頂でトラブルを招いているようなものであることは言うまでもありません。
実際にコードを編み綴るプログラマの方は、
プログラミングでのあいまいさの排除を
制限つきの時間の中で出来る限り理想的な形で実装し、
それを目視であっても動作を確認しなければなりません。
プログラマは、プロフェッショナルとして、
「硬いコード」を書き、そして確認しなくてはいけないことを、
強く自覚しなくてはなりません。
]]></description>
			<content:encoded><![CDATA[<p>前回で述べた話は、プログラマとして十分な経験を積みたたき上げたＳＥにとっては当たり前のことです。<br />
システムの開発工程の中で、それでも難しいことが、まだ二つ残ります。</p>
<p>その一つは、お客様の前で直接会話してシステムに求められる機能をその場で決めていく場合です。<br />
短時間の会話の中で、要求された機能に対してシステム内部のイメージを作り、<br />
出来る、出来ないを決めなくてはなりません。<br />
出来る場合は良いのですが出来ない場合には、現実世界のシミュレーションの中から<br />
お客様の求める効果に近い代替案を考え、さらにはその代替案のシステム内部のイメージを作り、<br />
提案しなければなりません。<br />
そもそもこの仕事はサービス業なので、お客様の案に特別な無理がなく、代替案がなければ、<br />
効果が確実なお客様の案を無理を承知で受けるしかないでしょう。<br />
この部分の難しさは、会話をしながらの短時間のうちに二つのシミュレーションをしなければならない点です。</p>
<p>もう一つは複数会社により連動する複数業務システム開発を行う場合なのですが、<br />
会社をまたがって他システムインターフェースを決める場合です。<br />
通常、他システムインターフェースは基本設計工程で確定され、それ以降変更することは至難の業です。<br />
つまり基本設計工程でプログラミングのイメージを作り上げる必要があるのです。<br />
この難しさは二つ先のシミュレーションを行わなくてはならないことにあります。</p>
<p>最後に、システムの開発工程の中で忘れがちな大事なことをことをもう一つ話させてもらいます。</p>
<p>それは、プログラミング工程で品質の作り込み自体をおざなりにしてしまうことです。<br />
品質の作り込みの九十数パーセントまではここで行われるのです。</p>
<p>プログラミングの後のテスト工程にたよって十分な品質を確保することは至難の業です。<br />
人の頭を開けてみて生産ラインのチェックができれば良いのですが、<br />
そのことは会話またはコード自体から読み取る以外にありません。<br />
あるプログラマが、その時点で求められるスキルレベルに極端に達していないことが判明した場合には、<br />
（そのプログラマにとっては残酷な話ですが）<br />
スクラップ＆ビルドが最も早い選択の場合がほとんどです。</p>
<p>つまるところシステム開発の最終到達点は、<br />
効果的な機能仕様を持った使用に耐える品質のプログラム群を作り上げることです。<br />
正確に作るためのドキュメントはもちろんのこと、<br />
メンテナンスのためのドキュメントを作成するのであっても、<br />
それはプログラミング群がきちんと出来た上での話です。</p>
<p>プログラミング以外の全ての工程は、プログラミングのためにあるのであって、<br />
そのことを忘れてプログラミングをおろそかにして、良いものができるはずがありません。<br />
ですから管理のレベルでは、他の工程を皺寄せたり、端折ったりしてでも、<br />
出来る限り十分な時間をプログラミングのために確保するように努めなくてはなりません。<br />
進捗の遅れをプログラミング工程で取り戻すようなことは、<br />
本当に愚の骨頂でトラブルを招いているようなものであることは言うまでもありません。</p>
<p>実際にコードを編み綴るプログラマの方は、<br />
プログラミングでのあいまいさの排除を<br />
制限つきの時間の中で出来る限り理想的な形で実装し、<br />
それを目視であっても動作を確認しなければなりません。<br />
プログラマは、プロフェッショナルとして、<br />
「硬いコード」を書き、そして確認しなくてはいけないことを、<br />
強く自覚しなくてはなりません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=31</wfw:commentRss>
		</item>
		<item>
		<title>備忘録（開発手法の落とし穴、その１）</title>
		<link>http://www.fores.jp/blog/?p=30</link>
		<comments>http://www.fores.jp/blog/?p=30#comments</comments>
		<pubDate>Mon, 14 Jul 2008 03:11:33 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=30</guid>
		<description><![CDATA[今回はシステム内部の開発に絞って話をさせてもらいます。
しかも一番古くからあり、一番良くお目にかかる代表的な開発手法である
ウォーターフォール方式の開発手法から話をさせてもらいます。
ウォーターフォールでの開発で陥り易い落とし穴の一つは、
開発の前半において開発工程毎の成果に目を奪われすぎることです。
例えば基本設計工程では基本設計書に、詳細設計工程では詳細設計書を作り上げること自体に
集中しすぎると言うこと自体が問題なのです。
プログラミング直前までで最も大切なのは、一つ先の工程のイメージを作り上げることです。
ですから基本設計書を作成した暁には担当者の頭の中には
詳細設計のイメージが出来上がっていなければなりません。
つまり「備忘録（またしても器のシミュレーション）」で述べたようなイメージは
最低限固まっていなくてはなりません。
もちろん難しい問題領域を解くシステムの場合には、全てが可能なわけではないですが、
難しいほんの一部のブラックボックスを除き大半は出来上がってなくてはいけません。
詳細設計書またはプログラム設計書のようなものを作り上げる場合も同様です。
プログラム設計書を作成しないような場合、詳細設計書を作り上げた暁には、
頭の中にプログラミングイメージが出来上がっていなくてはなりません。
実際開発をしたことがある人であれば、こんなことは誰でも知っています。
でも、プロジェクトがトラブル際には、これが出来ていないことが多いように思います。
見た目はスケジュール通りに進捗が進んでいるにも関わらず、
実態としては（作業者の頭の中では、と言う意味です。）一工程分スケジュールが遅れているのです。
一工程分スケジュールといえば全体の数十％です。トラブらない方が不自然です。
詳細設計工程またはプログラミング工程になってはじめて
矛盾点または無理が発覚して手戻りが多発するはずです。
「こうすればいい」という見通しのないまま進み、
後になって考え直さなくてはいけない部分が明確になる。
誰が考えてもあたりまえのことだと思います。
ただここで一番難しい点は、実務に精通したリーダしか
工場の生産ラインを視察することが出来ず、
その一工程分の遅れを検知できないことです。
そしてそれを改善、コントロールする権限もリーダにしかないのが常なので．．．
今回は設計書等のドキュメントが大事でないかのような
印象をあたえたかもしれませんが、
ドキュメントはコミュニケーション、そしてメンテナンスのためにも
絶対必要で、それを否定している訳ではありません。
（最後に言い訳でした。）
]]></description>
			<content:encoded><![CDATA[<p>今回はシステム内部の開発に絞って話をさせてもらいます。<br />
しかも一番古くからあり、一番良くお目にかかる代表的な開発手法である<br />
ウォーターフォール方式の開発手法から話をさせてもらいます。</p>
<p>ウォーターフォールでの開発で陥り易い落とし穴の一つは、<br />
開発の前半において開発工程毎の成果に目を奪われすぎることです。<br />
例えば基本設計工程では基本設計書に、詳細設計工程では詳細設計書を作り上げること自体に<br />
集中しすぎると言うこと自体が問題なのです。</p>
<p>プログラミング直前までで最も大切なのは、一つ先の工程のイメージを作り上げることです。<br />
ですから基本設計書を作成した暁には担当者の頭の中には<br />
詳細設計のイメージが出来上がっていなければなりません。<br />
つまり「備忘録（またしても器のシミュレーション）」で述べたようなイメージは<br />
最低限固まっていなくてはなりません。<br />
もちろん難しい問題領域を解くシステムの場合には、全てが可能なわけではないですが、<br />
難しいほんの一部のブラックボックスを除き大半は出来上がってなくてはいけません。</p>
<p>詳細設計書またはプログラム設計書のようなものを作り上げる場合も同様です。<br />
プログラム設計書を作成しないような場合、詳細設計書を作り上げた暁には、<br />
頭の中にプログラミングイメージが出来上がっていなくてはなりません。</p>
<p>実際開発をしたことがある人であれば、こんなことは誰でも知っています。<br />
でも、プロジェクトがトラブル際には、これが出来ていないことが多いように思います。<br />
見た目はスケジュール通りに進捗が進んでいるにも関わらず、<br />
実態としては（作業者の頭の中では、と言う意味です。）一工程分スケジュールが遅れているのです。</p>
<p>一工程分スケジュールといえば全体の数十％です。トラブらない方が不自然です。<br />
詳細設計工程またはプログラミング工程になってはじめて<br />
矛盾点または無理が発覚して手戻りが多発するはずです。<br />
「こうすればいい」という見通しのないまま進み、<br />
後になって考え直さなくてはいけない部分が明確になる。<br />
誰が考えてもあたりまえのことだと思います。</p>
<p>ただここで一番難しい点は、実務に精通したリーダしか<br />
工場の生産ラインを視察することが出来ず、<br />
その一工程分の遅れを検知できないことです。<br />
そしてそれを改善、コントロールする権限もリーダにしかないのが常なので．．．</p>
<p>今回は設計書等のドキュメントが大事でないかのような<br />
印象をあたえたかもしれませんが、<br />
ドキュメントはコミュニケーション、そしてメンテナンスのためにも<br />
絶対必要で、それを否定している訳ではありません。<br />
（最後に言い訳でした。）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=30</wfw:commentRss>
		</item>
		<item>
		<title>Ｗｅｂ　Ｄｅｓｉｇｎｉｎｇ様に取り上げてもらいました</title>
		<link>http://www.fores.jp/blog/?p=29</link>
		<comments>http://www.fores.jp/blog/?p=29#comments</comments>
		<pubDate>Tue, 20 May 2008 07:30:17 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[仕事]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=29</guid>
		<description><![CDATA[Ｗｅｂ　Ｄｅｓｉｇｎｉｎｇ様の2008/6号の
Ｔｅｃｈ＆Ｔｉｐの面白法人ＫＡＹＡＣ様の記事で
Ｆｏｒｅｓ　Ｍｅｓｓｅｎｇｅｒを取り上げてもらいました。
ありがとうございます。
デザイナーさんをコアターゲットとした雑誌で
取り上げてもらえるのはうれしいことですし、
励みにもなります。
毎日コミュニケーションズさん、ＫＡＹＡＣさん
繰り返しになりますが、ありがとうございます。
Ｆｌａｓｈ・Ｆｌａｓｈとは異なりデスクトップでの動きの面での
ＡＩＲの強みを活かしたものを作っていければと思っています。
]]></description>
			<content:encoded><![CDATA[<p>Ｗｅｂ　Ｄｅｓｉｇｎｉｎｇ様の2008/6号の<br />
Ｔｅｃｈ＆Ｔｉｐの面白法人ＫＡＹＡＣ様の記事で<br />
Ｆｏｒｅｓ　Ｍｅｓｓｅｎｇｅｒを取り上げてもらいました。<br />
ありがとうございます。</p>
<p>デザイナーさんをコアターゲットとした雑誌で<br />
取り上げてもらえるのはうれしいことですし、<br />
励みにもなります。<br />
毎日コミュニケーションズさん、ＫＡＹＡＣさん<br />
繰り返しになりますが、ありがとうございます。</p>
<p>Ｆｌａｓｈ・Ｆｌａｓｈとは異なりデスクトップでの動きの面での<br />
ＡＩＲの強みを活かしたものを作っていければと思っています。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=29</wfw:commentRss>
		</item>
		<item>
		<title>備忘録（現実世界のシミュレーション）</title>
		<link>http://www.fores.jp/blog/?p=27</link>
		<comments>http://www.fores.jp/blog/?p=27#comments</comments>
		<pubDate>Mon, 28 Apr 2008 06:49:37 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=27</guid>
		<description><![CDATA[ちょっと、仕事でばたばたしているうちに、
ブログの更新がひさしぶりになってしまいました。
また、がんばって書きますので宜しくお願いします。
ＳＥに必要とされる能力のうちシステムの内部設計に必要とされる部分は、
いままでブログで述べてきたようにプログラマに必要とされる能力の延長線上にあります。
しかしながらそれは半分でしかなく、
もう半分は現実世界をシミュレーションする能力であると思います。
業務システムの出来ることは「絵が出て、紙が出るだけ」と極論しましたが、
だからこそ業務システムが何を必要とされているかは
「絵や紙が出て何が起こるか」を正確に把握する必要があります。
システムの外部設計をするには業務知識が必要です、
このことは極々言い古された単純なことですが。。。
そしてそれは個々に独自の事情をもっていて、異なります。
それをどのように正確に早く把握するかがＳＥのスキルです。
そのために私はいつも次のようなことを気にかけています。
それは、人、物の実際の動きを出来る限り全体的にシミュレーションすることです。
「この○○一覧の作業中欄の値を見てＡ担当は何を判断してどの様なアクションを起すのか？
それはいったい何故なのか？
（例えば遅延が発生した場合の責任がＡ担当にあるため、
または業務数より遅延業務数が評価基準として重く上席者より叱咤されるため）
また、Ｂ担当、Ａ統括者はどうなのか？」
「Ａ担当が業務を終わらせるとその日時をシステムに入力し、
物がＢ担当に届く前に△△一覧に表示され、
Ｂ担当は△△一覧の□□欄を見て業務の事前準備として、、、、」
といった風にシステムの各所を全体に渡ってシミュレーションすることです。
コツは、出来るだけ早く全体的につじつまがあうようにシミュレーションすることです。
早い段階では、ほんの一部の情報から全体をシミュレーションしなくてはいけないわけですから
全体の九十パーセント以上が想像の場合もあります。
しかし、全体的にシミュレーションできていることが重要なのです。
それが無ければ、お客様との打ち合わせの際の一言で
「ある一箇所の想定が成り立たずに一部分を変えると、他の箇所の想定が覆り、
と言った具合にシミュレーションの全体像を書き換える。」ことが出来なくなります。
つまりシミュレーションの全体像があればこそ、ちょっとしたお客様の一言、
ちょっとした資料の一句から多くの情報を引き出せるのです。
ここで大事なのは、きちんとつじつまが合うことです。
断片的な情報から全体像を作ろうとするので
大きなブラックボックスが出来てしまうのはしょうがないのですが、
既知の事柄に対しては少しの矛盾も発生しないようにしなければなりません。
そしてシミュレーションの全体像があるからこそ、
的を得たシステムの外部設計を行うことが出来るのだと思います。
長い間、業務システム開発のプロフェッショナルとして仕事していれば
お客様と深くコミュニケーションを取れる場合もあれば、
まったくコミュニケーションを取れない場合もあります。
いずれにせよこの方法が有益であると思います。
お客様と話が出来ないとしても、
例えば既存データベースの項目名だけでも多くのことが想像できるはずです。
少なくとも何らかしらの資料は見せてもらえるはずです。
（何にも見せてもらえないのであれば、そもそもシステムを構築していくことは不可能です。）
入手できた情報は、古墳から発掘された壺のかけらのように大事に扱って下さい。
かけら自体は間違っていることはなく、
組み合わせ方のほうが絶対的に間違っているはずなのですから。
ちょっとした細かいことをないがしろにしてはいけません。
必ず得られた情報のバックボーンには現実世界が控えているのです。
おかしいと思えるところがあったなら、それは単に自分が解っていないだけの話なのです。
経験上、ほぼ百パーセントお客様のほうが正しいはずです。
私が経験した中では、ただ私の理解がそこまで到達していなかっただけということが全てです。
落ち着いて考えて見れば、現実世界で行われていることは
その道の数多くのプロフェッショナル達が長い年月かけて作り上げてきたものです。
それに対してシステム開発者側は、その道の実務についたこともない、
何も知らないに等しい素人の思いつきに過ぎません。
どう考えても前者の方が圧倒的に正しいのは当たり前のことです。
もちろん外から客観的に見ているからこそ解ることもあります。
現実世界のシミュレーションが細部まで出来上がれば、
的を得た疑問、問題意識の共有がはじめて可能となるでしょう。
良く良く考えた先にだけ的を得た提案を生む土壌があるのだと思います。
]]></description>
			<content:encoded><![CDATA[<p>ちょっと、仕事でばたばたしているうちに、<br />
ブログの更新がひさしぶりになってしまいました。<br />
また、がんばって書きますので宜しくお願いします。</p>
<p>ＳＥに必要とされる能力のうちシステムの内部設計に必要とされる部分は、<br />
いままでブログで述べてきたようにプログラマに必要とされる能力の延長線上にあります。<br />
しかしながらそれは半分でしかなく、<br />
もう半分は現実世界をシミュレーションする能力であると思います。</p>
<p>業務システムの出来ることは「絵が出て、紙が出るだけ」と極論しましたが、<br />
だからこそ業務システムが何を必要とされているかは<br />
「絵や紙が出て何が起こるか」を正確に把握する必要があります。<br />
システムの外部設計をするには業務知識が必要です、<br />
このことは極々言い古された単純なことですが。。。<br />
そしてそれは個々に独自の事情をもっていて、異なります。<br />
それをどのように正確に早く把握するかがＳＥのスキルです。</p>
<p>そのために私はいつも次のようなことを気にかけています。<br />
それは、人、物の実際の動きを出来る限り全体的にシミュレーションすることです。</p>
<p>「この○○一覧の作業中欄の値を見てＡ担当は何を判断してどの様なアクションを起すのか？<br />
それはいったい何故なのか？<br />
（例えば遅延が発生した場合の責任がＡ担当にあるため、<br />
または業務数より遅延業務数が評価基準として重く上席者より叱咤されるため）<br />
また、Ｂ担当、Ａ統括者はどうなのか？」</p>
<p>「Ａ担当が業務を終わらせるとその日時をシステムに入力し、<br />
物がＢ担当に届く前に△△一覧に表示され、<br />
Ｂ担当は△△一覧の□□欄を見て業務の事前準備として、、、、」<br />
といった風にシステムの各所を全体に渡ってシミュレーションすることです。</p>
<p>コツは、出来るだけ早く全体的につじつまがあうようにシミュレーションすることです。<br />
早い段階では、ほんの一部の情報から全体をシミュレーションしなくてはいけないわけですから<br />
全体の九十パーセント以上が想像の場合もあります。</p>
<p>しかし、全体的にシミュレーションできていることが重要なのです。<br />
それが無ければ、お客様との打ち合わせの際の一言で<br />
「ある一箇所の想定が成り立たずに一部分を変えると、他の箇所の想定が覆り、<br />
と言った具合にシミュレーションの全体像を書き換える。」ことが出来なくなります。</p>
<p>つまりシミュレーションの全体像があればこそ、ちょっとしたお客様の一言、<br />
ちょっとした資料の一句から多くの情報を引き出せるのです。<br />
ここで大事なのは、きちんとつじつまが合うことです。<br />
断片的な情報から全体像を作ろうとするので<br />
大きなブラックボックスが出来てしまうのはしょうがないのですが、<br />
既知の事柄に対しては少しの矛盾も発生しないようにしなければなりません。</p>
<p>そしてシミュレーションの全体像があるからこそ、<br />
的を得たシステムの外部設計を行うことが出来るのだと思います。</p>
<p>長い間、業務システム開発のプロフェッショナルとして仕事していれば<br />
お客様と深くコミュニケーションを取れる場合もあれば、<br />
まったくコミュニケーションを取れない場合もあります。<br />
いずれにせよこの方法が有益であると思います。</p>
<p>お客様と話が出来ないとしても、<br />
例えば既存データベースの項目名だけでも多くのことが想像できるはずです。<br />
少なくとも何らかしらの資料は見せてもらえるはずです。<br />
（何にも見せてもらえないのであれば、そもそもシステムを構築していくことは不可能です。）</p>
<p>入手できた情報は、古墳から発掘された壺のかけらのように大事に扱って下さい。<br />
かけら自体は間違っていることはなく、<br />
組み合わせ方のほうが絶対的に間違っているはずなのですから。</p>
<p>ちょっとした細かいことをないがしろにしてはいけません。<br />
必ず得られた情報のバックボーンには現実世界が控えているのです。</p>
<p>おかしいと思えるところがあったなら、それは単に自分が解っていないだけの話なのです。<br />
経験上、ほぼ百パーセントお客様のほうが正しいはずです。<br />
私が経験した中では、ただ私の理解がそこまで到達していなかっただけということが全てです。</p>
<p>落ち着いて考えて見れば、現実世界で行われていることは<br />
その道の数多くのプロフェッショナル達が長い年月かけて作り上げてきたものです。<br />
それに対してシステム開発者側は、その道の実務についたこともない、<br />
何も知らないに等しい素人の思いつきに過ぎません。<br />
どう考えても前者の方が圧倒的に正しいのは当たり前のことです。</p>
<p>もちろん外から客観的に見ているからこそ解ることもあります。<br />
現実世界のシミュレーションが細部まで出来上がれば、<br />
的を得た疑問、問題意識の共有がはじめて可能となるでしょう。<br />
良く良く考えた先にだけ的を得た提案を生む土壌があるのだと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=27</wfw:commentRss>
		</item>
		<item>
		<title>備忘録（またしても例外を考える能力）</title>
		<link>http://www.fores.jp/blog/?p=26</link>
		<comments>http://www.fores.jp/blog/?p=26#comments</comments>
		<pubDate>Tue, 08 Apr 2008 09:14:44 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=26</guid>
		<description><![CDATA[まだまだ、システム設計編が続きます。
「例外を考える能力」ですが、これもプログラミングの話と同様です。
システムの内部設計をしている最中に品質の作りこみを行うためです。
その一つは、設計したプログラム群の動作シミュレーションを頭の中で行うことです。
まあこれはプログラミングの話が大規模になっただけでほぼ同じことです。
頭の中に入るシステム内部設計の量は、
プログラム換算すると５００Kステップぐらいまでが限界だと思います。
さすがにそれを超えて細部まで同時期に把握できている人は、
お目にかかったことがないです。
（でも、そんな人もきっといるんでしょうね。）
と言うのは、設計したプログラム群の動作シミュレーションをする際のコツは、
頭の中に同時期に全部入れてしまうことです。
二つ目は、例外的なケースを想像することです。
実はこちらの方がやっかいで．．．
そこで必要となる能力については次回に書きます。
スイマセン。
今回はたったコレだけでした。
]]></description>
			<content:encoded><![CDATA[<p>まだまだ、システム設計編が続きます。</p>
<p>「例外を考える能力」ですが、これもプログラミングの話と同様です。<br />
システムの内部設計をしている最中に品質の作りこみを行うためです。</p>
<p>その一つは、設計したプログラム群の動作シミュレーションを頭の中で行うことです。<br />
まあこれはプログラミングの話が大規模になっただけでほぼ同じことです。</p>
<p>頭の中に入るシステム内部設計の量は、<br />
プログラム換算すると５００Kステップぐらいまでが限界だと思います。<br />
さすがにそれを超えて細部まで同時期に把握できている人は、<br />
お目にかかったことがないです。<br />
（でも、そんな人もきっといるんでしょうね。）</p>
<p>と言うのは、設計したプログラム群の動作シミュレーションをする際のコツは、<br />
頭の中に同時期に全部入れてしまうことです。</p>
<p>二つ目は、例外的なケースを想像することです。<br />
実はこちらの方がやっかいで．．．<br />
そこで必要となる能力については次回に書きます。</p>
<p>スイマセン。<br />
今回はたったコレだけでした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=26</wfw:commentRss>
		</item>
		<item>
		<title>備忘録（またもや単純さの追求）</title>
		<link>http://www.fores.jp/blog/?p=25</link>
		<comments>http://www.fores.jp/blog/?p=25#comments</comments>
		<pubDate>Tue, 01 Apr 2008 09:26:21 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[備忘録]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=25</guid>
		<description><![CDATA[以前にお話したプログラミングの話の中で「シンプル　イズ　ザ　ベスト」と言ったことを述べましたが、
器の話を「データを格納する何か」にまで広げると同じ話です。
つまり、「単一の目的の器を、必要最小限の数だけ、必要最短期間だけ保持する。」
ということを意識しなければなりません。
システム内部設計のレベルで加えて意識しないといけないのは、
器といっても階層があるということぐらいです。
つまり汎用的なリレーショナルデータベースであれば、
カラムのレベルでの器があり、
テーブルのレベルでの器があり、
データベースのレベルでの器があというようなことです。
どのレベルでも同じことを意識しなければなりません。
（まあこれはＤＢの正規化と同じ話ですが。）
良くカラムのレベルでは意識されるのですが、
テーブルのレベルでは意識が薄いことが多いように思います。
コツはプログラミングの場合と同じなのですが「口に出して一言で言えるかどうか」をチェックすることです。
「口に出して一言で言えるかどうか」をチェックする際、
その中に２つ以上のものが入っていたり、
一言で言えたとしても他にも同じものが存在してたりしたら
（当然ながら）ダメです。
まあ言えたとしても、つまるところ、
それは自分の頭の中を整理しただけかもしれません。
しかし、そのこと自体が大事で、
「問題領域のデータをどう捉えるか」自体がポイントなんだと思います。
器の次に意識すべきは手続きですが、
こちらも器の話と同じで階層が深いことを意識する以外ではプログラミングと同様です。
こちらも「口に出して一言で言えるかどうか」をチェックすることは有効だと思います。
]]></description>
			<content:encoded><![CDATA[<p>以前にお話したプログラミングの話の中で「シンプル　イズ　ザ　ベスト」と言ったことを述べましたが、<br />
器の話を「データを格納する何か」にまで広げると同じ話です。<br />
つまり、「単一の目的の器を、必要最小限の数だけ、必要最短期間だけ保持する。」<br />
ということを意識しなければなりません。</p>
<p>システム内部設計のレベルで加えて意識しないといけないのは、<br />
器といっても階層があるということぐらいです。<br />
つまり汎用的なリレーショナルデータベースであれば、<br />
カラムのレベルでの器があり、<br />
テーブルのレベルでの器があり、<br />
データベースのレベルでの器があというようなことです。<br />
どのレベルでも同じことを意識しなければなりません。<br />
（まあこれはＤＢの正規化と同じ話ですが。）</p>
<p>良くカラムのレベルでは意識されるのですが、<br />
テーブルのレベルでは意識が薄いことが多いように思います。<br />
コツはプログラミングの場合と同じなのですが「口に出して一言で言えるかどうか」をチェックすることです。</p>
<p>「口に出して一言で言えるかどうか」をチェックする際、<br />
その中に２つ以上のものが入っていたり、<br />
一言で言えたとしても他にも同じものが存在してたりしたら<br />
（当然ながら）ダメです。</p>
<p>まあ言えたとしても、つまるところ、<br />
それは自分の頭の中を整理しただけかもしれません。<br />
しかし、そのこと自体が大事で、<br />
「問題領域のデータをどう捉えるか」自体がポイントなんだと思います。</p>
<p>器の次に意識すべきは手続きですが、<br />
こちらも器の話と同じで階層が深いことを意識する以外ではプログラミングと同様です。<br />
こちらも「口に出して一言で言えるかどうか」をチェックすることは有効だと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=25</wfw:commentRss>
		</item>
		<item>
		<title>情報処理試験</title>
		<link>http://www.fores.jp/blog/?p=24</link>
		<comments>http://www.fores.jp/blog/?p=24#comments</comments>
		<pubDate>Fri, 28 Mar 2008 04:29:10 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[ブログ]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=24</guid>
		<description><![CDATA[うちの会社でも
春の情報処理試験を受ける方が
数多くいます。
会社としては、特に褒賞的なところも、
強制的なところもないのですが
個々の方のモチベーションの高さに
本当に勇気付けられます。
私も、会社としてそれにこたえられるよう
また個人としても日々の勉強を続けていけるよう
がんばります。
ちょっと話は変わってしまいますが。
最近、ＷＥＢのニュースで
イギリスで数億円の宝くじを当てた男性が
仲間がすきだからという理由で
マクドナルドに店員として再就職した
という記事を見ました。
仕事をする理由はお金以外でも、
人間関係の中にあると言うことだと思います。
モチベーションを高めるといっても
一人ぼっちでは、長い間それを保つことは本当に難しいと思います。
でも、刺激を与えてくれる人が近くにいると
結構、影響を受けて元気が沸いてきたりするものです。
お互いが良い人間関係を築きながらも刺激し合い、
個々が自己研鑽をし続けられるような雰囲気を
会社の中につくっていけたら、
と思っています。
]]></description>
			<content:encoded><![CDATA[<p>うちの会社でも<br />
春の情報処理試験を受ける方が<br />
数多くいます。</p>
<p>会社としては、特に褒賞的なところも、<br />
強制的なところもないのですが<br />
個々の方のモチベーションの高さに<br />
本当に勇気付けられます。</p>
<p>私も、会社としてそれにこたえられるよう<br />
また個人としても日々の勉強を続けていけるよう<br />
がんばります。</p>
<p>ちょっと話は変わってしまいますが。</p>
<p>最近、ＷＥＢのニュースで<br />
イギリスで数億円の宝くじを当てた男性が<br />
仲間がすきだからという理由で<br />
マクドナルドに店員として再就職した<br />
という記事を見ました。</p>
<p>仕事をする理由はお金以外でも、<br />
人間関係の中にあると言うことだと思います。</p>
<p>モチベーションを高めるといっても<br />
一人ぼっちでは、長い間それを保つことは本当に難しいと思います。<br />
でも、刺激を与えてくれる人が近くにいると<br />
結構、影響を受けて元気が沸いてきたりするものです。</p>
<p>お互いが良い人間関係を築きながらも刺激し合い、<br />
個々が自己研鑽をし続けられるような雰囲気を<br />
会社の中につくっていけたら、<br />
と思っています。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=24</wfw:commentRss>
		</item>
		<item>
		<title>桜が咲きました</title>
		<link>http://www.fores.jp/blog/?p=23</link>
		<comments>http://www.fores.jp/blog/?p=23#comments</comments>
		<pubDate>Thu, 27 Mar 2008 03:31:59 +0000</pubDate>
		<dc:creator>izumi</dc:creator>
		
		<category><![CDATA[ブログ]]></category>

		<guid isPermaLink="false">http://www.fores.jp/blog/?p=23</guid>
		<description><![CDATA[家の直ぐ目の前が小学校のグラウンドで
桜の木がぐるっと周りに植えられているのですが
花が咲き始めました。
まだ１、２分咲き程度ですが
青い空に薄いピンクの花が本当にきれいです。
最近（というか今年にはいってから）、小さな失敗を数多く繰り返して
ちょっとヘコむところもあったのですが、
ちょっと癒されて勇気づけられました。
自分自身の中の恐れとか欲とかに打ち勝てるよう、
言い換えれば「強く」なれるようがんばろう、
と前向きな気持ちにさせてくれるきれいな桜でした。
]]></description>
			<content:encoded><![CDATA[<p>家の直ぐ目の前が小学校のグラウンドで<br />
桜の木がぐるっと周りに植えられているのですが<br />
花が咲き始めました。<br />
まだ１、２分咲き程度ですが<br />
青い空に薄いピンクの花が本当にきれいです。</p>
<p>最近（というか今年にはいってから）、小さな失敗を数多く繰り返して<br />
ちょっとヘコむところもあったのですが、<br />
ちょっと癒されて勇気づけられました。</p>
<p>自分自身の中の恐れとか欲とかに打ち勝てるよう、<br />
言い換えれば「強く」なれるようがんばろう、<br />
と前向きな気持ちにさせてくれるきれいな桜でした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fores.jp/blog/?feed=rss2&amp;p=23</wfw:commentRss>
		</item>
	</channel>
</rss>
