give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

システム開発

はやく、やすく、うまい情報システム部の作り方

はやく、やすく、うまく(品質よく)システムを開発し、維持管理する情報システム部の作り方を紹介します。 情報システム部のバジェットを決める。 既存の情報システム部を解散する。*1 バジェットの範囲内で最高のマネージャーと最高のエンジニアを最高の待遇…

ダメエンジニアの使い道

blog.jnito.com↑のエントリで書いたダックタインピングとダメエンジニアの関係や考え方について、Matz先生の非常に興味深いコメントを読ませてもらいました。 以下にちょっと引用してみます。(またまた無断転載ですみません・・・)ダメエンジニアしか手に入…

失敗は成功の元

なんか微妙なコラムが載っていました。 第11回 新しいシステム開発技法への挑戦 〜オブジェクト指向の失敗経験より〜 http://gihyo.jp/lifestyle/serial/01/dilemma/0011 始めての挑戦で失敗に終わったら即、否定的ですか?? 初心者ばかりを集めたチームで…

効率化システムと戦略的システムの違い

Martin Fowler先生のブログに新しい記事が載っていました。 UtilityVsStrategicDichotomy http://martinfowler.com/bliki/UtilityVsStrategicDichotomy.html 仕事を効率化するだけのシステムと戦略的なシステムの違いを述べているようです。 戦略的なシステ…

オープンソースから美しい設計を学ぶ

最近社内でWindows Formを使った開発案件が出てきました。 「そういえばWindows Formってあまり開発経験がないし、設計のベストプラクティスみたいな本も見たことないなあ」と思い、インターネットでWindows Formのアーキテクチャ設計が学べるサイトがないか…

論理的には可能でも物理的に無理なこともある

ひさびさに共感出来るコラムを見つけました。 その「やりましょう!」は大丈夫なの? http://el.jibun.atmarkit.co.jp/regtan/2010/07/post-c84b.html ユーザーの声から新たな要件を抽出し実装するという「やりましょう!」は、ユーザーのサービスに対する満…

継続的インテグレーション(CI)のお勉強

また一冊本を読み終わりました。 Amazonに感想を載せてます。 継続的インテグレーション入門作者: ポール・M・デュバル,スティーブ・M・マティアス,アンドリュー・グローバー,大塚庸史,丸山大輔,岡本裕二,亀村圭助出版社/メーカー: 日経BP社発売日: 2009/08/…

質が悪けりゃコストがかかる

↓なんか自分の現状とかなり一致するな〜と思ったコラムです。 現場担当者の悩み http://el.jibun.atmarkit.co.jp/esmconsul/2010/06/post-65bd.html 保守に時間がかかる。 ほんまに。 作るのにも時間がかかりますが、運用や保守はその数倍時間がかかることも…

安定しているシステム ≠ エラーやトラブルのないシステム

昨日は社内で開発されたとあるシステムの引き継ぎを受けていました。 「このシステムは比較的安定しています。ユーザーから不具合やトラブルの報告はほとんどありません」 ということだそうです。 説明が一通り終わった後、実際にユーザーのオペレーションを…

How to improve performance?

おいらが読んでいるメルマガに以下のような記事がありました。 画面表示が想定外の遅さ 処理見直し「1秒の闘い」に勝利 http://itpro.nikkeibp.co.jp/article/COLUMN/20100308/345466/ 冒頭には 1. 新営業店システムの開発中,画面の表示が予想以上に遅いと…

効率の良いInfo Pathフォーム開発

これから着手する開発案件にInfo PathとShare Pointを使った報告書システムがあります(これまでにも何度か書いてますが)。 ところがこの報告書は入力項目が多く、ワークフロー機能も持たせなきゃいけません。 Info Pathは基本的に便利なのですが、普通に作る…

Microsoftの功罪?

例の残念なコラムの筆者さんのコメントから。 私はデータベースを活用してます。コメントをいただいた何名のかたはC#を使っているそうですが、DataSet DataTable テーブルオブジェクトとかDataTableからGridView(表)へのバインドなどのテクニックを使って…

44のアンチパターンに学ぶDBシステム

