日本のIT業界の関係者は、自分たちの業界が建設業界によく似ていると思っている。さらに心ある人は「ITはハイテク産業のはずなのに労働集約型の建設と同じだから、日本のIT業界はダメなんだ」と嘆く。確かに多重下請け構造は建設業界にそっくり。米グーグル(Google)や米アマゾン・ドット・コム(Amazon.com)などの巨大プラットフォーマーが主導し、知識集約型あるいは資本集約型の産業として進化を続ける米国のIT業界と比べて、ため息をつくしかない。 しかし、建設業界の人から言わせると「冗談じゃない!」ということらしい。以前、大手ゼネコンのCIO(最高情報責任者)から聞いた話だが、この人はIT業界の多重下請け構造のひどさを知ったとき、あきれ果てたという。IT業界で大手ゼネコンに相当する大手SIerが元請けとなったプロジェクトでも、設計やプロジェクトマネジメント(建設業では施行管理)がいい加減だし、
以下の記事を読んで。 530000micro.hatenablog.com 僕が勤めている会社では、原則、プログラムにコメントを書かないのがルールです。 人生で初めてプログラムに触れてからこのかた、プログラムには必ずコメントを書けと指導されて来ましたし、自分自身も、後輩たちにちゃんとコメント書けよと言い聞かせてきました。そんなわけで、最初に全然コメントのないソースコードの山を見たときは、正直「ゲッ、なんじゃこりゃ……」と面食らったのは確かです。 ところが、「なぜうちのプログラムにはコメントがないのか?」と同僚に尋ねてみると、実に納得の行く回答が返ってきたのでした。 なぜコメントが必要なプログラムを書くのか? 同僚いわく、「コメントが無くても読めるようなプログラムを書け」という思想が根底にあるのだそう。 適切に関数や変数が命名され、スコープがきちんと管理され、ロジックの流れが整理されているコ
いまは時間があるので呼ばれればお伺いして相談にのったり、社内勉強会で喋ったりしているのですが、珍しく毛色の違う話をしてきたので資料を公開しておきます(内容は非常に基礎的な話です)。 呼ばれた先でよく言われるのが「スクラムがうまくいっていない」「スクラム的に正しいかどうか分からない」「DevOpsになかなか切り替わらない」といった話なのですが、 そういうのを聞くたびに危ないなぁという感覚を持ちます。スクラムをやるのも、DevOpsな方向に進めるのもビジネス上の目的や課題があるからそうするはず(すなわちスクラムをやるのは目的じゃない。クラウドも同様)なのですが、どうも話が手法やツールに関連する話に閉じてしまう。もしくは本当に開発部門が全体の中での一番の問題なのかも分からないうちに、「開発」側だけの観点でみて全体のプロセスを大きくいじくろうとしてしまうケースもあるようです。(仏作って魂入れず、み
ソフトウェアの世界からプロジェクトの所要時間の見積をなくそうとする#NoEstimatesムーブメントについて、Mediumの記事が紹介している。所要時間を正しく見積もることは困難であり、時間の無駄だとプログラマーたちは主張する。一方、他のプロジェクト関係者は、計画を立て、プログラマーに責任をもって仕事をさせるために見積が必要だと考えている。妥協点はあるのだろうか。 記事によれば、「ソフトウェアプロジェクトの見積は誤っていることがあまりに多く、見積を作るのに時間を使えば使うほど、実際にソフトウェアを作成する作業時間が減ってしまう。また、マネージャーは開発者が適当に作った見積を契約上の締め切りのように扱う習慣があり、見積時間内に完成しなければ大騒ぎする。それだけではない。そのような結果を恐れる開発者は、より多くのエネルギーを見積という兎の穴に注いでいく。見積はヤクの毛刈りのように、実際の仕事
“なぜ納期を守れなかったのだろうか?” 我々マネージャが、納期に遅れることを自分のチームのせいにするのは簡単です。しかし、納期に遅れる原因は本当に開発者の仕事が遅いせいでしょうか? Sprintly は、開発者のサイクルタイムに関する膨大なデータを保有しています。当社は、タスクのサイズごと(S、M、L、XL)、また種類ごと(ストーリー、テスト、バグ)に、完了までにどれくらいの期間がかかるかを追跡しています。 当社が調査した動向について 1点目:開発者は非常に平均的です。ユーザ全体で見たサイクルタイムはほぼ同じであることを当社のチケットデータが示しています。システム内の全チケットの75%は、開始後およそ175時間で完了しています。 ^(1) 2点目:変動があるのは、ほとんどがチケットが開始される前(SomedayからBacklogまで)の段階です。これは、関係者が仕様を理解して作業の優先順位
昔は技術的に出来なかった為に運用でカバーしてきた慣習が残り続けているけれども、実は今の技術で考え直すともっと無駄なく簡単に出来ることって、多くの業界で起きているように思います。 もちろん、ソフトウェアの受託開発の世界でも起きています。ソフトウェア開発を生業とする私たちの会社で考えたのは、昔ながらの商習慣によって様々な問題を引き起こしているのは「納品」ではないか、ということでした。 この記事ではソフトウェアにおける「納品」のもたらす問題と、私たちの会社で解決している方法「納品のない受託開発」について書きました。(自社のウェブサイト用に書いた原稿をブログにしただけなので、それっぽい表現になってます。) 「納品」が引き起こしている問題 私たちソニックガーデンの受託開発では、一括委託を行っていません。ソフトウェア開発における「一括請負での受託開発」のビジネスモデルは、多くの問題を生み出してきたから
アジャイル開発に対する論争が盛り上がってるので、僕も便乗しまーす。新野さん、秀逸なまとめありがとうございました。 「アジャイルがダメだと思う7つの理由」から始まったアジャイル論争の現時点のまとめ - Publickey 僕も2年半前にアジャイルって受託開発との相性が最悪な気がする - GoTheDistanceという記事を書きました。アジャイル開発ってかなり牧歌的なので、内部ならまだしても外部の仕事を請けてキチンと回すのは難しいのではと書いたら、多くの方が「そりゃそうよ」と反応してくれました。その頃から、これを"ケツカッチン"な仕事で行うのは困難だと感じておりました。コミュニケーションが密に取れないと動けないじゃん。 議論の軸をもっかい振り直すと、アジャイルが確約出来る内容はあくまで人材育成・組織風土形成という不定形なサービスでしかないんじゃないでしょうか? アジャイルな組織になりたいから
半年くらい前からソフトウェア業界のマネージャをやってます。 マネージャってどういう仕事かというと、お客さんの言うことを聞いて見積もりを立ててスケジュールを立てて開発者を集めて期限を交渉して終わらせます。コードは書きません。一昔前だと Excel とパワポを駆使するのが仕事でしたが、今は Redmine とか JIRA とか言う Web ツールを使って仕事がどこまで進んだかを確認します。結構これが辛い。 実は僕が前十年ほど前に一度サラリーマンを辞めたのは、マネージャと言う仕事があまりにもくだらなかったからです。プロジェクトをぐいぐいと引っ張って良い製品を作るお仕事が出来ればやりがいがあると思いますが、実態は営業がついた嘘の尻拭いをして誤魔化したり謝るのがお仕事です。なので、今の会社に入ってからも、企画とか、開発リーダーはします。でもマネージャはしません。マネージャはしません。マネージャはしま
鈴木雄介さんが、「アジャイルがダメだと思う7つの理由」というすごいブログを書いてくれたので、がんばって返答を書いてみる。どこかでディスカッションできるといいなぁ。 1. 全体スケジュールにコミットできない コミットメントって何だろう。コミットメントは約束なのか。約束であったら、破った場合のペナルティも受け入れるのか?受け入れたところでバッファが巨大になるだけではないのか?そして、そのバッファは見えないところで食い尽くされる。 全体を見えずに計画したところでうまくいくはずはない。アジャイルがタイムボックスで計画、実施を行うからといって、全体を計画しないわけではない。むしろ積極的にやるべきである。 全体を計画する上では、なるべく漏れがないように、実施可能なように最大限の努力をする。ただ、それに時間を掛けすぎるのは無駄だ。そして、神ならぬ人間が計画するのであるから、以下を認めなければならない。
1.全体スケジュールにコミットできない アジャイルはタイムボックス型(一定期間で棚卸しをして、それを繰り返す)のマネジメントをする。だから、全体としての計画は立てられない。「だって、最初に全ての機能を洗い出せないでしょ」というのは分かる、分かるけど全体の計画は立てないといけない。経営者は顧客やVCと全体の計画にコミットしなきゃいけないんだ。そのときに「やってみなきゃ分からない」なんて言えるわけでない。 てか「やってみなきゃ分からない」なんてことは誰でも知っているんだよ。でもさ、それを言わぬが花。大人なんだからコミットメントをしないといけないんだよ。そして、その達成ためには、あらゆる手段を尽くすのです。 2.アーキテクチャ上の無駄が生じる ソフトウェアの構造や構成は工程が進むほどに修正しにくくなり、ずっと残る。だから、アーキテクチャ設計は慎重に全体を考えながらやらなきゃいけない。でも、アジャ
実はモデリングが大好きです。元々はオブジェクト指向プログラミングを勉強しているところからUMLに(自然に)興味が向き、そこからオブジェクト指向設計とかオブジェクト指向分析とかそういう脇道にそれ(脇道とか言ったら怒られる!)、仕様も設計もこれからはオブジェクト指向だ!というありがちな若気の至りもありました。デザインパターンにも転んだし、責務!ロール!コラボレーション!ってのもやったし、重厚長大なフレームワークとかもなかなか楽しいですよねえ。ねえ? 今でも概念モデルとか大好物で、上の話を聞きながらうっかりとこんなオブジェクトモデリングをしてしまったりします。 そんなわけで、プログラミングする対象の仕様を理解しながら頭の中でモデリングして設計を進めてしまうのはやむを得ません。多かれ少なかれ、なにかしらの設計が浮かんできてしまいます。 でもTDDはテストを書きながら設計をします。先行して設計してし
「おい!どの口がアジャイル出来るって言ってるねん!」 さて、私にしては珍しくブチ切れ気味で記事を書いているのでこんな事書いていますが、ここからは、効果を本当に上げるアジャイル開発を実施したいときのリクルートで、どういうスキルを持った人を雇えばいいか?という話を進めたいと思います。これはとてもシンプルな一言で言えます。 テスト駆動開発が適切にできる能力があること この一言につきるのです。クライアントの皆さんは、是非アジャイルベンダーを雇うときはプログラマの人にこの能力を要求してください。注意しないといけないのは、テスト駆動が適切にできていないプログラマは、わかっていない事すらわかっていないこと、そして、営業さんとかマネージャさんのレベルだと、「テスト駆動が適切にできる人かどうか見分けがつかない事」が問題になってきます。これは、まともにテスト駆動ができる人がその人と話をすればテスト駆動をちゃん
プロジェクト管理は決して精密な科学ではないが、これにソフトウェア開発が持つ予測が難しいという性質と組み合わせられると、大きな悲劇のレシピが生まれる。わたしは、ソフトウェア開発プロジェクトに取り組んでいるプロジェクトマネージャーがよく犯す過ちを数多く見てきた。それらの過ちの一部はソフトウェア開発に限ったことではないが、この文脈では特に頻繁に起こり、ダメージも大きい。 1.「人数を増やせばよい」という誤解 Fred Brooks氏は同氏の有名な言葉の中で、よくあるプロジェクト管理の間違いについて「ある女性が9カ月に1人子どもを産めるからといって、9人の女性がいれば1カ月に1人の子どもを産めるわけではない」と表現している。そして、この間違いは今でも頻繁に見られる。ある問題に多くの人間を割り当てれば、その問題は早く解決するという考え方だ。残念ながら、これは正しくない。 プロジェクトに人を1人投入す
NTTデータとNTTデータユニバーシティは2012年4月17日、同社グループの主に入社3年から5年の若手社員を対象に、「アジャイル開発」と呼ばれるソフトウエア開発手法の研修を5月から実施すると発表した。今後3年間で約1000人のアジャイル開発人材の育成を目指す。 アジャイル開発とは、システムの仕様変更や機能追加などに臨機応変に対応できるよう、開発対象を小さい機能に分割して、設計や実装、テストを短い期間で繰り返していく開発手法のこと。米国IT企業のソフトウエア開発においては主流となっているものの、国内での採用はWebサービス業界やゲーム開発業界の一部企業にとどまっている。 今回、同社グループは、グローバルに展開する顧客企業をサポートできる開発体制を整備する目的で、グループ内におけるアジャイル開発人材の育成を始めた。研修では、アジャイル開発の代表的な手法の1つである「Scrum開発手法」のフレ
電気自動車(EV)にコネクテッド(つながる)、自動運転――。新技術を搭載するクルマが続々と登場しているが、大ヒットを記録しているものは少ない。どうすれば普及期に突入できるのか。 「…続き エコカーに「無関心の壁」 米自動車市場の現実 [有料会員限定] EV時代はまだ来ない 現実解は「マイルドHV」
ソフトウェア開発におけるアジャイル手法の適用が話題になっている。生産性が格段に向上した事例や、従来手法に比べて成功確率が上がったというレポートも出ている。では、あなたの(わたしの)プロジェクトにも導入すべき? その判断はちょっと待ったほうがいい。 アジャイル手法とウォーターフォール型開発の比較とバランスについて論じた書籍『アジャイルと規律』では、アジャイル手法と既存手法の比較資料について下記のように評している。 人は失敗より成功を報告する傾向にある。 先駆的プロジェクトは、新しい手法をいち早く取り入れる、かなり有能な人によって実施されている。 先駆的プロジェクトにはホーソン効果が働いており、注目を浴びている間は非常に素晴らしい成果を上げることができる。 これらのプロジェクトは過去の特に効率が悪かったプロジェクトと比較されている。 アジャイルと規律 ~ソフトウエア開発を成功させる2つの鍵のバ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く