読者です 読者をやめる 読者になる 読者になる

特別天然記念物

日本ぱんだ(@nihonpanda)です。エンジニアです。プログラム談義とかします。

技術がわからないデザイナーやディレクター、プロダクトオーナーとのコミュニケーション

コミュニケーションのAdvent Calendar 16日目です。

みろなるさんコミュニケーションのAdventCalendarやるから書いてって言われたので、つらつらと書いてみます。

今年春にSI屋さんをやめて、デザイン事務所のような会社で唯一の常駐エンジニアとして、アプリの技術なんかほとんど知らないWebデザイナーさんやディレクターさんとのコミュニケーションについて思ったことを書きます。

経緯

今年の春に2年務めたSIerをやめました(参考:退職しました)
SIer時代には、基本的にどこの現場に行っても周りはSEかPG。
お客さんもSEかPG。
エンドユーザーがSEなんて仕事も。
多々ストレスは有りましたが、話す方も聞く方もエンジニア。ある程度の共通の認識や知識を持ってコミュニケーションを取れることが多かったです。

そんな会社をやめて、今いる会社はWebデザイナーやディレクターがメインのメンバーの、IT企業というよりはデザイン事務所のような職場で働いています。
アプリエンジニアどころか、エンジニアと呼ばれる人間で常駐してるのは僕だけです。 退職を期に個人でも小さなアプリ開発案件を請け負い始めたので、デザイナーさんと話す機会は増す一方です。
なので、ディレクターさんとコミュニケーションを取らなければならない状況に置かれた僕の、ここ数ヶ月の気づきを書いていきます。

まず徹底的にわがままを聞く

SI屋さんにいると、まず要件定義を作って、設計して、作ってテストして・・・・。なんてことをしますよね。
でもせっかくプロダクトオーナーもデザイナーもディレクターも同じ部屋にいるんだから、そんな手間は掛けたくないですよね。
だからと言って、ろくに要件も決めないままいきなり作り始めるとろくなことにはなりませんよね。
さらに言えば、「じゃあ要件定義をしていきましょう。」なんていきなり始めてしまうと、プロジェクトを進めるのに慣れてない人は、
割りと萎縮してしまう場合なんかもあります。
そこで魔法のコトバ 「まずわがままを書きまくってください」です。
このわがままは、「こんな感じの機能がほしい」「この画面はかっこいい感じにしたい」といった抽象的なものから、
「この画面のここのフォントは◯◯にしたい」「このボタンはこのデザインがいい」等の具体的なものまで、とにかくなんでも列挙してもらいます。 これが出来上がれば、かなりスムーズに要件定義やタスクの分解ができます。
例えば「この画面はかっこいい感じにしたい」というわがままの場合、わがままの定義付けと実現方法を考えます。

  • どのような画面デザインで、どのような機能がどのように動けばかっこいいかを決める。
  • かっこいい画面をデザインする。
  • かっこいい機能を作る。
  • かっこいい動きを作る。

という過程を踏めば実現できることがわかります。
つまり「かっこいい画面」という抽象的な表現の定義付けと、この機能の要件の決定、タスクの分解ができるわけです。

具体的なわがままについては、定義付けやタスクの分解どころか、そのままissueにすらなってしまう場合があります。

大きなチームではわかりませんが、プロダクトオーナーのわがままをリスト化することで、要件定義に近いもの、もしくは要件定義を作るための足がかりになります。

わがままに優先順位をつける

次にわがままに優先順位をつけます。
これは言わずもがな、要件定義ができたらスケジュールを決めたいですよね。
わがままをタスク化した時点で、ある程度ですが工数の見積もりも見えてきているはずです。
つまり、後はわがままに優先順位をつければ、ざっくり開発スケジュールが出来上がるわけです。

無駄なドキュメントは作らないけど、必要なドキュメントはちゃんと作ろう

