今日は、はてなでスマートフォンアプリを開発する5人に集まっていただきました。まずは自己紹介をお願いします。
好奇心を持って新しいことに取り組む
スマートフォンアプリエンジニア座談会
- id:ikesyo
- id:takuji31
- id:funnelbit
- id:Sixeight
- id:cockscomb
好奇心を持って新しいことに取り組む
スマートフォンアプリエンジニア座談会
スマートフォンアプリエンジニアは、はてなブックマークやはてなブログをはじめとする自社サービスに加え、他社と共同で進めている受託・協業サービスの開発でも日々活躍しています。彼らは普段、どのような環境で、どのようなことを考えながら開発に挑んでいるのでしょうか。id:cockscomb、id:Sixeight、id:funnelbit、id:takuji31、id:ikesyoの5人に聞きました。
cockscombid:cockscombです。2012年にはてなサマーインターンへ参加した後、大学院を中退してそのまま入社しました。これまでに携わったサービスは、はてなブログのアプリとサーバーサイド、Web小説サイト「カクヨム」(株式会社KADOKAWAと共同開発)、はてなブックマーク、ゲーム「スプラトゥーン2」と連動した「イカリング2」(任天堂株式会社と共同開発)で、今は再びカクヨムのアプリを担当しています。最近は「スーパーマリオ オデッセイ」にハマっています。
Sixeight2015年4月に中途入社したid:Sixeightです。最初にMackerelを担当し、その後カクヨム、LGTM Camera(はてラボで公開しているサービス)、はてなブックマーク、再びカクヨム、イカリング2の順に携わりました。今はまたはてなブックマークの開発をしています。入社してからKindleでマンガをよく読むようになって、2016年は1,000冊くらい読みました。
funnelbitJavaScriptが好きなid:funnelbitです。僕もはてなサマーインターンを経験した後、2013年4月に新卒入社しました。はてなスペース、はてなキーワード、はてなブログを経て、アプリ開発としてB!KUMA ガールズ、KADOKAWAさんのカクヨム、はてなブックマークを担当しました。ずっとAndroid版を開発していたのですが、2017年からはiOSもやっています。アプリやるきっかけはブログのAndroidアプリをやるかってなったときにすこんぶさんに誘われました。趣味は料理です。今週は中華週間で、青椒肉絲とよだれ鶏と麻婆豆腐を作りました。
takuji312016年1月に中途入社したid:takuji31です。入社後にカクヨムのアプリをリリースまで担当した後、LGTM Camera、はてなブックマークのアプリ開発に携わりました。その後、前職でやっていたWeb開発の経験を生かしてカクヨムのWebチームに異動したのですが、今はまたはてなブックマークのアプリ開発を担当しています。最近はオンラインゲームにハマっていて、月に○万円ほど課金してしまい……。
一同(金額を聞いて)えー!
takuji31いつもではないです!本当に気持ちが高まっているときだけで……。あとはカメラも趣味なので、ゲームをしながらペットのウサギを撮影しています。
ikesyoid:ikesyoです。今年、Swiftのコミッターになりました。2016年1月に中途入社したので、takuji31さんと同期ですね。入社以来、ずっとはてなブックマークのアプリを開発しています。最近はフィギュアスケートが熱いです。というのも、2016年に放送されていたフィギュアスケートが題材のアニメ「ユーリ!!! on ICE」に夫婦でハマってしまいまして。奥さんは今度、フィギュアスケートを見に韓国の平昌オリンピックに行くそうです。僕は留守番です(笑)。
id:cockscomb
はてなを選んだ決め手
新卒入社のcockscombさんとfunnelbitさんは、どちらもはてなサマーインターンを経験した後に入社していますね。
funnelbit僕の場合は少し特殊で、内定が出てからはてなサマーインターンに参加しました。新卒採用への応募の決め手は、はてなにあるいろいろなサービスを開発してみたかったというのが大きいです。もともとWeb開発をやろうと思って入社しましたが、スマホアプリを開発することになっても抵抗はありませんでした。新しいことをやるのが好きなんですよね。
転職組の皆さんは、前職でもスマホアプリを開発していたんですか?
Sixeight前職ではソーシャルゲームを開発していたので、ゲームエンジンに少し触れつつ、Webをメインに担当していました。はてなに入社してからもWebをやる予定だったんですが、スマホアプリに興味があったので、自分から希望してスマホアプリの開発をすることになりました。自分の「挑戦したい」という気持ちを尊重してもらえたのはうれしかったです。
takuji31僕は前職でもAndroidアプリとiOSアプリ、両方を開発していました。転職してからはもっと本腰を入れてやっていきたいと思っていたので、入社してすぐに新規アプリの開発に携われたのはいい経験になりましたね。
ikesyo入社前は4年半ほどフリーランスでiOSアプリを開発していました。勉強会でcockscombさんをはじめとするはてなのエンジニアと話す機会があって、そこで誘われたのがきっかけで入社したという経緯があります。なので、はてなでもアプリを開発するつもりでした。
実際に入社してみて、どう感じましたか?
Sixeight良い意味で、すごく会社っぽいと思いました。もっとフリーダムなイメージだったんですけど、社員の評価制度やバックオフィスがしっかりしていて、安心感があります。開発に集中できるのが良いですね。
ikesyo僕はSixeightさんとは逆で、新卒で入社した会社やフリーランス時代に関わっていた企業と比べると、良い意味のゆるさがあるなという印象でした。あとは、それぞれの職種に対してお互いにリスペクトし合っているのが好きです。まったく違う分野を扱っていても、きちんと理解しようとしてくれます。
takuji31リスペクトの気持ちがあるのは本当にいいですよね。僕ははてなが4社目なんですが、断然働きやすいです。よくありがちな上下関係のしがらみもないですし、健全な会話で議論しながら開発できます。
id:Sixeight
開発の進め方
はてなでのスマホアプリ開発はどのように進めているのでしょうか。5人とも開発に携わった経験のある、はてなブックマークを例に説明をお願いします。
ikesyoはてなブックマークのアプリチームは、エンジニアとディレクターに加え、デザイナーやプランナーを含むチーム全員が参加する週会を毎週実施しています。話す内容は主に、その週にやるタスクと、前週のタスクの振り返りですね。振り返りはKPTをもとに話し合います。
タスクはGitHub Enterprise(GHE)で管理しています。ディレクターが主体となって「今週はこれをやりましょう」と決めた後、タスクをissueに登録して、Project機能でカンバン化しておきます。特定の期間を決めて開発しているわけではないのですが、スクラム開発に近いかもしれません。
takuji31少しずつやり方を改善していくうちに、気が付いたらスクラム開発っぽくなっていましたね。
誰がどのタスクを担当するか、というのもディレクターが決めるんですか?
ikesyoやりたいものがあれば自分で手を挙げるし、以前やっていたタスクと関連するから継続的にこの人にやってもらった方が良いと指名される場合もあります。基本的にチームの皆で話し合って決めていますね。
はてなブックマークチームのスマホアプリエンジニアは、iOSとAndroid、両方の開発ができます。そのため「これはAndroidのタスクだからこの人しかできない」ということはないですね。ただ、得意なプラットフォームはそれぞれですし、知見のある人にお願いすることもあります。
最初から両方の開発ができなくても、会社がスキル開発を支援してくれるので、次第に身につけることができます。こうした環境を整えてくれているのはとてもありがたかったです。
受託・協業サービスの場合はどうでしょうか。cockscombさんは今、カクヨムを担当していますね。
cockscombカクヨムの場合、普段はスクラム開発で、スプリント期間は2週間です。基本はKADOKAWAさんと共有しているロードマップを軸に開発を進めて、それに加えて小規模な改善も試していくという感じです。
KADOKAWAさんとはどのようにコミュニケーションを取っていますか?
cockscombはてなグループやチャットツールでやりとりしています。ディレクターはGoogle ハングアウトで定期的にミーティングをしていますね。コミュニケーションは一方的なものではなく、はてな側のプランナーが「ここはこうした方がもっと良くなりそうです」と提案することもよくあります。
id:funnelbit
クライアントからの提案をそのままやるのではなく、お互いに議論を重ねて進めるんですね。
cockscombもちろん、KADOKAWAさんにしか分からないこともたくさんあるのですが、サービス開発における知識や経験は、はてなを頼りにしていただいているという印象です。普段からチャットやはてなグループ、メールでカジュアルに相談できる環境があるので、お互いに提案しやすいです。
ikesyoはてなにおける受託・協業サービスの開発はかなり柔軟な印象があります。僕のフリーランス時代は「言われたことをやる」という感じだったので、アイデアを言ってもスルーされることはありました。意見を交わしながら良いサービスを作っていけるのは良いですね。
cockscomb提案できる、というのがはてなの受託・協業サービスにおける強みじゃないかと思うんですよね。クライアントもきっと一緒にサービスを高めていけると考えてはてなを選んでくださっていると思うので、その期待にきちんと応えていきたいです。
得意な部分を組み合わせながらサービスを作っていく形ですね。受託・協業サービスに限らず、仕事を進めていく際に意識していることはありますか?
takuji31常に問題意識を持って、現状に満足しないように「本当にこれで間違っていないか」と考えながら仕事をするようにしています。
Sixeight自分自身もユーザーであるという視点で開発しています。どういうものだったら自分が使いたくなるか、というのはいつも考えていますね。
cockscomb常に技術力を磨いて、いつでもできるように準備しておくというのがエンジニアとして一番意識していることです。僕たちができなければ誰もできないことを任せられていると思うし、「こういうのを実装したい」というリクエストに「できません」とはなるべく言いたくないです。
ikesyoビジネス面に大きく関わってくる部分を実装する場合は、「ここが変わることでユーザーやクライアントにどんな影響があるか」などを考えるようにしています。先を見据える形で動いた方が、営業やプランナーとも連携が取りやすいです。
funnelbitできる限り、新しいものに手を出すということを心掛けています。同じことをやっていると飽きてしまうというのもあるのですが、現状に満足したくなくて。なるべく停滞しないようにしています。
自社サービスと受託・協業サービスでは、開発を進めるに当たって意識の違いはありますか?
cockscomb自社サービスの良いところは、好きなものを好きなタイミングで開発できるところだと思います。一方で、マネタイズについて考えたり目を配ったりする必要が当然出てきます。受託・協業サービスの場合、マネタイズを含めてはてなが支援しているサービスもありますが、クライアントがマネタイズを担当されているケースが多く、僕たちには開発に集中することが求められます。そう考えると、作っているときの視点が一番違いますね。
Sixeightはてなのエンジニアは、普段からビジネスモデルを考えながら自社サービスの開発をしている印象があります。だから、受託・協業サービスの開発でもクライアントがなぜこうしたいかという意図が理解できるんです。こういうサイクルがうまく回っている組織はなかなかないと思います。
開発を進めていく中で分からないことがあった場合、どのように解決していますか?
cockscomb僕の場合は、その人のデスクまでとことこ歩いていって、直接聞きますね。話した方がだいたい早く解決できるので。
takuji31僕も設計方針で悩んだらすぐに聞くようにしています。技術的に分からないことがあったら自分で検索して答えを見つけることもありますが、わりと会話の中で解決させることが多いですね。
funnelbitどの分野においても詳しい人が社内に1人はいる、というのは強みですね。
はてなではチャットツールとしてSlackを導入していますが、会話で解決する方が多いんですね。
takuji31はてなブックマークチームの場合、業務時間の大半は集中して開発していますけど、しゃべりながら仕事をするという時間もチームの中で設けているんです。作業に集中しつつも、サービスのことを話したり、ちょっと今こういうので困ってるんですけど、というのを相談したり……。
話す時間を設けてみて、実際に効果は感じますか?
takuji31会話の中で「こういう機能を導入すると良いんじゃないか」みたいなアイデアが出てきて、実際に実装することはありますね。Slackでもそういった提案や議論はしますが、顔を合わせて雑談しているときの方が気軽に提案できるという雰囲気はあります。
他にもこうした共有の場はあるのでしょうか。
cockscombスマホアプリエンジニア全員が集まる「スマート会」というミーティングを、隔週で1時間くらい設けています。そこでは、技術的な最近の動向を共有したり、CIサーバーや検証用端末といった開発資源のメンテナンスをやったり、チーム内でやってみた面白い設計を見せ合ったりしています。
サービスのチームメンバーとは別に、専門分野について情報共有できる場があるのは良いですね。
takuji31はてなでは各サービスのチームにスマホアプリエンジニアが配属されているので、定期的に集まって技術の共有やコミュニケーションができるのはうれしいです。そのおかげで「あの人、最近何やってるんだろう?」みたいなことにはならないですね。
id:takuji31
開発をしていて印象的なこと
開発をやっていて、印象に残ったことはありますか?
Sixeight同僚に優秀な人が多いので、いつも驚きがありますね。入社時はそれがすごくプレッシャーになって、悩んだこともあったんです。でもそれも「自分はできる」という考えが強すぎたのかなと。なので気持ちをリセットして、ひとつずつやっていこうと切り替えました。
takuji31自分も同じ気持ちでしたね……。でも、上司との1on1の場で話を聞いてもらったり、どういうことで悩んでいるかを共有したりしていくうちに、気が楽になっていきました。相談できる時間も用意されていますし、上司に声を掛けやすいというのはありがたいです。
cockscomb開発をしていく中では、ユーザーさんの反応もすごく見ますよね。大きいリリースをした日は反応をずっと追っています。最近もカクヨムの新機能をリリースしたのですが、Twitterやブログに書かれている感想はいつも見ています。
一番印象に残っているのは、思った通りに実装が進んだときですね。最初に考えていた設計がぴったりはまって、後々までうまく動いているときは本当にうれしいです。
Sixeight最近だと、イカリング2ですね。最初の設計から一つもミスがなかった。
cockscomb最初から最後までうまくいって、ずっとニコニコしながら仕事していましたね。
エンジニアならではのうれしい瞬間ですね。他に、はてなで働いていてやりがいがあると感じたことはありますか?
funnelbitはてなブックマークは「使っています」と言ってくれる方が結構いるので、うれしいですね。世の中に影響を与えられているんだなって思います。著名な方まで使ってくださっているのを知ったときはグッときました。
takuji31自分たちが開発したサービスを使ってもらっているというのはかなり実感しますよね。
cockscomb受託・協業サービスもかなり使われていますからね。大きな企業と一緒に開発に取り組むというのは、仕事人としてかなり影響を受けます。というのも、皆さん本当にプロフェッショナルで、クリエイティビティにあふれているんですよ。エンジニアとして、こうしたプロの方たちと共同で開発できる機会は刺激になります。
takuji31僕の今までの異動は「こういうことがやってみたい」という希望を通してもらっていることが多いんです。やりたいことがやれるというのは、自分自身の成長にもつながっていると思います。
実は今、キャリアプランを考え直しているんです。ずっとエンジニアでやっていきたいと思っていたんですけど、はてなに入っていろいろなことをやっていくうちに、視野が広がったというか。ディレクターとして活躍しているエンジニアもいますしね。
選択肢が広がったというのは良いことですね。社内に目標となる人がいるのはモチベーションの向上にもつながると思います。
cockscomb僕はずっとid:motemenさんに憧れています。
motemen急にきましたね!(※はてなCTOのid:motemen、実はずっと座談会を見学していました)
Sixeightいや、でも本当に、社内に憧れの存在がいるっていうのはすごくやる気になるんですよ。そういう人と一緒に働けるというだけでモチベーションは上がりますね。
id:ikesyo
業務時間外でもやっぱり「技術が好き」
自分の能力を伸ばすために取り組んでいることはありますか?
ikesyoオープンソース活動に取り組んでいるのですが、技術を伸ばすために……というより、それをやるのが楽しいというのが大きな理由ですね。手が空くたびにスマホでGitHubを見ています。いろいろな会社のスマホアプリエンジニアがいるSlackのチャンネルがあるんですが、そういうコミュニティーの中で会話したり、動向を見たりするのも好きですね。こうした活動を続けていくうちに、2017年1月にはSwiftのコミッターにもなりました。
cockscomb僕は勉強会をよく開催しています。やっぱりアウトプットしたいんですよね。でもアウトプットするものがないと困るので、アウトプットを見据えたインプットをしています。
ikesyo僕も同じですね。とりあえず発表できる場が用意されているのを見つけて、申し込んでから何を話すか考えます。いざ資料を作り始めると「ここ分からないから勉強しなきゃ」って思うことがありますよね。
一同分かる……。
ikesyo自分で十分に分かっていることは、面白みがないから逆にあまり発表しないかなって。間違っていたとしても、逆に詳しい人からつっこんでもらえて勉強になるので。
cockscomb僕が主催している関西モバイルアプリ研究会(関モバ)では、参加者同士のやりとりを重視しているので、活発な議論が行われます。あとは、業務でも勉強できる要素はたくさんありますし、これは良さそうだと思ったものを実装して学ぶというのはよくあると思うんですよね。今までAndroidを開発していたけど新しくiOSもやってみる、ということもありますし、学べるチャンスは多いと思います。
Sixeight確かに、業務でどういうタスクをやるかというのもわりとエンジニアに任せられているから、仕事をしていく中でどんどん学んでいけると思います。やったことがないからやってみよう、という選択肢があるのがすごく良いです。
皆さんの技術に対する熱い思いが伝わってきます。
ikesyo好きだからこそですね。平日でも家に帰ってきて、これどうやったらうまくできるかな……って、寝る前やお風呂に入っているときも考えてますからね。
takuji31休日でも技術のことを考えることもあるし、ウサギのことを考えることもあるし……(笑)。でもそれだけじゃなく、何も考えず外に遊びに行く日もありますよ。皆そのあたりは良い感じにやっています。
エンジニアとして、はてなで今後やっていきたいこと
はてなで働くスマホアプリエンジニアとして、今後の展望はありますか?
ikesyoはてなのスマホアプリエンジニアって、なんでもできるというのが面白いですよね。自社サービスでも、柔軟にいろいろなところへ携われるというのが魅力的です。その中で自分の力を十分に発揮していきたいです。
takuji31周りの皆は何でもできる人ばかりですが、一方で専門性もきちんとあるのが良いなって思うんです。ikesyoさんはSwiftのコミッターですもんね。自分もそういう専門性を高めていけたらなと。
funnelbit僕も柔軟にいろいろなことができるのが良いところだと思いますね。ずっとAndroidの開発をやっていた僕がiOSに携わるようになったのも、「やりたい」って相談したら「やってみなよ」って言ってもらえたからだったので(笑)。これからも新しいことにどんどん挑戦していきたいですね。
Sixeightきちんとチャンスが用意されているのが良いですよね。やりたいからやってみたい、って言ったらきちんと聞き入れてくれる。僕も積極的に挑戦していきたいです。
cockscomb技術的にチャレンジしたいと思っていることもたくさんあります。開発言語はiOSだとSwiftを大きく取り入れてきましたが、AndroidではKotlinへの移行を進めています。またサーバーとアプリ間のインターフェースとして、Web APIのメンテナンス性のことを考え、GraphQLの採用を検討したいと思っています。そして何より、サービスの成長を支えるべく、開発速度を向上させていきたいです。最近は、React Nativeのような技術についても検討したいと思っています。
自社サービスについては、もっとスマホアプリの存在感を出していきたいですね。ここはリソース不足が原因でもあるので、しっかりリソースを確保していきたいです。
受託・協業サービスについても同様です。クライアントからは、Webもアプリも作れる会社だということで声を掛けていただくことが最近は増えています。こちらもリソースがあればもっと新しいことができると思っているので、改善していきたいところです。
最後に、これからはてなでどういう人と一緒に働きたいですか?
ikesyo新しいことに対して、恐怖心より好奇心を持って取り組める人ですね。周りもそういう人が多いので。
一同良い言葉!
cockscomb日々、好奇心にやられっぱなしの人と一緒に働きたいですね。あとは、技術が好きな人。僕たち、やっぱりめちゃくちゃ技術が好きなんです。一緒に良い仕事をしましょう!
ありがとうございました!