February 22, 2012

無駄な会議

Twitterで拾ったネタですが…

チーム内でやる進捗会議はムダ
(agnozingdays.hatenablog.com)

社会で行われている“会議”とされるものの8割は無駄!
…というような話も昔聞いたような気がしますが。

チームで行うソフトウェア開発におけるそれは
多くの場合、わりと大きな意味を持っていたりします。

自分たちはこれから何をつくるのか?

まずそういう根本的なところが統一されていないと、
最終的な出来上がりが酷いことになる、なんてことは
この業界でやっている人なら痛いほどわかるでしょう。

とはいえ、やらなくても良いだろうという打ち合わせも
率直に言って実は結構多いだろうと思う。

そのひとつが、
上記記事でも槍玉に上がってるチーム内の進捗会議。

スケジュールやマイルストンを立てたり、人繰り調整したり
仕事量の分散やメンバの進捗を管理するのは
プロジェクトリーダ(PL)なりマネージャ(PM)がやれば良いこと。

別にみんなが把握してる必要ないことでしょ?って話。

開発メンバがそれぞれ把握してないといけないのは、
ソフトウェアの要件であり仕様であり実装すべき機能です。

それを決めたり意識統一を図ったりする打ち合わせは
ものづくりをする上でもちろん必要。

でも、進捗に関する話を全員で集まってやる必要はない。

それはPL(PM)が各メンバの負荷や状況を把握して、
それをPL(PM)が対メンバでやっていけば良いことでしょう。

そして、その状況はグループウェアなりトラッカーなり
全体回覧できるような手段で知らせておけば事足ります。

ある程度大きなプロジェクトであれば、
PL(PM)ひとりが全体をみることが困難になってきますが
大規模になれば大抵小割りチームをつくるでしょうから、
そのチームごとのリーダを設けてリーダ会議をやればOK。

開発メンバは、基本的には自分に割り振られた仕事を
いつまでに仕上げれば良いか、を知っていれば良い。

それが無理そうだったり余裕だったりということは
個々でPL(PM)に伝えて、あとはそのPL(PM)が調整する。

問題把握も、基本的にリーダーが把握してれば良い。
当然、リーダーは問題解決にあたらないといけないけど、
それは基本的に開発メンバ個々の仕事ではない。


ただし、ここ重要ですが、その前提条件として
PL(PM)は、そのプロジェクト管理以外の仕事をしないこと。
PL(PM)が開発とかテストとか実務をやっちゃダメです。

人手が足りなくなったり、PLが開発者上がりだったりすると
そのPLまでが開発やテストに入ってくるケースも
私の経験上多々あったんですが、大体うまく回ってません。

PL(PM)はプロジェクト管理に専念する、というのがキモ。


まぁ、会社方針とかISOとかでやらにゃならん
ということであれば、百歩譲って週1がいいとこでしょう。
毎日は……あり得ない。

むしろ、(ほぼ)毎日進捗会議やってるようなプロジェクトで
それが上手くいってるようなケースがあるなら、
その会議でどんな話をしてるのか、非常に興味ありますね。

| | Comments (1) | TrackBack (0)

June 11, 2011

システム開発の話

久々に仕事ネタでも書こうかと。

受注型のシステム開発、カスタマイズなんていう仕事を
かれこれもう10年以上やっているのだけど、
その経験や現在進行中のプロジェクトをやってる中で
私が個人的に思ってること、感じたことを書いてみる。


○もっとも重要なのは要件定義

何をつくればいいのか、という開発の動機であり最も根本。
ここがしっかりしてないと大抵のプロジェクトはガタつく。

ただ、お客さんも“本当につくって欲しいもの”のイメージを
要件定義の段階で持っていないことが多いから面倒。

そこでキモなのは、システムを使って何をしたいのか?
ということをお客さんから聞き出すこと。

既存システムのリプレースの場合は
何を改善したいのか、何を効率化したいのか、ということ。

そこが見えてくれば、お客さん側と開発側とで、
一致した最終形のイメージをしやすいのではないかと。

システムは、“仕様ありき”ではなく“要件ありき”だ。