デザイナーさんとおしゃべりするのは楽しいです。ついつい長話してしまうことも多々有ります。
そんな長話のさなかに、隠れわがままが出現することがあります。
隠れわがままは、我々の天敵である「仕様変更」「機能追加」である場合があります。
仕様変更や機能追加をしたくないわけではないです。いいものを作るために必要なことならば積極的にやりたいです。
問題なのは仕様変更や機能追加がふわっと現れることにあります。
ふわっと現れたタスクをふわっとさせておくと、なんの機能なのか、いつやるのかが曖昧になったまま、結局忘れさられるといった悲劇がおこることがあります。
これは、デザイナーさんとのおしゃべりに限らず、仲の良い開発チームやタスク管理が苦手な人達のチームで起こりやすいことでもありますね。
これを避けるために、めんどくさいですが機能について正解を示すドキュメントは、機能毎やわがまま毎に作っておきましょう。
会話のさなか隠れわがままが出てきたら、このドキュメントと照らし合わせながら仕様変更や機能追加をしましょう。
このわがままの再設定的な作業をしておけば、隠れタスクは生まれないはずです。

急がせないでやりたいようにやらせる

たまにあるんですけど、「この画面のデザイン、とりあえず手書きでざっっっっっくりでいいので下さい」って頼んだのに、
きっちりしたデザインが上がってくることがあります。なんか手書きでざっくりみたいなのが苦手らしくて、
ちゃんとした完成形のデザインじゃないとイメージができないらしいです。
最初は、「まじかー。とりあえずざっくりデザイン見ながら、機能だけ作っちゃって後でデザイン反映するかー。」なんて思ってましたが、
無理なものは無理らしいので、諦めましょう。というか諦めました。テストでも書きながら待ちましょう。
無理に急かしてもモチベ下がって、逆に遅くなることもあるし、急がば回れです。
デザイナーさんに限らずこういう人っているよね、って話なんですけども。 ただ、スケジュールに遅れが生じる可能性があることなどはちゃんと説明しましょう。

専門用語を避けない

非エンジニアと話すとき、こちらから専門用語を避けがちになってしまっていませんか? 専門用語を避けて、話すことで正しく意図が伝わらない事があったりしませんか?
そういった自体をさけるために、僕はあえて専門用語は専門用語のまま使っています。
ただ、そういった専門用語を使う前に必ず「今から技術の話をします。」というようにしています。
急に知らない単語がいっぱい出てくるとびっくりしますので。
なので、専門用語を使って正しく意図を伝えるために 「今から技術の話をします。この機能を実現するには、データベースに○○のためのテーブルが必要です。ここでいうテーブルとは〜〜」
といったように、はっきりと専門用語である事と、その意味を伝えましょう。
これにより、正しい意思の疎通と、その後のコミュニケーションコストの軽減が見込めます。
また、これについては逆も然りで、エンジニアも相手が使う専門用語を理解しようとすることが大事ですね。

甘いものやごはんを与える

定期的にシュークリームやらワッフルやらを買い与えましょう。
糖分は頭を活性化させるような気がします。 あとうちのデザイナーは茶碗蒸し与えると頑張ります。
出汁と卵と具を混ぜて、器に入れて、アルミホイルかぶせて、器が半分浸かるくらい鍋に水を入れて沸騰させて、鍋に器を入れて鍋に蓋をして10分くらい蒸せば出来上がりです。簡単ですね。 🍣や🍕や🍖なども有効です。

おわりに

技術がわからないデザイナーやディレクターとのコミュニケーションと題しましたが、非エンジニアとプロジェクトを進めるにあたっての気づきみたいな事を書いた気がします。

長々と書きましたが、大事なのは相互の歩み寄りと仲良くすることが、チーム内で最もコミュニケーションコストを下げるのに大事なことだと思います。
こういう考え方もあるんだー。程度の参考にしていただければ幸いです。

転職して2ヶ月が経ちました

