めぐりあったのは、たった1つの不思議なプロジェクトでした
こんにちは。草食系妙齢プログラマ 野口おおすけです。GWが明けて5月病シーズンに入りましたが、皆様お元気でしょうか。今回よりエンジニアライフでコラムをお届けすることになりました。どうぞよろしくおねがいします。
■自己紹介
今回が初エントリということで、少しわたし自身のことをお伝えしておこうと思います。
今流行の草食系の妙齢(30歳)のプログラマです。IT業界の仕事は現在の会社で2社目です。新卒で一度大手SIerに就職しましたが、その後1年で退職。大学院を経て、現在の会社に勤めています。現在の仕事は業務系Webアプリ開発やERPのカスタマイズなどをメインに仕事をしています。プログラマといいながら、時には小さいながらもプロジェクトメンバーを引っ張ってお仕事することもあります。
仕事以外の部分ではLT(LightningTalk:5分間で一定のテーマについて発表する)したり、さまざまな勉強会(主にjava-jaやGLT)に参加しています。また、OSSプロジェクトJiemamyにも参加しています。もしかしたら、読者の皆様の中にもお会いした方がおられるかもしれません。
■このコラムで扱うテーマ
このコラムでは、主に勉強会の懇親会のネタとなる「不思議なプロジェクト」の話やこれまでであった「不思議なエンジニア」の方の話などを中心に進めていきます。特に「プロジェクトマネジメントが~」とか「ウォーターフォールが~」とか「品質問題が~」という難しい話をする気はないので、仕事の合間の一息入れるついでに、肩の力を抜いて読んでいただければと思います。
ただ、「残業きつくてねぇ……定時で帰れる奴はいいですなぁ」と奴隷の鎖自慢をしても仕方ないので、どうしてそのプロジェクトは燃え上がったのか、回避するにはどうすべきだったかと考えることや、そこから導き出されるプラクティスについて考えるキッカケになれば幸いです。
■不思議な不思議なプロジェクト
日々開発業務を行う中で、「このプロジェクト(設計orソースorマネジメント)おかしくない?」と思ったことはありませんか? 大きく分けて、以下の3つの「不思議なモノ」に分類されます。
1.マジカル仕様書
「このボタンクリックしたらファイルがDLできる」という、一言だけの内部仕様書を過去に見たことがあります。設計者は何を伝えたかったのでしょうか? このように、仕様書といいながらも、本質的に何の意味もなしていない仕様書を「マジカル仕様書」と呼びます。「ピッと押したらドーンとなる」というレベルのものから日本語としてパースできないものまで、さまざまな種類があります。
2.ミステリアスソース
ifブロックをよく見ると、ifブロックもelseブロックもまったく同じ処理をしているソースコードをみたことあります。プログラマは何を想定して作成したのでしょうか? 2、3日寝てなかったのであれば、書いた方の体調を心配してしまいます。このような、コンパイルエラーにはならないものの、実装した方の意図を誰も読み取れないようなソースコードを「ミステリアスソース」と呼びます。「バグではないけれど、なんでこんな実装になってるんだろう」と疑うものから完全にバグであるものまで、影響度はさまざまです。
3.エキセントリックマネジメント
実装する前からできあがるソースコードのステップ数が決まっていたり、仕様書の枚数が決まっていたりと、奇怪なマネジメントを経験したことはありませんか? マネジメントする人は何を考えてプロジェクトを運営したのでしょうか? このような、誰もが不思議に思い、プロジェクトが明後日の方向へ進みかねないマネジメントを「エキセントリックマネジメント」と呼びます。場合によってはデスマーチ直結のようなマネジメントもあり、メンバー誰もが幸せにならないという最悪の結末を生んでしまう可能性があります。
これらの言葉はわたしが個人的に呼んでいるだけで、厳密な定義などはありません。皆さんが日々の業務で「これはないわ~」と思ったことは、この3つのうちのどれかに当てはまると思います。
次回から、この3つの軸を中心に実際に経験したことをご紹介していきます。また、このような貴重な経験をされた方がおられましたら、コメント欄で情報提供していただければ、取り上げてみたいと思います。
それでは、また次回お会いしましょう。
コメント
pakka
「ピッと押したらドーンとなる」仕様が実装できないと、SEにはなれない。
SEになれない人がSEをしていたり、PMがエキセントリックマネジメントをするのは
会社が「仕事」をしていないんですよ。
賢い人は、ミステリアスなソースをまともにするかもしれませんが、
賢くない人は、まともなソースをミステリアスにします。
要求仕様書が完璧だったら、正確な見積もりが出来て、強気の営業が商談すれば
利益が生まれるので、まともなSEやPMが増えるんでしょうねぇ。
野口おおすけ
>pakkaさん
コメントありがとうございます。
>「ピッと押したらドーンとなる」仕様が実装できないと、SEにはなれない。
エンドユーザーさんが「ピッと押したらドーンとなる」となるという仕様や要求を
提示する事は否定しません。(次回以降この点については掲載する予定です)開発工程において、いつまでも「ピッと押したらドーンとなる」という状態を持ち越すような事を問題視しています。
>会社が「仕事」をしていないんですよ。
確かにおっしゃるとおりです。ミッションを果たす事ができないのであれば、然るべき対処をすべきでしょう。ただ、それだけを期待するのは難しいでしょう。そのような状況に出くわしたときに如何に対処するかを記事を通して導くことができればと思っています。