○材料をケチるな

HDDやメモリの容量をギリギリに見積もったり、
CPUも一番良いのではなく2番目か3番目だったり、
DBサーバとバッチ処理のサーバを同じ筐体にしたり、
冗長化やDMZの設置を省略したり…

それで開発段階はまだ良いけど、実運用の段階で
そのケチったツケが回ってくることになる。

開発費用を抑えたいという気持ちはわかるのだけど、
後々の保守コストを考えたときにどちらがお得か。

あと、ソフトのチューニングにコストを割くよりも、
ハードで解決できるならそうした方が安上がりなことも多い。

最近は昔ほどハードも高価じゃなくなってるんだから、
予算が許す限り、下手にケチるべきでない。


○基本設計を固めてから実装しろ

当たり前ですが…。これが意外と守られない。

製造、テストのフェーズになってから
基本設計が変わる、ということが多々ある。

2、30人規模のプロジェクトでその状態になると
経験上それはほぼデスマの始まりです。

プログラムの詳細設計は良い。どうでも良い。

…いや、どうでも良くはないけど、
プログラム設計は開発者の機転で何とでもなるところで
最近のRADフレームとか簡易なスクリプトをもってすれば
ちょっとしたルーチンや構造の変更ならどうにかなる。

しかし、基本設計はダメ。変えちゃダメ。

そこが変わると、システムの設計思想が変わるので
多大なバグを埋め込むことは必定。

基本設計が変わるということは
大抵、要件定義がしっかりしてないということなので
一番最初の話に戻る。

そこはお客さん、実際のユーザ、開発者の全員で
しっかりレビューしてガッチリ合意したものにすること。

その上で設計が変更となるなら、それは仕様変更なので
その分の費用と期間を別途請求すればよろしい。


○アーキティクチャ選択に先入観を持つな

Javaは遅い。.NETは遅い。VBはクソ!
C/C++は速い。WebならStrutsだろJK!
Perlは時代遅れ。PHP一択だよね!

まぁいろんな開発現場でいろんな先入観を見てきました。

大抵ひと昔前の話だったり、自分で使ったことないのに
世間でいわれていることを鵜呑みにしてたり、
何というか、その根拠が薄過ぎると感じることが多い。

Javaも.NETも、例えば5年前の視点で語っちゃいかん。
C++が速いか遅いかは書かれるコードによる。
Java F/Wの選択は要件による。Webサービス型ならAxisとか。
今スクリプト言語のスペックはどれもほとんど同じ。
レイテンシが問われるならスクリプトという選択はない。

例えば、C#は遅いからC++を選択、という場合、
C#でカプセル化されている処理をC++で自作することになる。
その自作部分がC#の実装よりも高速、高効率にできるか
というのは、それを実装するプログラマ次第。
当然、それをつくる工数というのも発生してくる。

アーキティクチャの選択を間違うと、
主にそれを実際に組むプログラマが不幸になれます。


○実質的な改善が伴わない反省会は無駄

土日も休みなし。週2、3度の徹夜なんて当たり前。

そんなのを勲章のように自慢するエンジニアもいますが、
むしろ、何故そうなった?と問いたいわけで。

しかし、よくある形だけの反省会とか必要ないです。

レビュー不足とか、コミュニケーション不足とか、
テスト不足とか、最後にはリーダの力不足でスミマセンとか、
そんなの吐き出し合っても不毛なだけです。

分かってて、また同じことやるでしょ。

大きなプロジェクトが破綻する原因は、
要件定義が曖昧なために仕様がいつまでも固まらないこと、
そして開発ボリュームに見合わない短い開発期間、
私の経験ではこの2点であることがほとんどでした。

あとは、理不尽なお客さんに、理不尽な営業、PM。

お客さんはある程度しょうがないにしても、
開発陣内部にガンがいると痛いんですよね。

渉外担当なのに全然ブリッジ役を成してない人とか、
開発リーダーなのに技術的知識が皆無の人とか、
大規模プロジェクトになると大体仕事しないのが数名いる。

