こんにちは。ビルディットでWebエンジニアをやっている @jalemy です。
先日メンバーと話していて、入社してから4年もの月日が経過していたことに気付きました。
これを機にどんな仕事をしてきたのか文章化してみてとリクエストをもらったので書いてみようと思います。
内容を読んで弊社のことが気になる方がいたらぜひお声がけください。 ちなみに「いま募集している職種」はこちらです。
自己紹介
以前はゲーム開発会社などで働いており、ビルディットには2019年に入社しました。 入社してからは主に受託開発の案件を担当しています。
ビルディットがある東京の八王子に私も住んでいまして、ビルディット主催のLTイベント(ゆるはち.it)をconnpassでみかけて参加したのが知ったきっかけです。
入社まで
知った当初は私自身にWeb系の知識が全然ありませんでした。
ビルディットはWeb系技術についていろいろ学べそうでしたし、LTイベントの内容や会社Webページを見て、モダンな技術を取り扱っている会社だと感じて好印象だったのを覚えています。
また、それが都心でなく八王子にある会社というのも意外でした。
しばらく勉強する期間が欲しくて、前職を退職後すぐに転職をしなかったのですが、SNSで転職先探してます的なつぶやきをしたら代表の富田さんからDMをいただいたのが直接的な入社のきっかけです。
それでもすぐに転職したわけではないです。Web系の知識が全然なかったので、ひとしきりWeb系の勉強をしてからでないと業務の中で困ることだらけになると思い「課題ください!」といってPHP言語を利用したフレームワークLaravelの課題をもらって1ヶ月程度取り組んだりしました。(もちろん転職活動は並行して……)
その間、アウトプットに対してフィードバックやアドバイスをもらったり、メンバー全員(当時4〜5人くらい?)と面談をしたりした後に入社となりました。
入社後4年間でさわった技術
受託開発ではいろいろな技術を扱っています。これまで担当した案件を一覧にするとこんな感じでしょうか。
使用言語やフレームワーク、主要なSaasなども一緒に記載します。細かなライブラリなどは書いていませんが、気になる方がいたら気軽に聞いてください。
* タレントマネジメントシステム開発 : PHP, JavaScript / Laravel, Vue.js
* 学習支援システム向けのAIエンジン開発 : Python / Flask
* 観光都市のブランディングサイト制作 : PHP, JavaScript / Wordpress, Vue.js
* 救助要請システムの管理機能開発 : JavaScript / Vue.js, Firebase
* 児童向けオンラインプログラミングシステム開発 : Java, TypeScript
* 人材育成支援アプリ開発 : Flutter, TypeScript / Firebase
* 研究用途データ処理ツールの開発 : TypeScript
受託開発の仕事環境
社内には、主に自社サービスのStockrやStockr Teaming Editionを担当している人と、私のような受託開発メインの人がいます。
自社サービスの開発、受託開発、両方ともいわゆる「完全自社内の開発」で、クライアント先に出向いて仕事をすることは基本的にはないです。
受託開発については特別「チーム」のようなものはなく、案件ごとに向いている人がアサインされています。外部のソフトウェアエンジニア・デザイナーの方と協業する体制になることもよくあります。
直近1年程度で関わった案件では、私が1人で開発を行うような案件もありました。
受託開発と自社開発の違い
違いとして、受託開発は納品したら終わり、自社開発は作り切ってからからが勝負、その後の運用が上手くいくか収益化できるかなんてことがよく言われている気がします。
しかし、ビルディットの場合は「お客様以上に当事者意識をもって事業の成功を見据えて誠実に取り組む」ことを行動指針としています。 とりあえず納品できればいいやという感覚はないです。もちろんビジネスである以上、コスト面や時間的制約はありますが制約の中で精一杯やらせていただいてます。
自社開発は、裁量が大きかったり自由度が高い一方で、責任は全て自分たちにあるので、そこが難しいところかなと思います。 スケジュールの調整なども基本的には自分たちの自由にできるので、心理的には余裕を感じやすいかもしれません。(もちろん経営層からの厳しい視線があったら大変ですけど!)
受託開発については、仕様の決定やスケジュールについての最終的な決定はお客様にご判断していただく必要がありますが、その判断材料となるものは開発側としても多様な視点から出させていただいてます。
それらの決定事項について、双方で合意をとった後は決定事項を満たせるように尽力する必要があります。納品日なども意識しなければならないので、気にすることは少し多いかもしれませんね。
受託開発で意識していること
いつも心がけていることとしては下記の3つです。
「当事者意識」
「プラスワンのアウトプット」
「説明と合意を得る機会づくり」
1つずつ説明してみます。
「当事者意識」
仕様通りにただつくるのではなく、自分が本当に良いものだと納得できるものを誠意をもってつくるようにしています。
自分が当事者になりきるための、お客様との認識合わせやすり合わせはセットアップとして重要です。
「プラスワンのアウトプット」
当事者意識につながるものですが、期待されていることの1つ上の仕事を常に返せるように意識しています。
「説明と合意を得る機会づくり」
先方が技術に詳しい方とそうでない方など、いろいろな状況がありますが、どの場合でも、自分が考えていること・つくり方・懸念点・今何をやっているかなどを理解してもらえるように説明する機会をつくっています。
また毎回のMTG等で分かりやすいドキュメントを作成して、ドキュメント・口頭での説明・コードを合わせて伝えるようにしたり、GitHub issueに進捗を細かく書いておくなども意識しています。
最近の嬉しかったこと
仕事で最近やりがいを感じたことや嬉しかったことはいくつか思い浮かびますが、共通点として「改善の提案をして取り入れてもらった」というような場面です。
具体例でいうと、依頼範囲が毎回きっちり決まっている(発注後の予算変更が難しい)クライアントさんでしたが、仕様を見て使いにくそうだと感じたことや改善案などを当初の仕様範囲外で提案をしてみたところ、提案したことに感謝してもらえて前向きに検討を進めていただいたこととか。
クライアントさんが課題に思っていないことについて改善提案をすることが他の案件でもあるのですが、「そんな細かいところまで見て考慮してくれてるんですね」という言葉をもらえたりするのが自分にとってはやりがいを感じる瞬間です。
「孤独に感じることはないか」という質問への回答
受託開発と自社開発では、自社開発の方が「楽しそう」とか「やりがいがありそう」と思われる人が多いように思います。 そういう意味で社内の採用メンバーからも「(社内では)1人開発の環境だと孤独感とかどうですか」と聞かれることがあるので書いておきたいと思います。
結論から言うと、受託開発でも孤独感はそこまでないかな?と思ってます。
基本的には仕事環境は自社オフィスなので、同じプロジェクトで仕事をしていなくても会話はしますし、プロジェクト状況についても共有する機会があります。同じソフトウェアエンジニアであれば、技術という共通言語で話せます😎
リモートワークに移行したあとは、メンバー間の雑談の機会を意識的に作るようにしています。ビルディットではメンバー全員分timesチャンネルを作っているのですが、そのtimesチャンネルで自分の仕事のことを呟いていると、その内容について話す機会が作れたりします。
その会話の中で思考整理して解決できることもしばしばあります。
また、社内横断的な勉強会や、プロジェクトの共有会など定期的に開催するようにしていて、それがコミュニケーション施策の1つになっているかもしれません。
自社開発かつチーム開発という体制でも一人仕事になるケースがソフトウェアエンジニアはよくあるケースだと思いますし、仕事の仕方しだいかなーと思ったりします。
いま目指していること
以前から目指しているのは、フロント・バックエンド・インフラ、それぞれの領域で一人前のエンジニアになるということで、一言でいえばフルスタックエンジニアになりたいと考えていました。
ビルディットに入社して、「3つのバリュー」に表れている”プロとして卓越する”という価値観に自分も馴染んでいく中で、良いコードを書けるだけでなく、それに加えて「コミュニケーション」「ビジネス」「クライアントの課題に対する立ち回り」なども極めてあらゆる意味でマルチなエンジニアになりたいと思っています。
あと、個人的には「日本におけるゲームの価値を高めたい」という人生の最終目標的なものも持っています。(個人的にゲームが大好きなだけ)
受託開発という言葉から「言われた仕事をやるだけ」というイメージを持つ人もいるかもしれませんが、ビルディットでは個々人の興味や志向性に応じるように工夫してアサインがされていますし、仕事の進め方も個々人の裁量も大きいです。 実例でいうと、ゲームを利用した教育コンテンツの開発案件を担当したりもしました。
というわけで絶賛大募集中です
入社してからの4年間や、受託開発について思うままに書いてみましたが、少しでも興味をもってくれた方がいたらぜひカジュアルに話しましょう! どんな質問でも答えます!