AdventCalendar
mashupaward

サラリーマンならではの開発スタイル

本記事はMashupAwards Advent Calendar 2017の8日目の記事です.


MashupAwards2017の大一番を週末に控え,皆さまいかがお過ごしでしょうか.

今日はサラリーマンならではのMA開発スタイルについて自分の思うところを書いてみます.きっかけは,自分はこうなんだけどほかの人はどうやって取り組んでいるんだろう?というのを聞いてみたいとおもったためです.

もうひとつ,MAイベント後に毎年開催されているFukui Mashup Summit(2016)にて,PINCH(MA11)チームの夛田さんが「学生ならではの開発スタイル」というの話されていことがあり,社会人版もないかな..と思っていたというのがあります.

Who are you ?

  • nobu_e753 (モーションでスト2やってる人)
  • 居住地:名古屋
  • 仕事:ソフトウェア開発(画像認識,データ分析,機械学習)
  • MA歴:3年(そろそろ中堅?)

仕事でマイコン等H/Wは全く使いませんが前職が半導体設計(HDLを書きFPGAで画像処理をしたり)だったこともあり,電子工作も好きです.また,機械学習の面白応用にチャレンジしています.チームメイトorジョインできるチームを探してます!

この記事で対象とする人

MAに参加されている方で,いわゆるサラリーマン(職種は問いません)の方.言い換えると,

  • (基本的に)8時間x5日(フレックスの方も多いと思いますが)
  • (基本的に)MAの創作物は趣味であって本業ではない
  • (基本的に)勤務時間を開発に充てられない

の方です.学生,会社の制度で勤務時間内で活動出来きる方,スタートアップ/デザイナー/アーティスト/研究者でそもそも本業との区別がしにくい方,フリーランスなどである程度時間の無理がきかせられる方はのぞきます(その方たちにもぜひ同ネタで語って,というかパネルディスカッションとかしたら面白そうです.ただ,現実にはどのお仕事もそれほど自由にできるわけではないと思います).

また,子供さんが居られる方はまた違う状況かもしれませんが,そこはわかりませんので許して下さい.

サラリーマンゆえの悩み:時間との闘い

やはりこれに収束してゆくのではと思います.より正確には「時間がない」というよりは「時間の自由がきかない」というのがより正確かもしれません.この記事が公開されるのは金曜日なので,翌日の部門予選を気にしつつ,きっと顧客への週末報告書と別件の納品打ち合わせでうんうん言っているに違いありません."2nd終わるまで待ってやって"と言いたくもなりますがそうもいきません.

MA期間中のタイムテーブル

ピーク時(投稿締め切り2週間前~負けるまで)はおおむねこんな感じで速攻退社→開発→夜が明けたら寝る,という感じです.歳のせいか今年は体がついていかず気が付いたら寝落ちしていたり,寝坊したりしていました...すいません(※現職場はフレックスですが).

タイムテーブル.png

サラリーマンゆえの対策

必然的に対策は

  • 時間を作る
  • 効率を上げる

しかなくなります.実践していたことを思い出しながら書いてみます.

金で解決

まずはこれです.学生さんよりは出せるものがあるので生活面/開発面の双方で時間を金で買ってゆきます.

生活面

  • 食事は外食やデリバリー
  • 生活環境のアップデートはしない or あらかじめしておく

料理が好きなので普段は朝夕ほぼ自炊ですが,つい時間をかけてしまうのでピーク時は割り切ります(どうせ一ヶ月程度の間だけなので).気になる部屋の模様替えとかはあらかじめしておきます.今年は夏ごろに椅子をアップデートしましたがとても効果的でした.

開発面

  • 資材はとにかく先行発注
  • 迷ったら両方買う(色/性能/形状)
  • 倍量買う(故障/不良品対策)
  • 性能に足るなら完成品を買う(組み立てによる不具合回避,デバッグ時の再現性確保)

主にH/Wを製作する場合の対策です.今年は5件投稿したのですが,そのうちのひとつ(IoT版天気予報ゲタ)がH/Wものでした.そうなると必要な電子部品を入手するまでの時間が最大の敵になります(実店舗で買えるものは限られるので必然的に通販).「目的と合わなくて再度購入」「足りなくなって再度購入」となるといくら通販が早いといっても時間ロスが発生するので極力発生しないようにしました.他にもホームセンターや100円ショップにて,針金/ビニールテープ/ねじなどを購入したときも,迷ったら色違い/太さ違いのものを両方買うようにしていました(お陰でAmazone/秋月電子/スイッチサイエンスの領収書がすごいことになりました)

