give IT a try

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

システム開発

シンプルでわかりやすいコードを書くためにあなたがすべきこと

はじめに 先日、とある知りあいのRubyプログラマからこんな相談を受けました。(内容はちょっとボカしてます) 社内のコードレビューでもっときれいなコードを書けるようになった方がいい、と言われました。「きれいなコードを書けるようになれ」と言われて…

Basecampに学ぶ、10倍の生産性を生み出す考え方とソフトウェアビジネスのアイデア

はじめに 先日、こちらのページでRuby on Rails作者のDavid Heinemeier Hansson (DHH) 氏と、Basecamp (旧37signals) 創業者のJason Fried氏の対談記事を読みました。「10倍プログラマ」の神話、Ruby on Railsの生みの親が語った高い生産性のカギとは!? 「10…

「動的型付言語は使い物にならない」か?

はじめに Ruby対Scala, 動的型付言語は使い物にならないという興味深いWeb記事を読みました。 はじめに断っておきますが、おいらは別にRubyが嫌いなわけではないですし、「動的型付言語は使い物にならない」と思っているわけではありません。 そもそもRubyや…

体系的な開発プロセスや開発方法論を身につけるための参考書籍

はじめに システム開発って、免許がなくてもできちゃうので誰もが「自称プロ」です。 だから豊富な経験と専門知識を持った人が担当することもあれば、勘と度胸と限られた経験しかない人が担当することもあるわけです。 規模の小さいシステムであれば後者のよ…

おかしなおかしな目標管理

組織のゴール うまく書けるかどうか分からないけど、前々からちょっと気になっていた話です。 うちの会社では半期ごとにゴールを設定します。 ゴールは通常、組織全体で定量化(数値化)できるものが設定されます。 ゴールを達成したかどうかで、特別ボーナス…

自動化テストで気をつけること

先日、会社のメンバーからテストの自動化に苦労しているという話を聞きました。 そういえば、一言で「テストの自動化」といっても結構奥が深いので、自動化テスト初心者が注意すべき点や重要なポイントをちょっと考えてみました。 自動化テストの注意点 どの…

新卒者に何か言葉を贈るなら

はじめに こちらのブログをはじめ、季節柄最近ちょくちょく新卒者向けのメッセージを書いたブログを目にするようになってきました。 これまで新卒者に贈るメッセージなんてわざわざ考えたこともなかったのですが、もし自分なら何て言うんだろうなあと考えて…

開発時間短縮のためのプラクティス10選

このエントリを書いた背景 先日会社で「開発時間を短縮するためのアイデアやノウハウをみんなでシェアしよう」という課題が出されました。 「カウボーイコーディングとコピペプログラミングで技術的負債たっぷりのシステムを作りましょう。そうすれば開発時…

When Database Source Control Goes Bad 翻訳 Part9

The End… ? 最後に…? And in the end, it is all about productivity. Much like every other aspect of development, your approach should not be dictated by what you enjoy, or your religious language preferences, or office politics, or any of th…

When Database Source Control Goes Bad 翻訳 Part8

Running with a Local development database. ローカル開発環境のデータベースで実行する Hopefully I’ve convinced you that you should have your own copy of the database for your local development. No matter how hard you try, if you have a whole…

When Database Source Control Goes Bad 翻訳 Part7

前回からかなり間が空いてしまいましたが、海外サイトのWeb記事の翻訳を再開してみたいと思います。 ちなみに前回までのあらすじははこちらです。↓When Database Source Control Goes Bad 翻訳 Part1 - give IT a try When Database Source Control Goes Bad…

数値で測るコード品質

プロフィールのところにも書いてあるのですが、おいらの目標は「美しく無駄のないシステムアーキテクチャを設計、構築すること」です。 なぜならシステムの保守性や拡張性って、アーキテクチャやコードの品質によって雲泥の差が出ることを、幾度となく痛感し…

「ポータブルなスキル」や「エンジニアとしての基礎体力」の重要性

先日、チーム内ミーティングでメンバー全員が今期の自己啓発目標を発表していました。 その中で多く目立ったのが「C#を習得する」とか「Perlを習得する」というような新しい開発言語を習得する目標でした。 最初は「新しい言語にチャレンジするのはいいこと…

モデルを中心としたソフトウェアアーキテクチャを採用する意義

今とある新規社内システムの設計と開発を担当しています。 ソフトウェアアーキテクチャはおいらが考えました。 簡単に言うとこんな感じです。 UI層/サービス層/データアクセス層の3レイヤーに分ける 開発言語はC#、UIはASP.NET、データアクセスはADO.NETを採…

When Database Source Control Goes Bad 翻訳 Part6

Isolating your development database 開発用データベースを隔離する Imagine that you working on a project that involves several layers of DLLs communicating with each other. Because you are in active development, you and your team are constan…

When Database Source Control Goes Bad 翻訳 Part5

Developing Application code Locally ローカル環境でアプリケーションコードを開発する These days, most every application programmer develops their code locally. That’s just what you do. Many developers have learned the hard way that this is i…

When Database Source Control Goes Bad 翻訳 Part4

「The Catch」の後半部分です。記事全体からするとそろそろ折り返し地点?いやあ長いですね〜。 Anyhow, during the next deployment to QA, someone needs to remember that these specific changes need to get deployed. Since there is no defined strat…

When Database Source Control Goes Bad 翻訳 Part3

翻訳第3回です。このセクションは長いので今回は途中まで。 週末はちょいと旅行に出かけるので、次の更新はおそらく来週になります。 The Catch 難題 Let’s imagine that all database changes need to be checked into an isolated directory in source-co…

When Database Source Control Goes Bad 翻訳 Part2

The Impedance Mismatch インピーダンス・ミスマッチ(開発者とDBAの違い) Why aren’t Database DML and DDL subject to the same level of source-control as the application? Why don’t developers think about databases the same way that they think ab…

When Database Source Control Goes Bad 翻訳 Part1

2010.03.07追記 結局全9回になりました。 かなり長いですけど、何回かに分けて読んでみてください。 When Database Source Control Goes Bad 翻訳 Part2 - give IT a try When Database Source Control Goes Bad 翻訳 Part3 - give IT a try When Database …

犬小屋と高層ビルの違い

ちょっと興味深いエントリを見つけました。 IDE教育に不安を覚えること - みねこあ なるほど、Smart UIと呼ばれる作り方が、システムの品質を下げるという点は同意です。 ただ、その原因がIDEにあるのかというと、必ずしもそれだけではない気がします。 おい…

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

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

ダメエンジニアの使い道

ダックタイピングは間違い? - give IT a try ↑のエントリで書いたダックタインピングとダメエンジニアの関係や考え方について、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に感想を載せてます。 継続的インテグレーション入門 開発プロセスを自動化する47の作法作者: ポール・M・デュバル,スティーブ・M・マティアス,アンドリュー・グローバー,大塚庸史,丸山大輔,岡本裕二,亀村圭助出版社/…

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

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

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

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