先日購入した本のうち一冊を読み終わりました。 44のアンチパターンに学ぶDBシステム (DB Magazine SELECTION)作者: 小田圭二出版社/メーカー: 翔泳社発売日: 2009/11/28メディア: 単行本(ソフトカバー)購入: 14人 クリック: 123回この商品を含むブログ (2…

人間は機械じゃない

昨日は次に担当するシステムの仕様打ち合わせをやっていました。 やっぱり人間界のルールをシステムに落とし込むのって難しいですね・・・。 主にワークフロー絡みの話だったんですが、ある程度枠組みはあっても「こういう場合に限りこうなる」とか「たまに…

Info Pathのお勉強

次の開発案件に向けてInfo PathとShare Pointのお勉強をしてました。 他のOffice製品にも言えることですが、「ある程度のことをやるにはとっても便利。でもその"ある程度"を超えてしまうとちょっと大変」という印象があります。 今回の案件もかなり入力項目…

「おいしい」ところを最大限に活かす!

プログラミングにおいてはひとつのやり方をいつでもどこでも使おうとするより、それに固執せず言語の特性にあわせて一番「おいしい」ところを活用するプログラミングにすべきだとおいらは考えます。 たとえばこんな感じです。 例外 例外はエラー処理を非常に…

.NETの例外処理

外部ベンダーさんに開発してもらったASP.NETの社内システムがあって、昨日はそのソースを眺めてました。 いろいろツッコミどころはありますが、一番気になったのは例外処理のまずさ。 やっぱり、こういう感じなんですね〜。 bool GetDataSet(string id, out …

プログラムと同期が取れていないストアド

しょっちゅうエラーログが飛ばされてくるシステムがあるので、エラーの原因を調査していました。 その中の理由のひとつに「プログラムと同期が取れていないストアド」がありました。 具体的にはこんな感じです。。。 ストアドの実行結果から特定のカラムの値…

Design Horror!

このブログでも何回か登場している「ヤヴァイシステム」で、またまた驚きの大発見をしてしまいました。。。 なかなか一覧表示のレスポンスが上がらないので、あの手この手でSQLをチューニングしていました。 そうするとどうもボトルネックと思われるストアド…

結局ウォーターフォール?

開発プロセスはウォーターフォールよりもアジャイル開発やUP/RUPのような反復型開発の方がいい!とずっと信じているおいらですが、これからやろうとしている案件の計画を立てたら・・・「あれ?これって完全にウォーターフォール?」みたいな計画になってし…

Nasty design can blast your brain!

ひどい設計は頭をおかしくします。 ヘタなプログラム(たとえばブロックが長過ぎるとか、重複が多いとか)もデバッグに苦労しますが、ほとんどメリットが感じられないのに開発者の自己満足としか思えないくらい、技巧的な設計の上に構築されたシステムもまた超…

人の気持ちがわかるコンパイラ

「あるWebシステムの一覧画面にカラムを一つ追加してほしい」という改造依頼を受けました。 話を聞く限り、楽勝そうなのですが・・・蓋を開けたらガーン!! 数百行あるようなメソッドがわんさか存在するコードの固まりでした。 一通りソースを眺めましたが…

ASP.NET + Info Path + SQL Server

次の開発案件の技術調査をやってました。 「ASP.NET + Info Path(XML File) + SQL Server」で出来るだけ楽して報告書管理システムを作るというもの。 「楽しよう」というコンセプトながら、Info Pathのあたりが初挑戦の分野なのでハマりまくり・・・。 週末…

製造装置制御プログラム開発トレーニング

最近は連日製造装置制御プログラム開発トレーニング(通称Automationトレーニング)を受けているのであまり書く内容がありません。。。(1月中はほぼ毎日午後の時間がつぶれます) しかし、うちの会社は製造業なので現場や装置の仕組みが分かっているのと分かっ…

ユーザーとのコミュニケーション

ASP.NET案件の仕様打ち合わせに参加しました。 小規模システムなので仕様もすぐ決まるだろうと思っていましたが、思いのほか難航。 実はこちらがユーザーの意図をきちんと汲み取れないまま仕様を考えていたり、こちらは頭の中でデータベーステーブルを思い描…

.NET Applicationのエラー処理

エラー処理(例外処理)の設計はシステム設計の重要課題の一つです。 設計が悪いと以下のような症状が出ます。 ソースコードがエラー処理の分岐だらけになる。 エラーに関する情報が不足し、原因調査に時間がかかる。 エラー発生時のシステムの振る舞いに一貫…

脳に優しいC#のメソッド設計

Code Complete, Code Craft, 危険なプログラムの処方箋といった書籍にも書いてあるベストプラクティスやアンチパターンをまとめて、「脳に優しいC#のメソッド設計」を定義するとすればこんな感じかも。 単一の責務を持つ(1つのメソッドであれもこれもしない)…

要求開発スキル

先日書いた小規模ASP.NET案件のお手伝いで、仕様決めのミーティングに参加しました。 納期が短い(来年3月から本番稼動希望)ので、できるだけあっさりした仕様にしないと間に合わないんですが、どうも若干凝った方向へ流れがちに・・・。 ただお客さん自身は…

またまたお手伝い

別件でASP.NETを使った比較的小規模なWebシステムを開発するみたいなので、その設計や実装をお手伝いすることになりそうです。 今の会社に入社してから3年になりますが、ずっと保守保守保守・・・ばかりでした。 なんかここ最近になって突然新規開発モノが増…

ソフトウェア設計手法を教えることの難しさ

例の在庫管理システムの一部をとりあえず第一リリースするため、今度は設計のお手伝いをすることにしました。 最終的にはかなり大規模なシステムにしたいようなので、しっかり設計しておかないと後が大変、ということでこれまでの経験や勉強して学んできた設…