投稿

Do Look Think Grow

日経を読んでてメモ。 高すぎる目標を立て、「できなかった」ということを突きつけるのではなく、適切なステップを用意し小さな成功を積み重ねることで同じゴールに到達するために必要な考え方。 Do 試す、経験する Look 確認、チェック、観察 Think 分析、理由 Grow 改善、一般化 まさに少し前の仕事の状況が高すぎる目標、最終目標だけを用意して「できてない」を突きつけられるだけの状況だった。 やっぱり小さい成功体験、ここまではちゃんと到達したって必要だよね。。。 なお、PDCAはチームの成長段階が第3段階になっていないと使えないらしい。 チームの成長段階ってなに?と思ったら結構体系化されてるんだね。 たとえばこちら。 成長の4段階 4段階という場合と4段階に「衰退期」を加えた5段階という場合ある様子。 で、この中の第3段階である「標準期」にならないとPDCAが使えないと。 たしかに形成期や混乱期ではPDCAするようなかっちりした進め方は煙たがられそう。 それを踏まえると混乱期にDLTGをうまく回すには 「実現可能なステップ、小さなゴール」 「ステップはメンバーと合意する」 「Do=試し方、経験方法はメンバーにまかせる」 「振り返りをちゃんと行い、Loog=結果の観察、Think=理由を考える」 「改善案を決める」 がポイントになるのではないだろうか。 なんということでしょう。 まさにアジャイル。 なお、Doの部分で「できないからタスクを取り上げる」を安易にやってしまうと、後のLook, Think、Growがメンバーのものにならなくてモチベーションダウンに繋がるので悪手ということになりそう。一方で、タスクが遅延しすぎても困るるのできっとここのハンドリングとメンバーのモチベーションをどう維持するかがマネージャー、リーダーの腕なんでしょうねぇ。 DLTGを回して、成長して、「うちらはこれをやってこうぜ!」となると標準期には社風とか、カラーと呼ばれるものができるのでしょうな。

[iOS]横になった動画を書き出し時に縦にする

iOSでAV Foundationを使うと動画を保存できたり合成できたりするが、基本的に横向きで動画データが保存されてしまう。 そのまま保存するならSessionに向きをいれれば良いんだけどね。 取ってある動画を使って文字とか図形とかいれようとしたら横になってて。 縦にしたい。 AVMutableCompositionTrackにtransformを設定するときに90度回転させればいいみたい。 AVMutableCompositionTrack* compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; //rotate 90 degree [compositionVideoTrack setPreferredTransform:CGAffineTransformRotate(videoTrack.preferredTransform, M_PI_2)]; マイナス付きの「- M_PI_2」とも試したけどどっちでもよさげ。 どっちかというとCALayerの座標軸がUIViewと違うのでハマってハマって...

[iOS]UIViewの階層構造を調べるrecursiveDescription

UIViewの階層構造を調べる為につかえるメソッドのメモ 自作のUIViewの子クラスのhファイルに以下の記述を追加 - (NSString *)recursiveDescription; 使いたいところで以下を呼び出す。 NSLog(@"%@", [self recursiveDescription]); こんな感じで階層構造が出力される。 2012-12-30 23:54:58.902 CustomTableTest[5767:c303] > | > | > | > | > | > | > 2012-12-30 23:54:58.915 CustomTableTest[5767:c303] resizeTable after {{0, 0}, {300, 50}}

iOSアプリのインストール日時を取得する