転職してから2ヶ月が経ちました。
2ヶ月ブログ更新しなかったんですね。
時間が無かったとか、書くことがなかったとかじゃなく、単純にめんどくさくて書いてなかったですごめんさない許してごめんさない殴らないで。
別に転職して2ヶ月経ったこと以外で節目とかがあって書いてるわけじゃないです。喫茶店でやること無くて暇なので書いてます。
ぬるっと近況報告します。

まず

長いような短いような2ヶ月でした。
気持ち的にはもう1年以上Super Crowdsにいるんじゃないかくらい。
でもリリース日(何をいつリリースするかはまだ待ってね)は刻一刻と迫っていて、それに対しては時間がなくて焦ってる感じです。
そういう意味で長いような短いような。

社畜ライフのお話

そもそも、
「もう毎日お仕事するのやだめうーー!! SI社畜なんかやめてやるめうーーーー!!!!!」
くらいの勢いで転職したんですが、社畜力が爆上がりしてます。
毎日仕事してます。
休日なんか無いです。2ヶ月のうち丸1日休んだ日なんか片手で数えられるくらいしかないです。
ただ、勘違いしないでほしいのは、「リリース日ガー」とかで毎日仕事してるんじゃなく、
ただどうしよもなく楽しくて仕方がないので毎日仕事してます。
正直、リリース日に間に合わせるだけならここまで社畜感出す必要ないです。
でも楽しいし。できるだけいいもの作りたいし。
ストレスなんか無いですよ。
朝起きて「なんか今日仕事って気分じゃねぇな」と思った日はバイク乗ったり映画見たりしてますし。
そう思う日が少ないだけです。
基本的にワーカホリックなんですね、きっと。


少しだけ技術のお話

少しだけ技術の話を。
最近はもっぱらSwift屋さんです。
楽しいですね、Swift
僕はずっと C#Java屋さんだったんですが、おぶじぇなんちゃらと比べて圧倒的に敷居が低いです。
次期バージョンでtry-catchが使えるようになるなんて話も聞きますし、さらに敷居は低くなるかと。 個人的にSwiftでやるエラー処理が、どうやるか悩みどこだったので、try-catch使えるととても楽になりますね。
今やりたいことはUIテストをCIで自動化できればなぁと思って試行錯誤はしてます。
どうやりゃいいんでしょうね。さっぱりです。
この辺の話は先日@mironalさんが弊社に遊びに来た時にちょっと話したりしたんですけどね。
まぁ、今弊社にアプリエンジニア僕しか無いんで、そこまでやるかっていう話はあるんですがね。
リポジトリ管理とかは僕がやりやすいってものあるんですけど、一応人数増えた時を見越してGit flowでやってます。

issueに対してbrunch切る

そのbrunchで開発する

開発終わったらプルリク&Developにマージ

リリースのときはリリースbrunch切って、そこで申請に向けた若干の修正(これをDevelopにマージすることは少ない)

みたいな。
問題はレビュアーがいないこと。プルリクの段階でレビューしたいんですけどね。
エンジニアぼっちだし・・・寂しさある・・・。

弊社に来たお客さんの話

技術のお話で少しだけ名前が出ましたが、Twitterクライアントのfeatherで有名なコベリンのぬま(@numa08)さんとみろなる(@mironal)さんが弊社に遊びに来ていただきました。
まずみろなるさんに連れてきていただいたドールに弊社取締役陣&僕大興奮。
みろなるさんちのこかわいい。僕もはよお迎えしたい。
ドールのお話からはテクニカルな雑談に。
先ほどのUIテストのお話やらCIのお話やら。
社内でエンジニアと喋ることが無いので、とてもいい刺激になりました。

僕「作りかけですけど、今こんな感じのアプリ作ってるんですよ」(iPhone渡す)
みろなるさん「へぇ・・・」(触りまくる)

みろなるさん「あ、落ちた」
僕「ふぁっ!?」