タチの悪いことに、そういう人ほど全く反省がない。
自分は悪くない。悪いのはヒトのせいだと思ってる。

本当の病巣ってのは、なかなか取り除けないもので、
それを理解させてやることのできない反省会は無駄です。
逆にいえば、もしそれができる反省会なら有効でしょう。


○プロジェクトのエクセル管理はやめてくれ

まぁ、これはケースバイケースとは思いますが
Excelでの課題管理とか進捗管理とかは
プロジェクトの後半で大抵陳腐化して破綻する。

中にはそれでしっかりやってたプロジェクトもあったけど、
管理方針(ポリシー)がしっかりしてないと、
課題が置き去りになったり、更新されなくなったり、
それをメンテする労力が必要以上にかかったりと、
本末転倒な状況になりやすい。

最近はプロジェクト管理用のツールもフリー、有料共に
いろいろあるんだし、そういうのを有効に使いましょう。

個人的には、手軽にスケジュールや課題を
複数のメンバ間で共有、管理できるというところでは
Webベースのトラッカーがお薦め。

総合ツールとしては Redmine マジオススメ。

BTSなら Mantis や Trac でもありだし、
wiki や xoops みたいなSNSツール使うのもありだし、
使えるツールは有効利用していきましょうということ。


○気力だけではシステムはつくれない

修羅場になればなるほど体力もモチベーションも下がるし、
そうなると開発のミスも多発して悪循環になりやすい。

どうも忘れがちだけど、自らも含め開発してるのは人間です。
人間は生物です。生物は活動し続けると疲労するものです。
物理的にそれは避けようがないです。

どんなに状況が逼迫していても、休むことは重要ですよ。
公式に休めないなら、仮病でも使ってサボるべし。

まぁサボるにも限度はあるけど、
疲れていると感じるときに体を休める為のサボりは
むしろ必要なものだと思いますね。


…などと、今は思ってます。
(数年後はどう思ってるか。思い出すとき用に備忘録)

| | Comments (0) | TrackBack (0)

May 16, 2010

サーバが落ちてます(続報)

先日、落ちたといってたサーバですが、徐々に浸透しつつあります。

浸透?

いや、サーバ自体は正常に動いてるんですよ。

てか、実は、落ちたサーバから別サーバへコンテンツを移動して、
mlexp.com の DNS(名前からIPに変換するサーバ)を変更したんですね。

つまり、mlexp.com という名前で接続されるサーバが
実は前と別のところになってます。

ただ、この DNS の設定がインターネット全体に広がるまで
ある程度の期間を要します。

これを DNS の浸透期間(プロパゲーション期間)というんですが、
これは一般的に1~2週間程度といわれています。

なので、大体1~2週間くらい、mlexp.com の接続先が
古いサーバだったり新しいサーバだったりと、
その接続経路によってフラつく状態になります。

つまり、新しいサーバに行けばページが表示されますが、
古いサーバに行っちゃった場合は 404 エラーが出ると。

なので、あとは時間が解決してくれるのを待つ感じです。

| | Comments (5) | TrackBack (0)

May 15, 2010

サーバが落ちてます

業務連絡というか、お知らせです。

今、mlexp.com のサーバが落ちてまして、
このサーバを使っているWebやアプリが使えない状態です。

落ちてるというか、いや、落ちたんですが、
今はサーバ自体は復旧してるんだけど、
落ちた際に、DNSを別のサーバに切り替えたんですね。

で、その設定がうまくいってない状態で、
結局サーバに接続できな状態になってます。

てことで、うちの opensocial などのガジェット(mixi アプリ含む)
とか設定している方は、そのままだとエラーになっちゃうので
とりあえず外しておいてください。

復旧したら、またここに書くです。

# こういうの書くのに twitter とかがいいのかなぁ。。

| | Comments (0) | TrackBack (0)

January 28, 2009

喫茶店への道(2)

私の密かな夢は
小さな喫茶店のマスターになること。

なんですが、これはとりあえず夢であり
宝くじでも当たったら始めるか?
…程度のモチベーションだったりします。今はね。