イメージ
前回に引き続き、AndroidとiOSのアプリ作成での調査メモを。 Androidはアプリケーション自身が「自分がいつインストールされたのか」を取得できるAPIが存在しますと。 アプリケーションのインストール日時、更新日時を取得する TechBooster APIレベル9,Android2.3からではありますが、このうちインストール日時が特に使いたい機能だった訳です。 で、コレに相当する機能がiOSにあるのかどうか、ここ数日しらべまくりました。 結論から言えば、一発で取得できるメソッドは無いけど、取得はできる、だろうと。 Androiのように上手く取得できるメソッドが無いので、sysctlとかNSTaskとか色々探したものの、すべて検討違いなところで、最終的にはすでに買ってあったObjective-Cの逆引きハンドブックに書いてあったというオチ。 肝はインストールされる「*.app」自身のタイムスタンプを取得できればよいということで、 1、NSFileManagerをつかう 2、ホームディレクトリからアプリ自身のappファイルのパスを設定する という2点でできました。 以下、サンプルコード。 アプリの名前が「AppTimeTest」という前提。 - (void)viewDidLoad { [super viewDidLoad]; //outletの代わりに紐付け textAppInstallDate = (UILabel*)[self.view viewWithTag:2]; textAppUndateDate = (UILabel*)[self.view viewWithTag:4]; textAppFilePath = (UILabel*)[self.view viewWithTag:6]; NSString *appFilePath; //ホームディレクトリパスを取得 appFilePath = NSHomeDirectory(); //ディレクトリパスにappファイル名を追加。 [appFilePath stringByAppendingString:@"AppTimeTest.app"]; ...

スマホアプリのUIデザインとプログラム作成の分離

スマホアプリ開発について。 どうもUIデザインとプログラム作成を物理的にも別々のチームで実施しなければならいようで、「UIデザインの成果物とプログラム作成の成果物」をなんとか分離できないものかと画策しています。 まぁ世間のアプリ開発しているチームの大半はデザイン担当とプログラム作成担当は隣のデスクで分離なんていらないのかも知れませんが…。 まず、AndroidについてはXMLにレイアウトが集約されており、ActivityクラスからXMLの名前をしていし、そこからXML上に設定された各部品のidを指定する事ができるので、こちらはUIデザイン担当はXMLの作成とidの指定をすれば良いであろう、という見解になりました。 問題はiOSについてで、どうやらStoryboardを何も考えずに使うと、ViewとControllerクラスの宣言がStoryboard上でくっついているので「後からコーディングでViewとControllerを紐付ける」という操作が出来ない様子。 実際、プログラム上でself.storyboard instantiateViewControllerWithIdentifierを使っても返ってくるのはControllerなのでviewだけ引っこ抜く事が出来ません。(ここでのselfはカスタムVewController) で、一旦tempControllerという変数に入れて、self.view = tempController.viewとか無理矢理やってみたけど、だめだった。 色々さまよった結果、どうやらStoryboardを使いながらカスタムViewControllerを使うなら、Storyboard上で各画面(シーン)にカスタムViewController紐づける必要がある、というやり方しか見つけられなかった。それではUIデザイン担当がカスタムViewControllerのクラス名を知ってもらう必要が出てくるので、もう少しUIデザイン側がプログラムを知らなくても良いようにしたいなと。 で、Storyboard以前の仕組みであるNibファイルを使うやり方だと、Nibファイル側では具体的なControllerクラスの名前を知らなくても、Controllerクラス側でNibファイルと自身のviewを紐づける事ができるので、デザイ...

mavenからのstruts2練習

イメージ
herokuを使ってみて「そもそもmavenに慣れよう!!」ということで、maven練習のメモ。 まずは、 techscoreのmaven を参考にstrutsアプリをmavenで構築。 以下メモ。 pom.xmlのrepositories、pluginRepositoriesは指定しなくても良いらしい。というか、むしろsnapshotサイトと呼ばれるものを指定するのはやめておけ、という意見もちらほら見かけた。 maven-compiler-pluginはversionを指定しないとmvnコマンドでワーニングが出る。 mvnからtomcatの操作は上手く行かなかった(tomcat7使ったから?)ので、使わなかった。 pom.xmlを更新したらmvn eclipse:eclipseをたたく→Eclipseのプロジェクトを「リフレッシュ」すれば良い。 warが生成されるけど、いらない。それを止める方法は、まだ探してない…。 で、ここからが(結果的に)メインディッシュ。struts1は使った事あるので、さらにstruts2でtechscoreと同じアプリを作ってみることにした。 1.プロジェクト作成 まずは、mvnでディレクトリを準備。アプリ名はwebchat2とした。 cd {eclipseのworkspace} mvn archetype:create -DgroupId=com.example.webchat2 -DartifactId=webchat2 -DarchetypeArtifactId=maven-archetype-webapp javaソース用のディレクトリを準備して、プロジェクトをeclipseで使えるようにする。 cd webchat2 mkdir -p ./src/main/java/com/example/webchat2 mvn eclipse:eclipse ここでEclipseで「インポート>既存プロジェクトをワークスペースへ 」を選んでプロジェクトをeclipseに認識させる。 ※M2_REPO変数の定義忘れずに。詳細は techscoreの4.Eclipseとの連携 を参照。 2.pom.xml修正 で、pomを以下のように変更。 pom.xml <project xmlns...

初めてのherokuでJavaデプロイ

herokuを触ってみようとおもって、herokuでjavaを動かそうとトライした時のメモ。 基本はこちらの2つを参考にさせて頂きました。ありがとうございます。 酒浸りの日々 daicham blog 参考にさせて頂いたブログを見ればherokuのへのpushまでは行けます。 で、自分のアプリにアクセスしたところエラー発生。ブラウザの画面には以下のメッセージが。 Application Error An error occurred in the application and your page could not be served. Please try again in a few moments. If you are the application owner, check your logs for details.  おやぁ? ログを見てみようか…。 $heroku logs (中略) 2012-02-21T14:46:17+00:00 heroku[slugc]: Slug compilation finished 2012-02-21T14:46:19+00:00 heroku[web.1]: Starting process with command `sh target/bin/webapp` 2012-02-21T14:46:20+00:00 app[web.1]: Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld 2012-02-21T14:46:20+00:00 app[web.1]: Caused by: java.lang.ClassNotFoundException: HelloWorld 2012-02-21T14:46:20+00:00 app[web.1]: at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 2012-02-21T14:46:20+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 2012...

ファンクションポイントベースの資料

ずーっと前に 「なんで皆ステップ数で規模とか品質はかるんだ!そんなのシステムによって変わるから今の時代はFPで計測してくれー!」 と書いたら2010年に経済調査会なるところが使えそうなネタを公開していました。 経済調査会 経済調査研究所 研究レポート「ソフトウェア開発データリポジトリの分析」(2010年7月) ここに上がっている中でビットがたったのが8章「FP生産性に関する分析」です。 この中では、工期とFP生産性の関係、ウォーターフォールと繰り返し型開発のFP生産性などが公開されてたりします。 なかでも興味深かったのは8章最後の「最大開発要員規模比とFP生産性」です。 最大開発要員規模比=最大開発要員数/実績FP規模 で算出するため、最大5人で500FPのシステムを開発すると0.01となります。 この資料ではいくつかの分析でFP規模を1000未満と1000以上で分類しているものがあり、最大開発要員規模比の場合も分類されています。 先ほどの500FPの例を考えると、最大開発要員規模比は0.01未満、あるいは0.01〜0.15未満だとFP生産性はそれ以上に比べて1.5倍以上良くなるようです。  (なお、7人で500FPだと0.014。) 普通のプロジェクトでは、人員は最初少なく、途中で最大になって、最後は少なくなると思うので、3→5→3とか、4→7→4てな感じで500FPのシステムを作りきれたら「普通にこなせた」と言えるという事でしょう。 ただ、注意しなければらないのは工期の関係でどうしても最大開発要員数が高くなる場合もあると思います。また、このデータ自体「火を吹いて人員を大量投入されたプロジェクト」も入っているのではと思います。 従って、あくまで「どっちのほうが生産性が良いか」という傾向をつかむ為に使えるとは思いますが、実際の「どれくらいの生産性なのか」「何倍の生産性なのか」という値は参考程度にとどめて実際の見積もりに使うのは避けた方が良いのではないか、と思ったのでした。

iProxyを使ったときのメモ

iProxyを使ったときのテザリングについてメモです。 基本はこちらのblogをみれば設定は完了。 iProxyでのiPhoneテザリングをさらに詳しく解説 何回かつかったところ、MacBookAirで一度スリープ状態にすると作成したネットワークが閉じてしまう様子。 従って、パタンとMacBookAirを閉じて、もう1度開けるとネットワーク作成をもう1回する必要がある様子。 以上、メモでした。

rails3でHABTMが非推奨になってる

rails3でhas_and_belongs_to_manyを使ったActiveRecordを作ったらワーニングが出た。 DEPRECATION WARNING: Having additional attributes on the join table of a has_and_belongs_to_many association is deprecated and will be removed in Rails 3.1. Please use a has_many :through association instead.  rails3.1で消されちゃうよ、だと? うーん、そんな運命なのであれば使うのはやめよう。 で、対応としてはhas_many :throughを使えと。。。 ということで、こんなイメージの、 Hoges←(HABTM)→Moges HABTMでつないでいた多対多の関係であった2つのmodelをhas_many+throughにしてみる。 変更前 class Hoges < ActiveRecord::Base  has_and_belongs_to_many :moges  end class Moges < ActiveRecord::Base has_and_belongs_to_many :hoges end 変更後 class Hoges < ActiveRecord::Base has_many :hoges_moges has_many :moges, :through => :hoges_moges end class Moges < ActiveRecord::Base has_many :hoges_moges has_many :hoges, :through => :hoges_moges end has_and_belongs_to_manyを使うと自動的に中間テーブル?名を作ってSQLに組み込んでくれるって本に書いてあるけど、has_many使うと自動じゃなくなるのですか。そうですか。 自動じゃなくなるので、中間テーブルのmodelが必要になりました。HABTMでは存在しなかった中間テーブルのmode...

macにMYSQLのインストール

MYSQLを入れたのでそのメモ。 参考リンク http://weble.org/2010/06/20/mac-mysql-phpmyadmin まずはportでチェック $ port list mysql* mysql-connector-java           @5.1.12         java/mysql-connector-java mysql-connector-odbc           @5.1.8          databases/mysql-connector-odbc mysql-proxy                    @0.6.1          databases/mysql-proxy mysql-zrm                      @2.0            databases/mysql-zrm mysql4                         @4.1.22         databases/mysql4 mysql5                         @5.1.54         databases/mysql5 mysql5-devel             ...

macにrvmでruby1.9.2入たときのメモ

ようやくrvmでruby1.9.2をインストールできた…。 今までwindowsで甘やかされてたから1.5日かかってようやく完了。 参考ブログ http://www.markhneedham.com/blog/2010/07/08/installing-ruby-1-9-2-with-rvm-on-snow-leopard/ 流れは以下の通り rvm入れる これはgitが必要だったようだがすんなりいけた。 ruby1.9.2を入れる $ rvm install 1.9.2 回線が遅いのか?必要ファイルのDLに1時間くらいかかる。しかもその後エラー。 参考ブログをみたらreadlineを入れろとのこと。 rvm でreadlineを入れる。 $ rvm package install readline 再度トライ。オプションは参考サイトにあるがまま採用。 $ rvm install 1.9.2-head -C --enable-shared,--with-readline-dir=$rvm_path/usr,--build=x86_64-apple-darwin10 エラー。libxml2をi386じゃなくてx86_64のアーキテクチャのやつ、教えてくれとか。 参考サイトを見るとlibxml2、libsqlite3、libxsltが必要らしい。 まずはlibxml2をDLしようとするが、リンク先のサイトのftpが上手く接続できない。仕方ないのでググるとmacportsでも入れられるらしいので採用。 $ port list libxml2 $ sudo port install libxml2 次にlibsqlite3は参考サイトにリンクがあったので辿ってsqlite-3.6.23.1.tar.gzをDL。なんかブラウザ経由でのDLは調子が悪い…。自宅のネットワークのせい? とりあえず、urlがわかったのでcurlで取得して、その後のmakeなどは参考サイトの通りに実行。 $ curl -O http://www.sqlite.org/sqlite-amalgamation-3.6.23.1.tar.gz $ gunzip sqlite-amalgamation-3.6.23.1.tar.gz  $ tar -xv...

error_messages_for was removed from Rails

rails3になってからの変更点としてerror_messages_forがプラグインになった、というのがある。らしい。 案の定2.x系の勉強本を無理矢理rails3で進めるとエラーがでる。 DEPRECATION WARNING: error_messages_for was removed from Rails and is now available as a plugin. Please install it with `rails plugin install git://github.com/rails/dynamic_form.git`. で、言われた通り「rails plugin install git://github.com/rails/dynamic_form.git」を実行するも何も起きない。 gitを入れないといけないらしい。 ターミナルからmacportsでgitを入れる。 $ port search git gitって言ってもいろいろあるのね…。 ググった結果git-coreがあればいいらしい。 $ sudo port install git-core +gitweb +svn エラー出おった。 $Error: db46 requires the Java for Mac OS X development headers. Error: Download the Java Developer Package from: Error: Target org.macports.configure returned: missing Java headers Error: Failed to install db46 Log for db46 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_db46/main.log Error: The following dependencies were not installed: p5-svn-simple subversion-perlbindings apr-util db46 sqlite3 cyru...

rails3でi18nではまった

railsによるアジャイルなんとかかんとかという本にに沿ってruby on railsの勉強している。 ↓ 本のバージョンとずれるが、railsがrails3になったのでそちらで進めてみる。 ↓ I18nでスペイン語を設定する項目があり、「á」「ñ」を使うが上手く表示されない。(&ほにゃららがそのままブラウザに表示される) ↓ rails3ではhtmlエスケープメソッドが必要なくなってデフォルトでhtmlエスケープされるようになった。 それが原因で丁寧に&がHTMLエスケープされていた。 rawメソッドを使ってHTMLエスケープを解除して表示して解決。 しかし、いちいちrawとか入れるのが面倒なのでどこかに一括設定するところはないのか? I18nの設定でとか。。。

seleniumをmacで使いたいメモ1

macを手に入れたのでそのメモ。 1)firefoxでのIDE動作確認 試そうとした目的のサイトでcaptureEntirePageScreenshotをすると上手くキャプチャがとれない。 CSSの関係だと思われるがサイトの上部しかキャプチャされずに、メイン部分となる中央、下部がキャプチャされない。 WindowsXPのfirefoxでも同様の事象は確認しており、JavaScriptのuser-extentions.jsを用意して、もとのcaptureEntirePageScreenshotを改造したコマンドを作ったのであとで試してみよう。 2)pngデータの出力パス設定 captureEntirePageScreenshotの第2引数はフルパスで書く。一応備忘のため記載。 3)safariでの画面ハードコピー保管 safariでの画面ハードコピー保管ができる方法は無いのだろうか…? captureEntirePageScreenshotはfurefixのchromeモードとIEのHTAモードでしか動作しないとIDEでのコマンドリファレンスには記載がある。 とはいえ、画面HCが無いと認めてくれない世界もあるわけで。 たしかevalとかいう関数でselenium実行中にすきなJavaScriptを呼び出せるとか書いてあったような気がするので調べみるか…。 ここが一番のKOファクターになりそうだ…。 4)seleniumIDEでテストケース作成→safariでの実行 safariはデフォルトでポップアップウィンドウが開かない設定になっているので、それをOFFにする。 ウィンドウは開くようになったが、実行すると java.lang.NullPointerException: sessionId should not be null; has this session been started yet? at org.openqa.selenium.server.FrameGroupCommandQueueSet.getQueueSet(FrameGroupCommandQueueSet.java:216) at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleBrowserResponse(...

なんでSTEPなんだ?

FP、UCPを使ってみたところ最近テスト密度についての報告を求められた。 そこで、ふと思ったのはこれ。「なんでSTEPなんだ?」 そもそもSTEPなどという単位は会社に入るまで使わなかったし聞いたこともなかった。聞いても「そんなのコーディングする人のセンスでいくらでも変わるじゃん…」と思い、特にJavaについては使いどころはないだろうと思っていた。 しかしながら、いまだにどのプロジェクトも品質指標、とくにテスト密度とバグ密度に対しては「xxxテストケース/KSTEP(キロSTEP)」とか「バグxxx件/KSTEP」などという目標をあげている様子。 STEPを規模のつもりで使っているのであれば、まったく時代遅れだと思う(言葉が悪いが)。 Javaについて言えば、コーディングする人のセンスもあるが、StrutsやHibernateを使うことによってコード量は大幅に減り、そのかわり設定ファイル(xmlなど)が増える。Servlet/JSP+JDBCで作ったものと、Struts+hibernateのSTEPは相当違うはずだが、実施すべきテストの量は変わらないはず。(単体テストを除いて) また、まったく腑に落ちない点として、昨今はFPで見積もる機会が多い(少なくともSTEPで見積もったことがない)が、開発規模をFPで出すのに品質指標をSTEP基準にする意味がわからない。しいて言えば「後から測りやすい」ということぐらいだろうか。 あるべき論としては見積もりで使った規模を使って品質指標の基準を考えるべきではなかろうか。FPで見積もりしたらFPで品質指標を考える。 そうしないと見積もり時点で品質指標を考慮に入れたテストスケジュールが立てられるわけがない。 逆に、見積もり時点でそうした指標も考慮したスケジュールを作れれば説得力もまずはず。 それが「後から測りやすい」ということが主な理由で実行されていないのであれば、なんともったいない。 各種I/Fの設計書があればFPなんて簡単に出せるのに…。 今後、IT業界に入ってくる人は変わらず「STEP」を知らないだろう。ならば、今のうちにSTEP基準の指標から、「次のやつ」基準の指標を模索しておこうと思う今日この頃なのでした。

COCOMO(工数と工期)

COCOMO自体はプログラムステップから工数を出す見積もり手法だが、COCOMOには工数から工期を算出する計算式があるので、そいつについて。 式は 工期(月)=α×(工数(人月)の3乗根) だそうな。 なお、このの工数と工期はプロジェクト全体(要件定義からシステムテストまで)が入るので注意。 この式のαについては「日本情報システムユーザ協会(JUAS)」が収集・計測したところ、「2.7」が妥当らしい。 本来、αの部分は「プロジェクトのメンバの能力による適当な係数」と「正規分布を想定した時間経過ごとの要員割り当て」をもとに割り出という手順になっている。 (要員割り当てはαだけではなく式全体に影響がある、と思う) とはいえ、JUASでは実際のプロジェクトをいくつも収集したというのだから、「2.7」は日本のプロジェクトには使ってもよいと思う。 αを2.7としたときの各人月に対する工期は以下のとおり。 1人月 2.7ヶ月 2人月 約3.4ヵ月 5人月 約4.6ヶ月 10人月 約5.8ヶ月 20人月 約7.3ヶ月 50人月 約9.9ヶ月 100人月 約12.5ヶ月 うーむ、工程が要件定義からシステムテストまで入ってると・・・。 10人月以下あたりはちょっと長い印象。 20人月以上になるとこれくらいで適当かなぁという印象。 思うに10人月以下の場合は一人が担当する範囲が広い(プログラム設計者が実装もして、単体テストもして、結合テストもしてetc)な場合が多い、というか実際自分のところではそうなので、感覚と違うのだと思われる。 要員が少なければ各工程ごとの要員割り当てが正規分布どころか、一直線になるんだからこの式に当てはめるて違和感がでるのは、納得感あり。 うーん、大きな工数になることがない限り使う機会が少ない、かな? ■参考 ThinkIT 日本情報システムユーザ協会

ユースケースポイント法(UCP法)

見積もりにおける手法の1つ。 有名なFP法はデータ項目数(DBのテーブルやファイルの項目数)と入出力の数を手がかりにシステムの規模を見積もるが、UCPはUMLでいうクラス図を元に規模を見積もる方法。 分析クラス図までを作れれば、UCP法で見積もりしやすいだろう。 分析クラス図をベースにしたポイントを「未補正UCP」とし、さらに技術的な複雑度、環境的な複雑度をもとにした係数をかけることで「補正後UCP」ができあがる。 あとはFP法と同じように「1ポイントは何時間(または人月)かければ消化できるか」=生産性係数をかけることで工数の見積もりにすることができる。 UMLを主に開発するプロジェクトでは非常に重宝されそうなこの手法だが、問題点を感じないわけではない。 この手法で感じる問題点は、FPと同じように「生産性係数をいくつにするんじゃい?」という点なのだが、UCP法を考えたGeri Schneiderさんによると普通のプロジェクトならば生産性係数は20時間らしい。 (つまり1UCPの機能あるいはシステムであれば20時間で作れるであろう、と。) しかしながらこのUCP法はまだ日が浅いためか、Geriさんの考えるプロジェクトが私の周りと一致しずらいのか、20時間で本当に大丈夫か?という不安がいつもある・・・。 (事実、20時間で工数に変換すると「大丈夫かなぁ・・・」という工数が出てくる) また、技術要因はさることながら、環境要因が曲者と思う。 なぜならば、環境要因は「採用するプロセスの習熟度」「モチベーションの有無」「プログラミング言語の難しさ」などなど、非機能要件的な要素を先に係数として含めてしまう仕組みになっており、これをどう扱うかが実際に使おうとすると非常に悩ましい。 とはいえ、個人的に分析クラス図は頭のなかで思い浮かびやすいUMLであり、これからもお世話になるはずなので、まずはUCP法の生産性係数はいくつが望ましいのか、周りからデータ収集を地道にがんばるしかないか。 ■参考 ■オブジェクト倶楽部 http://www.objectclub.jp/ ■ITpro http://itpro.nikkeibp.co.jp/article/COLUMN/20060811/245759/

はじめに

仕事でのねたを書いていこうと思います。 ・Java ・自己啓発 ・読んだ本 ・その他 などなど