よいサイトやアプリを作るための開発・運用とは?よくある疑問にエンジニアが回答|東京のWEB制作会社・ホームページ制作会社|株式会社GIG

よいサイトやアプリを作るための開発・運用とは?よくある疑問にエンジニアが回答

2022-07-20 勉強会

こんにちは! GIG BLOG担当の宮﨑です。

GIGでは毎月さまざまなテーマで勉強会を開催しており、現在はコロナウイルス感染拡大防止のためオンラインにて実施しています。

今回の勉強会では「よいサイトやアプリを作るための開発・運用」をテーマに、技術顧問の中島 正成さん、クリエイティブ事業部開発unit1マネージャーの荒井 雄治郎さん、SkillShare事業本部 開発事業部長の石倉 彰悟さんにお話いただきました。

▲今回はオンラインワークスペース『SpatialChat』を用いて勉強会を行いました

 ■登壇者プロフィール 

中島正成(なかしま まさのり)

技術顧問。東京大学在学中に有限会社MDSを起業後、株式会社メタップス創業CTO、IGS株式会社CTOを経て、開発・AI・DXのコンサルタントをしつつ、GIG創業時より外部からGIGをサポート。現在も開発事業部のメンバー育成・組織改善に携わる。

荒井雄治朗(あらい ゆうじろう)

関東職業能力開発大学校を卒業した後、システム開発会社で10年間Webサービス・アプリ・業務システムなど幅広い開発を経験。2019年よりGIGに入社し、現在は開発事業部にてチームのマネジメントを務める。

石倉 彰悟(いしくら しょうご)

SkillShare事業本部 開発事業部 事業部長(PdM)。ソーシャルゲーム会社でカスタマーサポートとして従事した後にエンジニアに転身。大手決済システムやEC系Webサービス等の開発業務を経て、2018年7月GIGにジョイン。『Workship』の開発組織の責任者として、施策の立案、開発、品質管理、プロジェクト管理を一貫して行う。

どういったWebサイトやアプリを「よく出来ている」と思いますか?

中島:
ビジネスの各フェーズや、アクセス数に応じた設定が考えられているものを素晴らしいと思います。

たとえばTwitterの場合であれば、過負荷に耐えられる分散システムが必要です。しかし、1日に10や20アクセス程度のサイトで同じことをすれば、それはオーバースペックで意味がありません。

仮にそういった規模のサイトであれば、Rails(Ruby on Rails)などを活用して、ささっと作るべきだと思います。そのほうがニーズにもマッチしているるし、ビジネスとしてのトライアルもしやすいと言えるでしょう。

さらに言うと、「将来に備えた拡張性を考慮した上で、今はやらない」という余地を残した設計が最も美しいと感じます。

荒井:
シンプルに保つことが重要だと考えています。

Webサイトやアプリを運用をする中で、技術や使用するコードが増えるほど、管理や問題の特定が大変になります。、また、1つのパッケージを更新するときにも、現状への影響をその分だけ考慮しないといけなくなるからです。

これをシンプルに保つことで、修正や機能を追加するときに既存技術への影響範囲が狭くなり、試しやすくもなるため、ビジネスとしてもいいのではないでしょうか。

ーインフラの場合でも同じことが言えそうですね!

荒井:
たしかにインフラでも複雑な機能がよく出てきますが、必要がないことも割とあるので。それが本当に必要なのかどうかを考えることが大切です。

中島:
あとこれからインフラエンジニアとして生きていくなら、「プログラミング言語でプログラミングするのはいつまでなんだろう」と常に意識しながら、サーバーレスの仕組みについても知っておく必要があるんじゃないかと思います。

ーありがとうございます。それでは石倉さんのご意見はいかがでしょうか?

石倉:
僕もビジネスとしてのフェーズを意識するべきだと思います。

はやく出したいのであればスピード勝負が必要だし、グロースさせたいのであれば関わるメンバー全員が扱えるようなフレームワークで開発するべきでしょう。

ただスピード勝負だとしても、将来的な汎用性はある程度考えておくべきですね。「まずはWebで出すけど半年後にはアプリ化する」となれば、API設計もスタートの時点で考えておく必要があります。

そういったビジネス的展開も見据えて、汎用的に作っていくことが大切ですね。

今と昔で変わった技術、そして変わらない技術について教えてください

石倉:
個人的には変わった、ではなく新しく生まれた技術がたくさんあると思います。それを踏まえた上で、変わらないものについてお話します。

たとえば、サーバーレスやノーコードというものが今流行ってきています。しかし、もうサーバーのことは何も勉強しなくていい、とはなりません。自分が作ったサイトにアクセスがあったとき、こういった場合はキャッシュが使われて、こういった場合はロードバランサーを経由してこっちのサーバーに流れてくる、などです。