でも、これから将来、
ずっとIT技術者としてバリバリやっていけるか?
といえば、どんどん歳もとるだろうし
これまでみたいにはいかなくなってくだろうなーとも思う。

そうなったときに、第二の人生として
こぢんまりとお店をやっていくのもいいかもなぁ…
と、ちょっと真面目に思い始めてたりも。

そんなわけで、
思い立ったときほどのやる気はないまでも、
そうなったときに向けて思ったことなんかを
メモ程度残していこうかな、ということで。


○必要なもの

食品衛生責任者の免許とお金。

あとは商売の知識とやる気、ですな。

衛生士の免許はわりと簡単にとれるものらしいので、
それほどハードルは高くなさげ。

以前思い立ったときに、ある程度の料理を出すとなれば
調理師の免許も欲しいかなーと思って、
調理学校の資料も取り寄せてみたりしてたんだけど、
その費用をみてゲンナリだったので、
まぁ、料理はいいやと、そこは割り切ろうかと。

コーヒーと紅茶と、ある程度の軽食ができれば。

あと必要なのはなんといってもお金ですわね。
先立つものがってやつです。

机上の知識は、
これから少しずつ勉強していくしか。


○どんな店にしたいか

そんなに流行らなくていいんです。

誰でもフラッと立ち寄って
コーヒー飲みつつ新聞や雑誌を読むなり、
軽く仕事や勉強をしてもらうなり、
とにかく気軽にスペースを使ってもらえる店。

私自身にコーヒーの専門知識もないし
これといって何か料理ができるわけでもないので、
飲食店としての機能は最低限を想定してます。

おいしいコーヒーを飲める店、というのではなく、
目指すのは、気軽に休息できる店、ですね。

私自身、コーヒーを飲みながら本でも読みつつ
時間を潰す、というのは
結構好きな時間の過ごし方だったりします。


○儲かるのか

目指すは上のような店なので、
ガッポガッポ儲けようという気はさらさらない。

ただ、自分が生活していけるくらいは
稼げないとマズイわけで、
そこはある程度現実をみないとダメなようです。

立地にもよるけど、
店舗の家賃や光熱費が月30万円程度、
コーヒーやお茶、パン、お米などの材料費が月10~20万円、
(軽食はそこそこに飲み物中心という想定。)
従業員も1人、自給800円程度で1日8時間、30日雇うとすると、
最低でも月60~70万円程度の売り上げは必要。

で、それはあくまで営業費であって、
自分の生活費も稼がないといけないわけで、
それは20~30万円程度は欲しいところ。

なので、月100万円程度の売り上げが見込めないと、
事業として破綻すると予想されます。

となると、客1人あたり平均500円の売りとするなら、
1日60~70人程度の入りがないと厳しいということに。

これ、結構多いよね。

朝7時開店、夜8時閉店の13時間営業という
普通の営業時間を想定をするなら、
単純計算で1時間当たり客は5、6人は必要。

それをどう確保し、どう維持するか。


○コーヒーショップじゃだめなのか

最近は、同じ領域に安いコーヒーショップや
マックなんかのファーストフード店が台頭してきてるので、
そんな中、純喫茶の経営というのはかなり厳しい。

それでも、回転重視のそういう店ではなく、
のんびり自分の時間を過ごせるような
古き良き喫茶店がいいなぁ、と思うわけで。

雰囲気ですね。

私が子供の頃、日曜日の夕方くらいになると、
親父が「コーヒー飲みに行く」といって出かけようとするんです。
で、私は決まって「僕も行く」といって付いて行ってた。

今にして思えば、親父は私がそういうことを見込んで
黙って出かけるのではなく、わざわざそれを告げてから
出かけようとしてたのかも。

そのときにいってた喫茶店で
親父は「ホット(コーヒー)」、私は「レモンスカッシュ」でした。
しまいには、注文しなくても店の主人はわかってて
勝手に持ってきてたりしてました。

大抵、親父は店の主人(知り合いっぽかった)と話し込んでて、
ときどきその会話の中で私のことをいじられているなぁ
と感じつつ、私はひとりレモンスカッシュを飲んでた。

