まずは話を聞きたい
採用サイト
技術を知る

「納品のない受託開発」を続ける中で得た6つの気づき

ライティング:門田 啓吾
愛媛にUターンしてソニックガーデンに入社したプログラマ。自分の手で何かを作り出すことが好きで、作ったものでお客様の課題を解決することに喜びを感じます。夢はプログラムの力で世の中を少し幸せにすること。

ソニックガーデンでは、「納品のない受託開発」というビジネスモデルを提供しています。
社内では「納品のない受託開発」と呼ぶと長いので、頭文字をとってn2jk(Nouhin no Nai Jutaku Kaihatsu)と呼んでいます。

「納品のない受託開発(n2jk)」に関して、詳しくはこちら

n2jkでは、月額定額でお客様に寄り添いながら伴走し続けることや、優先順位をつけて本当に必要な部分から開発していくなどの基本的な型はありますが、事業フェーズやサービスの形態などにより必要とされるものは違ってきます。

そのため、同じn2jkを提供していても、ミーティングの進め方や、課題に対する取り組み方も少しづつ違ったものになるため、時々お互いの知見を共有する機会を持つようにしています。
2022年の年末には「俺のn2jk」と題して、1年を通してそれぞれのメンバーが得た気づきを共有する会が開かれました。その際に私が共有した6つの気づきを紹介していきます。


