2021.9.2
クリエイティブな仕事に時間を有効活用!自動化のススメ
みなさんこんにちは、メンバーズユーエックスワンカンパニーの坂野(ばんの)です。これまで紙業界で様々な経験をしたのちWeb業界に転身し、現在はUI/UXデザイナーとしてクライアントの困りごとを「デザイン」という手段を用いて解決しています。
また、デザイン業務以外に多少のコーディングスキルもあるので、時折コーディングや自動化ツールを作成したりもしています。
本稿では、これまで自分自身が経験してきたことに加え、よく聞かれる「なぜ自動化ツールを作るのか」について、自分なりの考えや自動化することのメリットについて一度言語化してみたかったので、良い機会だと思いまとめることにしました。
コードを書いたことがない人でもこの記事を読んで「やってみたい」と思ったらぜひ行動に移していただければと思います。
もくじ
本質的な仕事をしよう
自分を含め、日々様々な業務を行なっています。それらの業務の中には種類があることをご存知でしょうか?たいがいの場合、本来やらなければならない業務(以下、本質的な仕事)の他に、できればやりたくない業務(以下、付加的・付帯的な仕事)があります。
これを、スティーブン・R.コヴィー著の「7つの習慣」に掲載されている表に当てはめると、「1」や「2」の領域がもっとも取り組まなければならない問題や課題(本質的な仕事)になり、「3」の領域がこまごまとしたこと(付加的な仕事)になります。
つまり、「1」をメインでやるために「2」の時間で効率化し「3」の負荷をできるだけ無くしていくイメージです。
例1:データ分析の場合
データを取ること集めることが本質的な仕事ではありません。集めたデータを元に、意味を見出し意思決定することが本質的な仕事と言えます。
例2:バナー作成の場合
突き詰めて考えると、サイズ違いのバリエーションを複数作成することが本質的な仕事ではありません。デザインのテイストや要素の配置など、クリエイティブの質の向上を考え決めることが本質的な仕事と言えます。
例に挙げたような「本質的な仕事」にどれだけ時間を割くかが自身の仕事のクオリティを左右し、最終的には評価に繋がってくることになります。
自分の場合、本質的な仕事と付加的な仕事を見極める方法として「ものすごく忙しい状態(自分の言い方に置き換えると「超絶忙しい時」)」を基準にしています。忙しい時こそ、本来しなければならないやるべきことが見えてくると思っているからです。
かといって付加的な仕事をやらなくても良いということではありません。先ほどのデータ分析の例でいえば、データそのものがなければ意思決定する材料すら揃っていないことになるので、それでは本末転倒です。
では、この付加的な仕事の負担を柔らげるためにはどうすれば良いのでしょうか?本質的な仕事に集中したいけれども、付加的な仕事もしなければならない。自分の場合は自動化ツールを作ることで限りなく負担をかけないようにしてきました。
自動化の考え方
ツール作成はイライラが原動力
コピペが2回以上発生する場合や定期的な作業の場合、自分は高確率でイライラします。なぜならそれは人間がすることではないと考えているからです。人間はもっと創造的(クリエイティブ)なことをすべきです。
そこで自分の場合は、まずネット上に同じようなことで困ったり悩んだりしている人がツールを作っていないか探します。誰かしら同じようなことで不便だと感じている人がいるはずだと考えているからです。そして、探しても見つからなければ自ら作るという選択をします。
ここでよく言われることが「探しても見つからなかったのに諦めずによく作りますね」という言葉。そりゃあ諦めないですよ。なければイライラして生産性下がりますし何よりこの苦痛がずっと続くんですから。一刻も早くこの苦痛から抜け出したいんです本当に。
自分はこのイライラが全ての原動力(モチベーション)なので、イライラが冷めないうちにすぐに作り始めます。言語は特に関係ありません。現場の制約で使える言語が限られている場合、その限られた言語の中で作ります。目的はあくまでもイライラを解消するためのものなので。
作成する上で気をつけていること
一番はイライラの根源を解消することです。どこを解決すれば本質的な仕事に集中できるのかを考えるのです。その際注意しているのが「これまでのフローを劇的に変えるようなことはしない」ということ。いきなりフローを変えてしまうと思いもしなかったミスに繋がり、これまで問題なくアウトプットできていたことができなくなってしまうからです。
自分なりの作成時のルール
- 基本はワンクリックで全てが完結する、またはドラッグ&ドロップで終わるもの(UI自体が不要)
- できるだけ汎用的なタスクに置き換え、タスクを分割する
- 考えうるあらゆる使用状況を想定しテストする
一番はイライラを解消すること、つまり付加的な仕事の負担をできるだけ軽くすることなので、操作自体が簡単でなければ意味がありません。例えば今までの作業が3ステップ必要だったとして、ツールによって1ステップもしくはゼロにするといった具合です。操作が簡単ということは誰でもマニュアルなしで使えることを意味し、ワンクリックやドラッグ&ドロップで完結するということは究極的には使い勝手を左右するUI自体が不要ということでもあります。
ツール作成にあたっては、できるだけ細かくタスクを分割します。これまで使ったことのない言語の場合や、仮に使い慣れた言語の場合も、作り始める前にタスクを細かく分割することでひとつひとつのプログラムがシンプルで分かりやすくなり、仮に分からなくなったとしてもピンポイントで調べられるからです。これはプログラミングだけでなく仕事自体にも当てはまりますね。
また、あらゆる状況を想定し何度もテストを重ねます。これなら問題ないと思える段階までひたすらスクラップ&ビルドを繰り返します。自分が作成しているツールは自分以外の人が使うまでにだいたい100回以上はテストを重ねています(実際に数えたことはないですがおそらくそのくらいは軽くやっているはずです)。
定型作業は自動化しやすい
同じような手順で作成しているもの、やり方がある程度固定されているものなど、定型的な作業については一番自動化しやすい部分です。特に以下のようなケースが該当します。
- URL一覧から各ページのスクリーンショットを撮る
- 複数のバナー画像のサイズチェック
- あるデータから違う形式のデータへの流し込み
- データ解析ツールから決まった形式でデータを取る
これらの定型的な作業はやること自体が簡単でも、地味に手間がかかり面倒です。そして手間がかかって面倒ということは…そうです、イライラの原因になるということです。こういうものこそ自動化してしまいましょう。
自動化ツールの一例
これまで複数の現場で色々なツールを作成してきました。一例としては以下のようなものです。
- PhotoshopやIllustratorでの定型作業の自動化(JavaScriptなど)
- OS操作自体の自動化(AppleScriptやVBScriptなど)
- Webサービスでの作業自動化(GASなど)
自分自身が現場に出ているいちクリエイターなので、通常使用するソフトウェア中心の紹介になっていますが、他のソフトウェア(例えばExcelなど)でも実は外から操作できる機能を備えたものも多いのでぜひ探してみてください。いつも使っているソフトが実は自動処理向きだった、ということも結構あります。
一例に挙げたPhotoshopでの自動化は、例えば複数枚の画像を同じような操作で何枚も作成しなければならない時に、バッチ機能だけではカバーしきれない部分を対応できたりします。
ここに挙げているものは言語が異なるので一見すると難しそうに見えますが、大事なことは本質的な仕事をする時間を確保することなので、詳細な使い方を覚える必要はありません。自身のやりたいことが実現できれば、コードの中身がどれだけ汚くても、冗長であっても一向に構わないのです。
これら定型作業を自動化することによって得られる時間的余裕は、これまで手作業でやってきたこと自体が馬鹿らしく思えるほどです。
例えばURL一覧(100個)から、それぞれのページがアクセス可能かどうか調べ○×を追加していくとします。手作業で1つあたりにかかる時間が約10〜30秒だとすると、
30秒 × 100個 = 3,000秒(50分)
手作業でやると単純計算で50分かかります。これには休憩などは一切入らず、ひたすら集中して黙々と脇目も振らずにやった場合の理論値になります。実際はこれだけに集中して時間をかけてやれることなどほとんどないと思います。ということはもっと時間がかかることになります。
これを自動化すると、1つあたりではほとんど計測の意味をなさないくらいあっという間に終わります(以下はあくまでも例です)。
0.03秒 × 100個 = 3秒
しかもこれらは仮に膨大な数(10,000個とか)だったとしても、休みなくミスなく確実に遂行します。あっという間に。
自動化と聞くと何か大規模なソフトウェアやプログラムを想像すると思いますが、実は大規模なソフトウェアも中身は小さなプログラムの集合体でできています。そして小さなプログラム自体がほとんどが単純なものばかりだったりします。
上記の例をもう少し詳しく解説すると、URLに「アクセスできる」ということはブラウザになんらかの特定の信号が送られていることになります。実はブラウザは、URLにアクセスする際にWebサーバから特定の数字を受信していて、それを元にアクセス可否を判断しています。このコードをブラウザ以外からどうにかして取れないかを調べると取れるらしいということが分かると思います。あとはそれを使ってアクセス可否を判定するツールを作ってしまえば良いのです。
このように単に数字を調べて判定させるような単純なツールでも、それがあるのとないのとでは時間もアウトプットの質も大きく変わる可能性があります。たとえそのツールが小さな波だったとしても、やがて大きな波になりうる可能性があるということです。
みんなでラクして早く終わらせよう
ここまで自分自身の経験をもとに長々と書いてきました。気をつけてほしいのは、「付加的な仕事をしなくていい」とか「何もせずに早く帰っていい」とか「時間になったら今やっている業務が終わっていなくても帰っていい」ということを言いたいわけではありません。
たとえ多くの業務があったとしても、本質的な仕事と付加的な仕事に分け、付加的な仕事を徹底的に自動化することでこれまで多くの時間がかかっていた部分を解消し、同じアウトプットでもこれまでと変わらないもしくはこれまで以上のアウトプットでラクしながら早く終わらせようということです。
そして本質的な仕事に多くの時間を割き、アウトプットの質を上げていこうということです。
自分の場合、ツールを作成するにあたり様々な言語・Script・コマンドなどに触れたことで可能性が広がり、次にツールを作成する際の選択肢が増えました。そしてこれまでできなかったこともできるということが分かりさらに視野が広がりました。
ラクをするためならどんな方法でも使う意気込みで作りましょう。
ここまで読んでくださりありがとうございました。
この記事を書いた人
坂野 歩
メンバーズユーエックスワンカンパニー所属。2017年中途入社。UIやUXについて日々勉強しながら奮闘中。UXデザイナー兼時々コーディング時々ディレクター。趣味は映画と海外ドラマを観ること。