そのときの何ともいえない喫茶店の雰囲気が
大好きというのではないけど、何か心地よかった。

喫茶店というのは、飲食を提供するというより
そういう雰囲気を提供する場所なんじゃないかな
と思うんですよね。

喫茶店のコーヒーがコーヒーショップに比べて高いのは、
コーヒー代+場所代があるってこと。


○どんな店にするか

コーヒーの味に自信があるわけじゃなく、
豆に詳しいわけでもなく、自慢の料理があるわけでもない。

客の回転よりも、ゆっくり過ごせるスペースでありたい。

とりあえず、今のところのイメージはその程度。

やっぱり、何か特徴というか売りがないと、
お店としてやっていくには難があるだろうということは
十分わかってます。

趣味のお店を持つ人もいますね。

音楽好きな人がマスターだったら、
マスターがギターとかピアノとか演奏してたり。

絵や美術品が好きな人がマスターだったら、
店に自慢のコレクションが並んでたり。

鉄道マニアとか写真マニアとか、
そういうマニア心のある人がやると、
店もそういう人が集まる場所になりやすいかも。

さて、私は?

お客さん、科学哲学の話でもしますか。
いや、ないない。

やっぱりフツーの純喫茶になるだろうなー。



…というような夢も、
一攫千金の夢(前のエントリ)と並行して
マルチスレッドで妄想していこうかな、と。

| | Comments (4) | TrackBack (1)

December 29, 2006

新会社設立?

どうも妙なことになってきました。

今私は、とある開発会社(以下A社という)に雇われ、
その会社の人間として客先の会社(以下B社という)に常駐し、
そこで開発の仕事をしているのだけど、
そのB社というのが実は開発会社ではなく、
開発部のようなものもない状態なのですな。

ただ、いわゆる情シスみたいな部署はあって、
簡単な開発業務はそこが兼任みたいな感じで動いてる。

で、そんな状態では、今後大規模なシステムを組んで、
IT方面でビジネスしていこうというところに撃って出られないと。

そこで、まぁ普通は開発専門の会社に注文して、
アウトソーシングという形でシステムを組むんだけど、
(今がそういう状態)
B社はあくまで自社開発したいという意志らしく、
そりゃ無理ですぜダンナ?ということになっているのです。

それで来年からどういう展開になるかというと、
A社とB社とで共同出資して新しい開発会社をつくろうや、
という方向に流れているらしい。

まぁ会社作っても、もとの会社(B社)が開発会社じゃないから、
オープニング時にそういう社員がいないと。
おそらくほぼ開発会社側からの出向になるのでしょうけど、
聞くところでは、そのA社も、
開発要員としてのプロパー社員は半数程度らしく、
他はほぼ協業者や外部の人らしいと(で、私もそのひとり)。
そんな状態で、
他社に出向させる人間が確保できるかどうかがとてもあやしい。

ここまでで、
カンの良い人はどういう流れになりそうかわかりますか。

どうも、A社としては、
私を社員として入れてやろうという匂いがプンプンと。。。

A社とB社の共同出資会社で、
しかも今現在B社に関係している人間は私しかいない状態。
そういう考えになる道理も分からなくはないけど。

どういう形で社員にしたがっているのか、
今のところよくわからないけど、
とにかく私は、社員にはならないカラネ!

あくまでフリーなのだ。

取締役みたいな位置で、
ある程度私の意思決定が通るような形なら考えなくもないけど、
一般社員として、ただの開発要員としての雇い入れなら、
私はもう十分その道を歩んできましたので、お腹いっぱいです。

やっぱり人生、自分の思うように生きたいですから。

| | Comments (2) | TrackBack (0)

October 13, 2006

13日の金曜日

いよいよ涼しくなりました。
って、もう大分前から涼しいわけですが、
暑がりな私にとっては、
このへんからがいよいよ“涼しい”時期なのです。

というわけで、
久々にふつーに日記モードの月影です。

こんばんは。

今日は13日の金曜日です。
まぁ、特に不幸に見舞われることはなかったわけですが。