目次

    1)n2jkを進める上でツールに求められる機能

    n2jkを提供する際に、タスク管理とコミュニケーションを行えるSonicという自社開発ツールを利用しています。ただ、最近はお客様の社内にてSlackを利用されていることも多く、Slackに招待いただいてやりとりをしていく機会もありました。

    コミュニケーションを行う上では問題はなかったのですが、n2jkを進めていく上ではどうしてもスムーズにいかず、最終的にSonicに移行しました。うまくいかなかったのは、以下のような点でした。

    ・毎週のミーティングで議論が残っている部分について相談する際、Slackだとスレッドのアーカイブができないため、どの議論が終わっているか確認しづらく、確認に時間がかかったり、見落としが発生することがあった
    ・別途管理しているタスクとの紐付けを手動で行う必要があり、タスクと議論をセットで管理していくのに手間がかかってしまった

    Slack自体はさまざまな外部サービスとの連携もでき、運用の工夫次第では使い勝手を上げていくことができる優秀なツールですが、n2jkを提供する上では専用のツールであるSonicが便利だなと改めて感じています。

    n2jkを提供する上で必要なポイントとしては、タスクを優先順位順に一列に並べられること、タスクと議論をセットにして管理できること、終わった議論をアーカイブできることなのだと認識できたのは大きな収穫でした。

    ただ、Sonicだけではうまくいかないケースにも遭遇しました。n2jkでは通常、小さく開発してフィードバックを受けながら改善していく進め方をするのですが、時には半年や1年など長期にわたって取り組んでいくことが必要な機能を作ることもあります。その場合、タスクを分割して全てをSonicで管理してしまうと、機能全体の中でどのぐらい進んでいるかという確認や、あとどのくらいタスクを進めれば機能として使うことができるのかなどが見えづらくなってしまいます。

    今回はそういったタスクをGoogleスプレッドシートに書き出して管理しました。結果として、日々進めていくタスクはSonic上で確認することができ、大きな機能開発は別途Googleスプレッドシート上で進捗を確認することができたので、非常にスムーズに認識合わせをすることができました。用途によって、ツールを使い分けるという当たり前のことではありますが、どういった理由があってそのツールを使うのかを意識することの重要性を改めて感じました。

    2)正解のある状態で進められるのが安心感がある

    外部サービスと連携している部分をなくして、同じ処理を自社のサービス内で完結できるようにしたいというお話があり、対応を進めた案件がありました。

    その際、外部サービスと連携している部分は維持したまま、利用ユーザーには見せない形で自社サービス内で同様の動きをする処理を裏で追加し、並行して動かすことで、外部サービスとの差がでないことを確認しながら進める形をとりました。

    ある意味、連携している外部サービスの動きが正解なので、正解と見比べながら進められるというのは非常に安心感があるなと感じました。
    特に、複雑な機能を作る場合は、1から作るのではなく、一度外部サービスを導入してから置き換えを進める方法をご提案するのが良いケースもあるのだなと感じた経験でした。

    3)n2jkらしさにこだわりすぎていた

    n2jkは、月額定額にすることで、毎週の定例で状況に合わせて次に進めていくところを決めていけるようにしています。事前に作るものを決めてしまう必要がないので、柔軟に対応していくことができるのがメリットなのですが、お客様によっては予算の確保の関係上、事前に見積もりが必要になるケースもあります。

    当初は「n2jkっぽくないな」と感じる部分もあったのですが、そういった進め方をしたほうがお客様にとっても価値を感じてもらることに気づいてからは、n2jkという型に無理にあてはめようとするのも違うのではないか、と思うようになりました。

    上手くいった経験があると、どうしてもその型にあてはめようとしてしまいがちですが、お客様の状況によっては、必ずしもこれまでの型に当てはめる必要はなく、状況に合わせて柔軟に対応していけるほうが大事だなと思い直しました。

    4)n2jkはお題

    人はお題が出されると、それを解決するためにはどうすればいいか?と考え始めます。
    例えば上司から何かのお題が出された時、自分一人で解決できてしまうお題だとすれば、誰かと協力しようとは考えないかもしれません。けれど、誰かと協力しないと解決できないようなお題が出されたとしたら、解決するために必然的に誰かに協力を求めることになります。
    これは、どんなお題が出されるかによって、人の行動は変わってくるということです。
    n2jkはお客様と協力しながら成果を出していくという視点において、とても適切なお題が設定されているのだなと感じるようになりました。

    ・月額定額という前提があるため、事前に作るものを決め切る必要がなく、その時点で本当に必要なものにフォーカスをあてて考えることができる
    ・週に1回ミーティングをするので、お客様との認識のずれが発生しにくく、発生したとしても早期に方向修正ができる
    ・短い期間で成果を感じてもらう必要があるため、ミーティング中に認識をすりあわすための技術力が自然と向上する(議事録を一緒に見ながら認識合わせをする、その場でデザインのすりあわせをする、複数案を提示して判断してもらいやすくするなど)

    n2jkを続ける中で、お客様と協力しながら成果を出していくために必要な能力が自然と磨かれていっているなと感じています。

    5)適切に踏み込む

    気づかないうちに、ここまでは開発の範囲、ここからはお客さんの範囲と線引きしてしまいがちです。プログラマーとしてお仕事をしているので、もちろん開発する視点で進めていくことは大事ではあるのですが、事業全体として考えた時に、それだけでは見えてこない部分もあります。

    お客さんがやるところだから自分は知らない、ではなく、もしお客さんの進めているところで困っているのだったら掘り下げていって、一緒に考える。そんなことができるパートナーになりたいなと、n2jkをしていくうちに思うようになりました。
    結果として役に立てる部分がみつかるかもしれませんし、課題感が共有されるだけでも一緒に考えられる範囲が広がります。

    n2jkはただ開発する人、ではなくお客様のパートナーになれる仕事だと思っているので、思い切って適切に踏み込んでいくことの重要性を感じました。

    6)お客様と一緒に判断する

    n2jkを進めるにあたって、「問題 vs 私たち」という体制にすることをとても大事にしています。これは、お客様と自分達が向かい合って対峙するのではなく、問題に対して一緒に解決していくような体制にしていくということです。
    事業に取り組む時、どうすれば上手くいくのかの答えをお客様が知っているとは限りません。そのため、お客様が求めるものを作るだけではなく、一緒にその答えを考える人になっていく必要があります。

    n2jkを始める最初の頃は、信頼関係がまだできていないため、どうしても「依頼側」、「請負側」という関係性に陥りがちです。しかし、その状態だと一緒に課題を解決していくことが難しいので、「問題 vs 私たち」の体制にしていけるように意識しながら進めていきます。

    しかし最近、n2jkを長く続けているお客さんとの関係性においても、「問題 vs 私たち」の体制から外れてきてしまうことがあることに気がつきました。
    それは、関係が長く続く中で、ソニックガーデンさんに任せておけば大丈夫だろうと信頼して頂けるようになった結果、任されすぎてしまい、結果としてお客様に細かい部分は伝えずに、自分達だけで判断を進めてしまうようなケースです。

    信頼されているからといって判断を自分達だけで進めてしまうと、むしろソニックガーデン側からは見えている問題が、お客様側から見えにくくなってしまいます。それでは、一緒に課題を解決しているとは言えません。

    信頼されているとしても、不安感・課題感をお客様に共有し、お客様と共に判断をしていくことが、「問題 vs 私たち」の体制を維持する為には大切なのだと感じました。

    入社してから4年ほどになりますが、n2jkを進める上での学びは尽きないなと感じる一年でした。

    前の記事
    ソニックガーデンではなぜコードレビューを重視しているのか?
    次の記事
    メンバー執筆の技術書を紹介します
    一覧へもどる
    まずは話を聞きたい