いい刺激になりました。。。。。。。。。
それをきっかけに弊社のiPhoneはユーザーがfeatherの虜にもなりました。


以上近況報告でした。
要するに毎日楽しいです。
エンジニア不足も、稼ぎまくって、あといい人見つけて、雇い入れればいいだけなんで、頑張るっす。
あともうちょい頻繁にブログ書きてぇっす。

追記

書くの忘れてたので追記します。 みろなるさん、このブログの名付け親でもあります。

このやりとりのみで決まったブログタイトルでした。

退職しました。

こんにちは。日本ぱんだ(@nihonpanda)です。

2年間働いた会社を辞めました。

ブログ開始1発目から退職エントリとは我ながら熱いと思います。


専門学校卒業して新卒で入った会社を、2年で辞めたわけですが、
別に最初から一生同じ会社にいるつもりは無かったんです。
それでも最低3年はいようと思ったんです。
何事も3年は続けてみないといいところも悪いところも見えないと思ってたんです。


そう思ってた時期が僕にもありました。


前職はいわゆるSIerです。
契約形態は派遣契約と請負契約。自社開発案件は一切ナシ。
本当によくある、形態のSI屋さんです。

昨今は短納期案件が多く、僕も新人研修が終わってから2年間で5案件をたらい回しにされました。
前職では、新人はまずテストをさせられます。
単体テスト結合テストらへんを。とりあえず誰でもできる仕事をさせられるわけです。
それから徐々にコードを書いたり、設計に関わったり、管理業務をしたりとキャリアアップしていくわけです。
(これは前職に限らず同業他社はほとんどそうだと思います)

僕も例に漏れずはじめての仕事はテストでした。
請負契約ですでに自社から2名のエンジニアが客先に常駐していて、そこに僕が加わる形でした。
自社の上司2名のうち1名は管理業務担当者。いわゆるチームリーダー、TLです。
もう1名は骨の髄までエンジニア。本当に優秀な方でした。
ドキュメントの書き方はTLに、コードの書き方やツールの使い方、テストの仕方はもう1人のエンジニアに教えて頂いて、
運良くちょっとだけ設計に関わったり、コードを書いたりもして、はじめての仕事は新人にしてはかなりいい環境だったと思います。

そんな環境が続いたのは、たった2ヶ月でした。

ある日営業から移動が言い渡されました。
次の現場は、新規顧客で数週間派遣契約で僕一人で常駐しろと。
その時僕は入社から半年も経っていませんでしたが、この営業頭ぶっ壊れてんじゃねぇのかなと思いましたとも。

しかしながら逆らえず、次の現場へ。
右も左もわからないぺーぺーが新しい現場で仕事するわけです。最初はしんどかったですよ。

ただここでも割りと幸運なことに、その現場はSI屋さんで多く採用されているウォーターフォール型開発ではなく、
プロトタイピング型開発でした。
要するにずっとコード書いていられたんです。
ドキュメントなんかほとんど書かずに、
コード書いて、納品して、修正して、納品して、新機能提案して、コード書いて、納品して・・・
と言った具合で。

割りと楽しかったですよ。
でも、その後すぐに自社の先輩が入ってきたりしましたが、 同じチームの協力会社さんや、派遣先の人達と一緒にいることの方がはるかに多かったので、当然帰属意識は薄れ 徐々に自分がどこの社員かわからなくなるんです。

あまり自社の社員という感覚が無いからか、とにかくお客さんと喋りまくりました。
だって自社の人は助けてくれないんですもの、新しい仕様1つ決めるにしても徹底的にお客さんと話す必要があったんです。

ここで僕は派遣先や協力会社の人達からある評価をもらいます。
「あいつ新人のくせに喋れる」と。


これが地獄の始まりです。

それに目をつけた自社営業は、次の現場は1年目や2年目のガキんちょが全然いない現場で、
上流工程の設計ばかりの仕事を僕に回しました。
でもコードも書いたりテストもするんですよ。それはガキんちょの仕事なので。