不幸どころか、最近は全くもって平和であります。

もう去年までの過酷さが夢だったかのよう。
毎日午後7時に仕事を終わって家に帰って、
のんびりまったりとテレビとか観たりしてます。

先月から入った仕事が、某Webシステムの開発で、
職場にきてみればその開発人員が私ひとりしかいなくて、
しかも、Webの業務システムを手がけるのは初だったので、
今までずっとオープン系開発だった私としては、
結構不安な要素が多かったのだけど。。。

ま、開発、といっても、既存システムのカスタマイズ。

今までASPで動作していたものを、
ASP.NET C# で置き換えて、さらに機能拡充する、
というのが今回の仕事。

C#置き換え自体は前任者があらかた済ませてくれていたようなので、
私は主にその機能拡張をする感じです。
(ちなみに、その前任者は退職されたそうです。)

そのソースコード(C#ではないASPの方)は、
5年くらい前から行き当たりばったりに拡張が繰り返された、
スパゲッティまではいってないけど継ぎ接ぎ状態で、
ドキュメントも機能仕様書程度のものしかなく、
詳細設計やクラス図などのようなものも全くない。
ソースにはコメントがほとんどない。

仕事を依頼する側も、中身をよくわかってないみたい。
ただ、そういう面倒な仕事だということは理解してくれてる。

一見、かなり厄介な仕事に見えますが。

フタをあけてみれば、ぶっちゃけ楽勝な雰囲気です。

C#自体はもともと慣れてたし、
あとはASP.NETというやつのクセさえつかめば、
大体みんなワンパターンという感じです。

既存コードをみてると、
C#を勉強しながら組んだんだろうなぁ、という努力の跡が見えて、
同じことをするのに違う手法だったり、
同じような処理が至る所に散在してたり、
そんなところが結構あって煩雑だけど、
やってること自体は結構単純そうなんですな。

これ、契約は11月末までの予定だけど、
うまくやれば今月中に全部終わりそう。

つまり、あわよくば、
来月は何も仕事せずして一ヶ月分の報酬もらえると。

フリーランス万歳。

というか、実際に今月で仕事が終わってしまった場合、
どうするのが一番良いのかなぁ。

まだ終わってないフリをして、
11月いっぱい仕事をするフリをしつつ遊んで暮らすか。

それとも、もう終わったよん、と正直にいっちゃうか。

もしいっちゃうと、

 「キミ仕事速いネェ、サスガだネェ」

なんてお褒めいただけそうだけど、

 「じゃ、次これも頼めるかナァ?」

と、契約になかった仕事が降ってくる可能性は、
とてもとても高いわけです。というか、確実に頼まれます。

ここは、運用テストという意味合いも込めて、
来月はテスト月間ということにして、
終わったよん、とはいわない方が無難でしょうな。

いえ、決して遊んで暮らすわけじゃないです。
テストです。テスト重要。


それで既存コードに痛いのが見つかったらイヤだな。。。

| | Comments (0) | TrackBack (0)

September 28, 2006

401k

すっかり忘れていたのだが、
401kの移管手続きをしろという手紙が舞い込んでいた。

401kというのは、「確定拠出年金」という、
60歳を超えてから初めて受け取れる貯金みたいなもの。

私が春までいた会社は、退職金というものがなく、
代わりに、この401kをやっていた。
つまり、ウチの会社はキミに退職金は払わないけど、
そんなキミの為に毎月いくらか401kに拠出してやるよ、
というわけである。

どうにも半分騙されていた感があるのだけど…。

まぁ、その401kで、その会社やめたものだから、
今まであった毎月の拠出がなくなったと。
なのでその資格が喪失されるわけだけど、
これ、資格喪失してから6ヶ月経つと、
勝手に個人型401kに移管されるのだそうです。

まぁそりゃそうで、
今までの掛け金がどこかへ消えるということはない。
それは悲しすぎる。。。

一応積み立ててきた掛け金は個人型の方に移管されて、
今度からは自腹で拠出していくことになるらしい。。。

Continue reading "401k"

| | Comments (2) | TrackBack (0)