開発現場は日々の仕事の場であるとともに、学びの場でもある。先輩エンジニアが過去に直面した困難の数々、そこから学んだスキルや考え方を紹介する。
こんにちは。アクセンチュア・テクノロジー・ソリューションズの新楽です。
「技術的に新しいことができなくてつまらない」という不満を抱いたり、「ここに新しいテクノロジを使えたら……」という欲望に駆られたりしたことはありませんか? 今回は、私がそんな不満を解消し、欲望を満たすための第1歩を踏み出したときの話をしたいと思います。
2000年ごろ、マイクロソフトより.NETなる新たなソリューションが発表されました(いまでは全然新しくありませんが)。しかし私が当時勤めていた会社では、新規で立ち上がるプロジェクトであっても、ことごとくVisual Basic 6.0(VB 6.0)で構築されている状況でした。
世間は.NET時代の幕開けという雰囲気だったのにもかかわらず、社内には、.NETに移行していこうというような意識はまったくありませんでした。VB 6.0がサポート終了に向かっているのは分かっていたのに……。
それはおそらく、こんな理由からだったのでしょう。
そんなときのことです。私はある新しいプロジェクトに、リーダーとしてアサインされることになりました。
プロジェクトは、アパレルの店舗管理システムを構築するというものでした。店舗側は各店舗に設置するPCからWebで売上実績の登録や在庫の照会、棚卸実績の登録を行い、本部側はWeb+C/S(クライアント/サーバ型)アプリケーションで店舗の実績をタイムリーに把握できるようにするというシステムです。
運の良いことに、私はアーキテクチャの選定からかかわることができそうでした。ただし、本部で使用するC/Sの部分については、自社開発のアパレル向け販売管理パッケージ(VB 6.0+Oracle)を導入することが決定している状態でした。それと連携する店舗側の、Webアプリケーションのアーキテクチャを選定することになったのです。
営業側は、「ASP(Active Server Pages)でいいのでは?」という感じでした。それまでの社内の実績からしても、ASPで、VBScriptでゴリゴリやるというのが普通の流れでした。
このような状況で、皆さんならどちらを選びますか?
a.会社の方針・流れに従い、ASPでVB Scriptをやり続ける
b.新しいことにチャレンジする
当時の私はbを選択しました。「このままVisual BasicとかASPばかりでは……」と考えてもいましたし、「自分のキャリアの幅は、自分の力で広げる!」という強い思いもありました(もちろん、会社のためにとも思っていました)。
ということで、私はこの案件が来た時点で、すでに「.NETでやってやろう」と心に決めていたのです。
そこで考えなくてはいけないのが、「いかにして、.NETで作ることを営業・会社に納得させるか」でした。
ただ「やりたい」では当然受け入れられるはずがありません。ですので、今回のアプリケーションの要件を整理し、 .NETを使うメリット、.NETを使用した際に想定されるリスクとヘッジの方法をきちんとまとめました。今回のプロジェクトを.NETでやることにより、会社にも.NETの事例ができていくということも説明しました。
そうした工夫の結果、私は無事に会社を納得させることができました。
このとき私は、こんなことを学んだ気がします。何か新しいことをやりたいと思っても、たいていは自分1人ではできません。ステークホルダーを納得させる必要があります。
そして納得してもらうためには、「思い」だけがあってもダメなのです。どんなに自分の思いが強かったとしても、それだけを前面に出していては、人を説得するのは相当難しいと思います。ステークホルダーが利益を得られ(お金とは限りません)、安全を保てることをきちんと説明すること。それがこんなにも大切だと感じられたのは、とても貴重な経験でした。
当たり前のことなのでしょうが、思いが強ければ強いだけ、感情論になりがちです。これは別に、新技術を導入する際に限った話ではないと思います。
例えば設計をしていて、「ぜひこういうふうにやるべきだ」と思うものがあったら、それをなんとかして相手に納得させることが必要なのです。「こうするべきだ!」だけでは、相手は受け入れてくれません。受け入れてもらえなければ、うまく進めることは不可能なのです。
皆さん、自分の思いだけで物事を進めようとして、失敗した経験はあるでしょうか。私には少なからずあります。
Copyright © ITmedia, Inc. All Rights Reserved.