[注意]
この記事は、2017年12月に執筆された記事です。株式会社アプレッソは2019年4月1日をもって株式会社セゾン情報システムズに合併されており、現在は募集は行っておりません。ご注意ください。
アプレッソの元開発部長の佐々木です。
今年の 10 月から親会社のセゾン情報システムズに出向し、エンジニアとしてグローバルビジネスに携わっています。本記事は、3 年間アプレッソのエンジニアリングマネージャとしての立場で実践した経験をもとに、アプレッソのプロダクト開発で大切にしていることをまとめてみました。
本記事は、Appresso Advent Calendar の 5 日目の記事です。
"美しいコード" へのこだわり
アプレッソがソフトウェア開発で特にこだわっているのは、コードの美しさです。美しいコードの特徴は、リーダビリティが高い、再利用しやすい、メンテナンスしやすい、拡張しやすい、テスタビリティが高いといったことが挙げられます。これらの特徴を持ったコードは高品質なプロダクトに結びつきます。
将来に渡って顧客に高品質なプロダクトを提供し続けていくためにも、エンジニア一人ひとりが "美しいコード" へのこだわりを持つことが求められます。
HRT を重視したコミュニケーション
アプレッソのソフトウェア開発はチームで開発する機会が多くあります。その際、"美しいコード" を共有・学習するためのプラクティスとしてペアプログラミングやコードレビューに時間をかけて実践しています。これらのプラクティスにおいては、コミュニケーションの取り方が重要になってきます。
例えば、レビューアの指摘の仕方やレビューイの受け方によっては、関係が険悪になってしまうケースが考えられます。ここで必要になるのが "HRT"。相手に対する「謙虚さ (Humility)・尊敬 (Respect)・信頼 (Trust)」の 3 つです。これらを意識して丁寧にコミュニケーションを取ることを大事にしています。
顧客目線
ソフトウェア開発において、リリースした機能、プロダクトが使われないという話を耳にします。これは、開発チームが Why (なぜこの機能が必要なのか) や What (何を提供することで顧客の価値に繋がるのか) を理解せず、How (どのように実現するのか) だけにフォーカスしてしまった結果だと考えます。
すぐれたアルゴリズムを実装したり、きらびやかな UI をデザインしても、使われなければ意味がありません。自身が作ったソフトウェアを通して顧客にどのような価値を提供したいのかを考え続ける姿勢が求められます。
Growth Mindset
Growth Mindset とは、キャロル・S・ドウェック氏の著書「マインドセット「やればできる! 」の研究」で述べられている、失敗を恐れずに課題に取り組み、失敗してもそれを糧に学び、成長していく思考のことです。その思考とは対極にある Fixed Mindset とは、過去の成功体験に縛られたり、変化を恐れて従来通りの考えに固執していまう思考のことで、自身の可能性を狭め、成長を阻害し、組織の硬直化に繋がるリスクがあります。
現状に満足せず、困難だと思う課題にも失敗を恐れず果敢にチャレンジすることを楽しむマインドセットが、アプレッソの競争力の源泉になります。
質問責任と説明責任
質問責任と説明責任は、サイボウズ青野慶久氏の著書「チームのことだけ、考えた。」で述べられていることで、意識決定の場において、質問責任とは「自分が気になったことを質問する責任」、「自分の理想を伝える責任」のことで、結果、自分の理想が通らなかったとしても受け入れる責任のことです。
一方、説明責任とは「自分が意識決定したことを説明する責任」「他のメンバーからの質問に答える責任」のことで、結果、批判があっても受け入れる責任のことです。
各メンバーがこの二つの責任を果たすことで、もし決定したゴールが自身の描いている理想と乖離があったとしてもプロジェクトの成功に貢献できるよう自身の能力をフルに発揮し、"集" の力を高めて成果をより大きなものにしていくことが大事だと考えます。
ムダの排除
今やるべきこととそうでないことを明確にして、やらなくていいことは徹底的に排除します。時間やお金は有限です。限られたリソースで顧客に価値を提供し続けるためには、コスト意識をしっかり持ち、やらなければいけないことにフォーカスしてアウトプットを最大化することが重要です。
カイゼン
よい部分をさらによく、よくない部分は直していくという取り組みは、頭の中では大事なことだと認識していても、目の前の作業に追われて思考停止状態になり、取り組みが困難になる可能性があります。
余力を残して持続可能なペースで作業を計画することで、現状の足りないものとそれを補う新しいものに目を向ける意識が芽生え、継続的なカイゼンの取り組みに繋がります。
プロダクト開発に対する主体性
アプレッソのプロダクト開発は、偉い人が方針をすべて決めて、それに従って開発するということではありません。エンジニア一人ひとりが、プロダクトを自身の持ち物だという自覚を持ち、主体的にプロダクトを成長させていく行動を求めています。
自身が描いたプロダクトの理想を具現化するために、チームや組織の殻を破って周囲をうまく巻き込みながらゴールに導くリーダーシップを発揮することが重要です。