関東在住でしたら「部品がないので休憩がてら秋葉原へ買い物にいくか」「当分はDMM Akibaで作業しよう」とかが可能でしょうから状況はことなるかもしれません(うらやましい).

1.jpg
(ゲタにサーボを埋め込むため,キリやらノミやらいろいろ買いました)

プロに相談

取り組んでいる課題について自分は専門外かもしれませんが,同僚や隣の部署にプロがいるかもしれません.私の場合

  • 機械学習,深層学習
  • Android

関連で同僚にアドバイスを求めたりしています.悩んでいるときに話を聞いてもらうだけでも整理できますし,気にかけてくれる同僚が「もしかしてこうやったらいいのでは?」とあとで別案をくれることもあります.大手企業にお勤めの方ならより効果が期待できそうです.
もちろん「コミュニティーで知り合った詳しい人に聞けばいいじゃん」というのはその通りですが,コーヒーを飲みにいった際にさっと聞けるのはというのは大きいと思います.

明確な休憩,明確な気分転換

サラリーマンの身で開発がピークになると,家と会社の往復だけになり鬱々としてきます,特にデバッグがはかどらない時は.なので些細なことでも変化をつけたり,物理的に開発できないところに行き明確に休憩をとるようにしました.例えば,

  • 毎日,違う店で朝食/夕食をとる
  • 毎日,違う経路で通勤/退勤する
  • 詰まったら銭湯

デバッグに詰まった時は大抵スーパー銭湯に行っていました.湯からあがってコーヒー牛乳をのみつつ休憩室でぼけっとしているときに,なぜか見落としに気づいたり対策案を思い付くことが多かったです.

捨てる選択(=優先順位付け)

それでも最終的には追い込まれるので,締め切り間際には「捨てる」選択に入ります.「やりたいこと」「やれること」「時間」で綱引きしたうえで優先順位をつけ必ずその順位どおりに実行します(サラリーマンの新人教育みたいですね).このあたり私は苦手で,どうしても「やりたいこと」に走りがちで「捨てる」==「負け」といった思考になりがちでしたが,あることをきっかけに少し考え方が変わりました.

1年ほど前,止まって見える寿司(MA2016)を2nd stageで発表されていた湯村さんに休憩中に作品を見せていただいたとき,ブレッドボード+むき出しの配線が気になるというようなことをお伝えしました.その時の返しが,

湯村さん:「見えない部分が汚くても,ネタの面白さが変わらなければそれでいい(キリッ」

で,「あ,なるほど」とストンとおちた気がしました.その後の製作でも指針としています.

わりと万能な対策:チームで挑む

上記のことは,チームを組むことでおおむね達成できる気がします,というか半自動的になされる気がします.

意識的にチームで挑んだのはMA2016が初めてで,MA古参の青島さんトイレ見守りシステムを作りました.この時は,自分が実装で必死になっている間に発表スライド作成や手続きをしてもらったり,分担や期限について相談したり,お互いの絶対やりたいこと/妥協できることについて議論をしたりと,時間を有効に使うための行動を自然と行えていたように思います(チームメイトがいることによる強制力?)

チームで挑むことのメリットが大きいと感じた私は今年も誰かと組むぜ!と意気込んでいましたが,人望がないせいか結局ぼっちでした.. orz
来年はどなたか組んでやっていただけると嬉しいです(できれば,デザイン系というよりアート系の方と組んでみたいです!!)

ふと我に返ると..

会社でも家でもひたすら開発していて一体に何をやっているんだろう...と思うこともあります.でも,一般的にはなんじゃそりゃ!(失礼w)と思うものに信じられないくらい情熱を注いで創作している人を見ると「やっぱり何かやってみたい」という衝動にかられて,開発に戻っていく感じです.普通のビジネスコンテストであればここまで心を動かされないかもしれません.

先週末のMA2017 InteractiveDesign部門決勝でも,失禁体験装置とかゴム腕体感マシンとか剛速球投擲マシンとか斜め上どころではないものばかり並んでいて本当に感動しました(ゴム腕体感マシンは是非体験をお勧めします).

最後に

マジなものでもバカなものでも受け入れてくれるMAは本当に楽しいコミュニティだと思います.初参加だったMA11 名古屋ハッカソンでの光景は,今でも昨日のように覚えています.伴野さん,まなみさんをはじめ,MAに参加してからの多くの出会いに心から感謝します.

週末は部門決勝と2nd stageです

皆さんの創意工夫に満ちたプレゼンが楽しみでたまりません

週末も,そしてこれからも,まだ見ぬどなたかにお会いできるのを楽しみにしています.

Lets Happy Hacking!