そんななか、そしていわゆるデスマーチに突入します。
個々の能力は消して低くない現場でした。しかし費用削減のため、とにかく人数が足りなかったんです。
深夜でも休日でも関係なく、仕事をしました。
すると人間わかりやすく体に変化が訪れます。
僕の場合はまず眠れなくなりました。
1日1時間前後の睡眠時間でも特に困らず、仕事ができました。
僕はアホなので、その時は「夜中まで仕事して帰って、始発で会社来て仕事できるしめっちゃいいじゃん」くらいの感覚でした。
たぶんこの頃から徐々に心が壊れ始めていたんでしょう。
この頃は、正直最高に楽しかったんです。なんか生きてるなーって感じがしたんです。
社畜ですね。ただのお仕事マシーンです。

そんな感じでデスマーチを乗り切り、次の現場へ。
さすがに労働時間的にやばかったのか、次の現場はむちゃくちゃ暇でした。
1日1時間くらいお客さんと話して、残りの時間で適当なドキュメントにまとめて、あとはネットサーフィンかTwitterしてました。
あまりにも仕事にギャップがあると、人間どうなるかというと、燃え尽き症候群になります。
もーーなんにもやる気なんか起きません。
仕事がとにかくつまんないんですもの。

そこで僕は特に深い意味はなく、Twitterである言葉を連呼する用になります。

とか

とか。これはちょっと意味分かんないですけど。

確かに最初はうちの会社に3年いようと思ったんです。
ですが、冷静に考えてください。
3年の根拠は何ですか?ある程度経験が積めるから?仕事に慣れるから?職場の人と仲良くなれるから?
そんなものは会社や環境によって違うんです。
よく言う3年は頑張ってみろ論に根拠なんて無いんです。
辞める辞めないを決めるのは、自分のさじ加減1つなんです。
なので転職を決意しました。

今までは、
「みんなは僕のこと喋れるし、技術力あるっていうけど、全然そんなこと無いし、僕みたいなエンジニアは日本中にどこにでもいる」
って思ってたんです。
自己評価を最低にしていたんです。
ただ、冷静に、客観的に見てみて、
「僕けっこう頑張ってたんじゃね?実はちょっとだけイケてるんじゃね?他の会社行ってもなんとかなるんじゃね?」
と思ってみることにしたんです。

するとどうでしょう、これらのツイートをきっかけに、知り合いから「うちこない?」メールや食事の誘いがどんどこ来ました。
ここで僕は思うでのす。



「転職って、ちょろい」


そんな中、DMなので内容は伏せますが、この人(@srockstyle)から「うちこない?」というお呼びがかかります。

それでまぁなんだかんだあって、
結果としてすろっくさん(@srockstyle)がCTOを務めるSUPER CROWDSに転職します。
SUPER CROWDS に決めた理由は、やろうとしてることと、社員皆さんの考え方が素敵でかっこ良かったから。
もうカッコ悪いことはしたくないですもんね。

転職を決めた後、ここで最後と決めた現場でクソ野郎と仕事をして、また上流工程をやらされ、きつい目にあいますが、
それはたぶん辞めるの決めてたから、口に出して不満が言えるようになっただけっちゃだけって気もします。

SUPER CROWDSではやったこと無いこともやりますし、新しい環境に戸惑うこともあるかと思いますが、
少なくても今までみたいなクソみたいなことはしなくてよくなるはずです。(私信:ですよね?)

なので、この転職エントリ僕が何が言いたいかって言うと
「自己評価が低すぎると地獄を見るよ?自分の評価少しだけあげてみない?」
「みんなも辞めたくなったら辞めちまえ。ある程度のコミュ力と技術力があれば転職って意外とちょろいよ。」

ってことです。

長くなっちゃいましたね。
次からは技術的なお話メインで書いていけたらいいなと思ってます。