先日、楽天さんの主催する楽天テクノロジーカンファレンスにて、講演の機会を頂きました。楽天テクノロジーカンファレンスでは、数年前の前職時代に社内SNS:SKIPのオープンソース化についてRuby賞を頂いたことがあり、そこでこうして自分自身が講演させて頂いて感慨深かったです。

私の講演では、私が技術者から経営者にいたるキャリアの中で学んだことや感じたことといった過去から現在に至る話と、こうしていきたいと考えているこれからの未来の話をさせて頂きました。発表資料は以下です。

プログラマを一生の仕事にできるビジネスモデルで目指す未来のビジョン

私としては、これまで様々なコミュニティや社外活動を通じてもらってきた「刺激」を、今回の参加して頂いた皆さんに私から渡せればという思いで引き受けました。コミュニティから始まるペイフォワード(恩送り)ですね。

今回も早口メソッド(落語メソッドとも)ということで、講演中はなるべく沢山の情報を詰め込んで早口で話しつつ興味あるところは後ほど資料などでじっくり考えて頂くというスタイルをとっています。それでも時間が足りず、最後の方は駆け足になってしまったので、今後ブログなどで補足できれば、と思います。

そして、USTで視聴参加いただいたPublickeyさんが3本立てで記事にして頂きました。私の早口メソッドをみごとに、とてもわかりやすく記事にして頂いているので、資料とあわせてご覧ください。

講演では、時間が足りなくて質疑応答の時間が殆どとれなかったため、Twitter上でご質問などを受け付けたところ、色々とご質問を頂いて一つ一つ回答したので以下にまとめておきます。

  • #rakutentech 本日の私の講演資料はこちらです。「プログラマを一生の仕事にできるビジネスモデルで目指す未来のビジョン」 http://t.co/cC2Hhp6l

  • #rakutentech 倉貫の講演、質疑応答の時間がとれなかったので、ご質問あれば、Twitter上でお受けします。

  • @kuranuki 大変興味深いお話でおもしろかったです!楽天でエンジニアをしております。 担当が1~2社なら週の半分くらいは余る、というお話があったのですが、少し意外に感じました。1社・1月あたりの開発量はさほど多くないのでしょうか?それともプログラムは数人でやるのでしょうか?

  • @taichiw0424 プログラマは基本的に一人ですが、移動しなかったり、余計な会議がなかったり、無駄なドキュメント作ったりする時間がないので、思ったより生産性は高いです。だいたいボトルネックはお客様側の方の要件決めと確認の方になります。その範囲の仕事をすると決めるんですね。

  • @kuranuki エンジニアが開発に集中できる環境があるのですね。私の場合、トラブル対応や運用に予想外の時間をとられることがあるのですが、その点はいかがでしょうか?
    開発と運用を分けないことのデメリットだと思っています

  • @taichiw0424 そうですね、私たちは全てのシステムを最初から自分たちで作っているので、まずTDDなどしてトラブルが起きにくいように作っています。開発と運用を分けないことで、運用しやすいプログラムを作ることを心掛けるようになります。むしろプログラマの全て自己責任ですね。

  • @kuranuki お話にもありましたが、トラブルが起きてもすぐ対応できるように、という点ですね。そこも含めてプログラマの力量なのですね。ありがとうございました!

  • @kuranuki 話の途中某Kさんだと思いますが フリーランスになるためには1.仲間を見つける 2.有名になりなさい とのことでしたが、仲間を集める・有名になるために実践したことはなんでしょうか? それは社会のセミナーや勉強会に行って講演したり本を出したりすることでしょうか?

  • @odaken0824 仲間は一緒に仕事をしていくなかで、思いに共感してくれて、ですね。あと有名になるというと売名的ですけど、どちらかというと、誰かの役に立つ情報を発信し続けることで、受け取ってくれる人たちが増えてきたという感じです。どちらも自分のためでは駄目だったと思います。

  • @kuranuki 返信ありがとうございます!質問です。納品しない受託では継続性と保守性が重要とありましたが、案件を担当しているプログラマが様々な事情からいなくなってしまう場合(退社等)のリスクに対してはどのような対策を考えていらっしゃいますか?

  • @waki4111 契約としてはメインのプログラマの他にサポートプログラマをつけていまして、何らかの時は切り替えることも出来るように情報共有してます。

  • @kuranuki [質問]フリーのプログラマとして働く事と、御社のプログラマとして働く事の、一番の違いは何でしょうか?

  • @garden_tree 観点によると思いますが、プログラマから見て、ですか?プログラマにとってみれば、自分で営業も出来て、経理や会計も出来るならフリーランスでも良いと思います。うちのプログラマであれば、プログラミングだけに集中しスキルを磨くことが出来ますね。

  • @kuranuki なるほど、ありがとうございます!

  • @kuranuki ビジョンに非常に共感しました!あとドラクエの例えもわかりやすかったです!
    質問です。受託から社内開発へと変わるところが結構大きな転機と感じたのですが、チームを解散されるほどの状況の中、社内のモンスターをどのように倒したのでしょうか?

  • @asflash8 社内システムの開発は、最初はアンダーグラウンドでやってました。課長時代に元々のミッションが社内の情報共有だったので、その予算内で作った感じですね。そこは確認しないで、行動してしまった感じです。

  • @kuranuki なるほど。元々のミッションでもあったのですね。ただしアンダーグラウンドで、ですか。ありがとうございます。参考にさせていただきます!

  • @kuranuki 起業やフリーランスの話がありましたが、管理職や営業を経験しないと起業することは難しいものなのでしょうか?

  • @odaken0824 起業と言っても何をするかによると思います。トラディショナルな会社をしたいなら営業経験は必要でしょうし、大きな組織を作りたいなら管理経験は有効ですね。ビジョンは何か考える、起業や独立と一口に言わずに、具体的にすることを考えると良いと思いますよ。

  • @kuranuki 貴重な講演ありがとございました。サービス型受託開発について質問があります。2回目以降のイテレーションと比べて1回目はちょっと特殊なのではないかと思ったのですが、どのように進めていらっしゃるのでしょうか? #rakutentech

  • @urimaro イテレーションは一週間単位くらいで進めますが、契約が始まってしまえば、あまり一周目も二週目以降もあまり違いはないですね。ただし、始める前の準備や環境構築、顧客への説明と理解などはしっかりしてます。

  • @kuranuki 返信ありがとうございます。経験上、明確な要求をもっていない顧客が多いように思うのですが、要求やイメージを聞き出すのに苦労することはありませんか?「環境構築や顧客への説明の段階(イテレーションゼロようなもの?)」に含めて行っているのでしょうか?

  • @urimaro 明確な要求というか、完全な仕様を事前に全部出すのはあり得ないので、仕様については走りながら決めてもらう感じです。ただ、どういうビジョンを持っているか、誰がユーザでなにが問題か、といった辺りは、始める前の段階でかなりディスカッションしますね。

  • @kuranuki 始める前にかなりディスカッションするとのこと、すごく腑に落ちました。完全な仕様があり得ないのは私も同意見です。このことを理解している人は多いのですが、事前のディスカッションもせずに進めてしまう。共通認識を持つだけで、改善できることがたくさんあると思っています。

  • @kuranuki もう1点質問させてください。一概に言えないとは思いますが、ウォーターフォールな現場で、ボトムアップでアジャイルな開発に変えていくとしたら、どんなことから、どうやって導入することを薦めますか?

  • Content from Twitter