Article

ブログ

2021/03/19

サービスデザイナーがプログラミング(rails)を学んで良かった7つのこと

こんにちは、セルフリーのデザイナーの畠です。
普段 CallConnect という法人向けの電話サービスのデザインを行っています。
私の前職は Web デザイナーでしたので html と css の基本的な知識はありましたが、 ruby や rails といったプログラミング言語についてはほとんど分かっていない状況でした。
デザイン以外のスキルを身に着けようと2020年に決心して、オンラインのプログラミングスクールに通いました。

今回は自社サービスのデザイナーがプログラミングを学ぶことで、 どのような効果があったのかをご紹介します。

なぜプログラミングを学ぼうと思ったか?

大きく2つの不安があり、それを解決したいと考えプログラミングを学ぶことにしました。

エラー通知

弊社は受託業務は行っておらず、自社サービスが収益のすべてです。
当時社内にエンジニアは1名のみでした。
サービスのログを監視し、エラーが発生するとチャットツールにエラーログが書き出されるのですが、 エンジニア以外のメンバーが見てもエラーの重大さやどのユーザーで起きているかなどがすぐに分かる状況ではありませんでした。
そのため、気になるエラー通知があれば都度エンジニアに聞くというアクションが発生していました。
実際は気にしなくても良い通知が多い中で、重大かどうかが他のメンバーでは分からず、不安やコミュニケーションコストが発生していました。

サービスの全体像が見えない中での操作。

開発の工程でエンジニアが実装したコードに関して、 css や文言をローカル環境で調整し、 プルリクエストを送るようなこともありました。
サービスのコード一式が自分のPC上にあり、ほとんどのファイルがどんな役割をしているのか把握できていない状況の中で、ファイルの修正をするのは不安でした。
ローカル環境を立ち上げるときに、バージョン等に起因してエラーが発生し、エラーを調べてもコマンドを本当に打って良いかなどの判断ができず、その度にエンジニアに聞かなければいけないというのも課題に感じていました。
また、コンソールという直接データベースを触れるような機能を使う時、操作を間違えればユーザーのデータを消してしまうといった、 取り返しのつかないこともできてしまうことを知っていたため、 黒い画面(ターミナル)に対する恐怖感が少しありました。

どんなメリットがあったのか?

実際にプログラミングスクールに通った後、どのような変化があったのかをご紹介します。

話し合いを進めやすくなった。

例えばデザイナーがサービスの画面改善の施策について説明する機会があったとします。
このくらいの横幅だと見にくいなどと、感覚値で話すだけでは伝わらないことがよくあります。
しかしながらサービス開発の現場では、論理的な話し合いが中心となります。
感覚値や感情論だけで話し合うと、それぞれの感覚が異なるため、平行線が続くことがあります。
直感以外に論理的に話せる部分があれば、それも伝えることで、他のメンバーにも伝わる可能性が高くなります。
共通認識を持ちやすくなり、話し合いが進めやすくなりました。

工数を考えるようになった。

開発をする際には物事を論理的に考え、工数、自分の技術力、実現性、メリットやデメリットなどを踏まえて、一番最適な方法を選択する必要があります。
スクールで開発する中で、最終的にはこの機能が欲しいけど、今の自分の技術力では難しいため、代わりにこの機能なら何とかできるかもしれない、それでも難しかったらこっちにしようといった様に考える機会が何度もありました。
何も考えず実装しようとすると途方もない工数がかかることになり、後悔することになります。
以前勤めていたデザイン事務所でデザインを複数提案するような場合は、 工数がそこまで考えず一番見栄えが良いものや直感的に使いやすそうなものなどが選択され、 多少大変なデザインでも勢いで作ってしまう意思決定がよくありました。
これはデザインと比べ、提案後の工数がエンジニアリングの方が大きくかかることも多いことが背景にあると考えています。
デザイナーもプログラミングを学ぶことで、それぞれの施策の工数がどのくらいかかるかという視点を持ちやすくなりました。

費用対効果を意識するように。

工数を考えるのと合わせて、その施策を実現したときの効果も考えるようになりました。
工数はかかるが、効果がいまいちなものより、工数はかからず、効果が大きい方が良いといえます。
デザイナーでいる時もそういった意識がないわけではなかったのですが、プログラミングを学ぶことでより意識できるようになりました。

仕事とは関係ないのですが、時間を生み出すような電化製品を購入し、効果を実感しています。
自動調理器(ホットクック)、ルンバ、洗濯乾燥機、食器洗浄機などです。1回で節約できる時間は数分だったとしても 1年間を通すと数時間、数十時間になり、費用対効果が高いと実感しています。

感情をコントロールしやすくなった。

例えば何か失敗したときに、感情的になり落ち込んでいても仕方がありません。
工数の見積もりが甘かったといった考え方にすれば、次に切り替えやすくなります。
普段のものごとをできるだけ論理的に考える癖を持つことで、感情をコントロールしやすくなります。

ファイルを触る不安が少なくなった。

プログラミングを学ぶ以前も、エンジニアが実装したコードの html や css のに修正を加えることがありました。
ソースコードの管理ツールを使っているので、間違えたとしても元に戻せるため問題にはなりずらいのですが、各々のファイルが何をしているのか分からないままというのは精神衛生上よくありませんでした。
rails の MVC などの基本を学ぶことで、各フォルダやファイルがどんな役割をしているのかの全体像が見えるようになり、ファイルを編集する際の不安を大きく軽減できました。
また、ファイル構造を学んだことで、修正するべきファイルを見つけるのにも時間がかからなくなりました。

エンジニアの行っていた操作の一部が行えるように。

これまでエンジニアのみが行っていた操作がありますが、 電話番号の移設作業など、エンジニアが休日でもユーザーからの依頼があった場合に、操作を行ってもらっていたことがありました。
私も対応できるようになり、エンジニアへの負担を一部減らせました。

デザインだけで成果を出すことにこだわらなくなった。

自社サービスの企業でデザイナーとして成果をあげようとすると、画面デザインやチラシ、名刺、広告のバナー制作が中心となります。
サービス立ち上げ時にはデザイン業務が多く手一杯であっても、リリース後しばらくすると、機能追加が中心となります。
そのため、やらなければいけないデザイン業務は減る傾向にあります。
もちろんロゴやサイトのリニューアルなど、やろうと思えばいくらでもデザイン業務を作ることができます。
しかしながら、視野が広がることでデジタルマーケティングや SEO など、デザイン以外でもより大きな成果を上げるものについて考えるようになりました。

まとめ

サービスデザイナーがプログラミングを学ぶメリットについてご紹介しました。
デザイナーがプログラミングを学ぶべきかどうかはデザイン界隈でもよく議論されていますが、 プログラミングを学ぶことは仕事だけでなく普段の生活の考え方にさえも影響するものでした。

小学校などではプログラミング教育が始まっていますが、現在の20代以上では学校で学ぶ機会のなかった人も多いかと思います。
最終的にコードを書く仕事につかなかったとしてもメリットも多いため、学んでみることをお勧めします。