このように自分が扱うプロダクトを理解すると、問題が起きたときの対処もスムーズになりますし、自力も付きます。やはり新しい技術が生まれても、自分が扱うプロダクトや技術を理解することの必要性や重要性は変わらないのではないでしょうか。

荒井:
10年以上前、僕が大学生だった頃と比較すると、試すコストがすごく下がったと思います。

たとえば、当時はWeb開発で何かを試す場合、サーバーも簡単には立てられませんでした。そのために、自分のノートパソコンでサーバーを作り、何人かの方に協力してもらうなどの手間がかかっていました。しかし、今ならそんな面倒な手間もなく、そしてほとんど無料で試せます。「これを作りたい」と思ったときに、すぐ試せるという環境があることが大きな変化かなと感じています。

変わらないことといえば、JavaScriptがずっと使われ続けていることですね。それこそ僕が大学生のころからある言語で、当時は「使わない方がいい」とも言われていました。しかし今では一番人気で、何でもできるようになっています。

中島:
まず変わらないものでいうと、ノイマン型コンピュータであることですね。いまだにメールが使われていることもそうですし、アプリケーションレイヤーにも変化はありません。

また、アルゴリズムの基本を理解することも、昔から変わらず重要なことの1つです。基本を理解していないと、どの言語を使用しても良いアルゴリズムは書けないですから。

変わったものでいうと、今挙げたような基礎技術がどんどん扱いやすくなってきていることですね。プログラミングもそうですし、考え方がライブラリからフレームワークになったことも同じです。そして今後も、この流れは続いていくと思います。たとえば、インフラもソフトウェアもハードウェアも全てコードでやりましょう、次はブロックプログラミングで、次はノーコードで、といったように。

この流れを考えたとき、1つのプログラミング言語にこだわることはやめるべきだと思います。言語を学ぶのであれば、2、3種類を並行して学び、それぞれの違いまで理解した上でスキルとして身につけていくことが、これから先にエンジニアとして生きていくなら必要ですね。

より良いWebサイトやアプリを開発するために必要な心構えについて、皆さんのお考えを教えてください

中島:
最初の質問への回答が全てだと思いますが、やはりビジネスのフェーズと予算に合ったものを作ることですね。

ただ、もちろんこれだけを意識していればいいのではありません。私はもう30年近くエンジニアをやっていますが、ここまでやってこれたのは何か業務に取り組むとき、それと同時に新しいことを学び続けてきたからだと思います。

エンジニアは2年前の技術が古いと言われる業界です。何も新しいことを学ぼうとせず、ただ言われた業務をこなしているだけでは、間違いなく取り残されてしまいます。常に新しい技術に目を光らせながら、そしてそれを日々の業務に取り込んでいくことが、エンジニアとして生きていくなら必要な心構えですね。

荒井:
自分の役割を超えて広く学ぶことが大切だと思います。

自分の専門知識を深めていくことももちろん必要ですが、意外と周辺知識が自分の専門分野に役立つこともあります。たとえば、アプリ開発では常識となっている知識がWeb開発でも活用できたりするなどです。

あと、これは開発に関すること以外にも言えることです。プロジェクトをチームで進めているときに、他のメンバーの業務内容を理解すれば、自分の技術や知識をメンバーのサポートに活かすこともできるし、もちろん反対のことも言えます。

そうやってお互いのスキルを活用し、助け合いながら取り組むことで、プロジェクトもより良い方向に進んでいくと思います。

石倉:
細かな話になりますが、コード一行一行に根拠をもつことですね。

ただ変数に格納しているだけのコードでも、「本当に変数に格納する必要あるのか?」や「メモリーはいつ解放されるんだろう」というところまで考えると、本当に奥が深いんです。そしてこういった意識を持つことは、そのままエンジニアとしての成長につながると思います。

あと中島さんのお話にもありましたが、常に技術がアップデートされる世界なので、こだわりを持ちすぎないことも大切です。仮に現時点でベストとされる技術も、半年後には役立たないかもしれない。1つの技術に固執しないスタンスも必要ですね。

まとめ

今回は、エンジニアとして活躍し続けることの難しさがよくわかる勉強会となりました。

また、ビジネスのフェーズを考えた上で行動することや、現状に満足せず学び続ける姿勢が必要であることなど、エンジニアではない人にとっても大切な話をたくさん伺えました!

よりよいサービスを届けるため、今後も会社全体で学び続けていきます!

GIGではGood is goodなチームを築ける仲間を募集しています!

現在、GIGでは「一緒に学びながら成長していきたい!」と意欲のある仲間を募集しています。

詳しく話を聞いてみたい方はコチラからどうぞ! 

話を聞いてみたい方も歓迎です。お気軽にご連絡ください!

宮﨑 駿(カントク)

フリーランス編集/ライター。GIGのメディア事業部で複数メディアの運営に参加中。キャリア、働き方に関する記事を中心に執筆。ジブリの知識には自信ありません。