未来を見据えた開発をするために~「全体設計」の力は必ず大切になる~
こんにちは。クラウドサーカス開発部門です。
今回はクラウドサーカスへ入社し、福岡拠点でプログラマーとして活躍している苑田さんに1ランク上のエンジニアになるために必要な「全体設計」の視点についてお話をお聞きしました。
全体設計を考えてプロダクトと向き合うになったキッカケ
前職での話になるのですが、とあるプロジェクトがきっかけです。
新卒で入って6ヶ月目ぐらいからスタートした、完全に自分1人で進めていくプロジェクトでした。その時は動けばいい、とにかく結果が出ればいいと思ってやっていました。
最初はそれで書いてて、無事リリースまで出来ました。しかし、ビジネスってそう甘くなくて、リリースまでいけると次の目玉機能が欲しいというリクエストが来るんですよね。そこで完全に詰みました(笑)要するに、改修などの要望に応えられない設計になっていました。
その時にどうやったら解決できるのか、改修しやすいとはどういうことなのかを必死に考えました。
できれば自分の手も煩わせたくないので、自分がいかに楽にできるかということも併せて考えましたね。
その結果、コードレベルから改善をすればよいというわけでもなく、もともとの設計がないとコードレベルでの改善もうまくいかないことに気づき、そこで全体設計(基本設計・詳細設計)について考えることにつながりました。
それがきっかけで設計から考え始めるようになって、2つ目の社内用システムのプロジェクトでコードの書き直しを経験し、3つ目のプロジェクトでついに設計から見直し始めました。
これらの経験があるからこそ、今担っているIZANAIの開発は全体設計を常に頭に入れながら開発をしています。
IZANAIの開発で大切にしていること
これも様々ありますが、ビジネスサイドから多くのアイデアが出てくる時です。言葉の大きさから齟齬が生まれる危険性があるので、適切な解釈をするように心がけています。
たとえば、プロダクトとプロダクトを連携させて何をしたいか?とかです。やりたいことってたくさんあることはわかっているつもりなので、そのなかから何をしたい?というのを明確にすることが大事になります。
短期的に見たら1つの機能を実装することってすぐできると思うんですけど、長期的に見ると、「別の機能もいれたいよね」という話に絶対になります。そうなるとちゃんと設計しておかないと持続性のある開発っていうのは難しいかなって思います。
いわゆる、保守しやすい、開発しやすいように設計を行うということです。保守性の高いコードという意味であり、つまりは、誰が見てもわかるというコードということです。
当たり前を大事に
結論、プロダクト開発の中で保守性、拡張性が高いことが第一目標です。
本番とかローカルとか、自分のローカル環境とAWSなどのクラウド環境にデプロイした時に動きが変わるなんてもっての外です。当たり前かもしれないけど、難しいことです。
これは今回の記事のテーマである設計能力がないと難しいです。ただ、正直、設計能力のあるエンジニアは多くないと感じています(※井の中の蛙かもしれませんが...)。これは世の中の流れなのかもしれませんが、最近のエンジニアを生業としている方の多くが、「作る」能力は高いものの、全体設計(基本設計+詳細設計)まで見れる人が少なく、ただ技術を使う人になっている気がします。
別にそれだけでも十分だとは思いますが、自分でサービスを作るとなったときに大変になるかと思います。だからこそ、会社というプラットフォームで全体設計(基本設計+詳細設計)から携わることが今後の自分のキャリアを築くうえでも非常に重要になってくると思います。
最後に
クラウドサーカスでは開発拠点である福岡でプログラマーを大募集しています。自社プロダクトを伸ばしていきたい方を募集しています。そのほかにもAWSを活用したインフラポジションやフロントエンドエンジニアも募集しております。
カジュアル面談も実施しており、個別でお話ししてみたいな!という方はぜひこちらからカジュアル面談のお申し込みをお願いします!