社内プログラミング部、はじめました

部活名と活動内容のレベルがあっているかは怪しいですが(笑)、まあ雰囲気だけでも張り切っていこか、と。

ノンプログラマーである我々なりにgasつかったり関数使ったり、社内の雑務・庶務、あれこれを自動化したいよね、業務効率あげたいよね、頑張っておぼえとく、とかやめようよねってことで立ち上げました。

それが、、、まあ楽しかったことといったら!!!というわけで、部活動を立ち上げた背景と、第1回目開催の雰囲気を少しお届けします


●なぜ社内プログラミング部をたちあげたのか?

実はいま「いつも隣にITのお仕事」運営者・株式会社プランノーツ 高橋 宣成さんの運営するコミュニティ「ノンプログラマーのためのスキルアップ研究会」にお世話になっておりまして。一緒に入って勉強しようよ!ってうちの幹部の3人誘って入りました。

猛者のうずまくコミュニティ限定のSlack内にて、みなさんの学習意欲の高さ、意思の強さ、そもそもの知識レベルの高さに、時にヒーヒー言いながら、時に死んだ魚のような目になりながら、猛者たちの優しい励ましにケツ叩かれながら、頑張りつつコーディングを学んでみたんですが、やっぱり、どうしても大きな問題一つ。それは…

言い出しっぺの私が率先して、コード忘れる…。

(はい、最低。なじってください、ホントにもう…)

理由は全部、わたし起因なんですけどね。毎日、早朝の2時間を学習時間としてとっているんですが、どうしてもここに

・前日に終わらなかった仕事が食い込んでくる
・勉強ノッてきた頃に息子が早起きしてくる
・承認依頼など、社内外から予定外のタスクが飛んできて、想定外に時間もってかれる

で、結果的にたった3日間、いや2日でもコーディングに向き合えないと、やりたかったことを実現できるはずのコードを忘れる
→忘れたトコ調べる
→2時間の中で出来る範囲狭くなる
→1日1コード、くらいでしか進まない
→やっと出来ても、次に実現したかったコードのこと忘れてる
→また調べる
→息子起きてくる

これの繰り返し。ふ、ふ、不毛!朝の貴重な二時間が!!というわけで…

もう、業務内でやる時間確保したろ!
勉強も仕事も一緒にやったろ!!!

と。この判断は経営者の特権すね♪

というわけで、独学にてコーディングを学んでるという、庶務メンバーのM女史(gasとか関数とかある程度分かる人)も巻き込んで、週1のプログラミング部を立ち上げたのです。


●第1回目活動の様子

本日は、ほかメンバーの仕事の都合上、私とM女史のふたりきりでの開催でした。とはいえいまのところ、MAXで3人ですが(笑

プログラミング部の活動は、大きく3

・仕事上、改善・自動化したい作業に、必要なスクリプトを組むこと。
(練習問題はやらない。)
・メンバーと画面共有しながら、共同編集して一緒作っていくこと
(zoomで画面共有しながら、ひとつのファイルを一緒に触っていく)
・上司とか部下とかの上下関係なし。ただ一緒に学ぶ仲間であること。
(元々、あんまりそんな空気薄い会社ですけど)

どうせやるなら、仕事に使う仕組みをつくりたいですし。
しかし、GoogleAppleScriptの同時編集…。ほんとありがたや…。

今回、メインでスクリプトを書いたのは、庶務メンバーのM女史。あ、いちお業務構築のメイン担当としてアサインしてまして。(松本、サボってるんちゃうで、の言い訳)

で、作ってもらったスクリプトを一緒にみながら、作成したコードの意図を解説してもらいます。

今日の会話はこんな感じ。

M女史「入社日をC列にいれますー、そしたらDFHJ列にそれぞれの指定日付が反映されます、んで同日程のカレンダーに予定が飛びますー、カレンダーに飛んだらEGIK列にCalendarと連動済みチェックが入る、っていう」
松本「うん、OK、OK。このチェックいれるってのが出来なかったんだよね、でもこうやって見るとシンプルに書けるんだねー、すごいねー…。
……ん?あれ、ここってなんで、i+1なんだっけ…」
M女史「あ、これはvalues の配列だと 0始まりで、 range だとなんでか1 始まりなんすよ」
松本「あ、そうだった…。って、おぼえてたっぽいのは嘘。忘れてるな、私…(汗」
M女史「でもなんでかちょっと自信ないんすよね…、私。独学ですし…このコードおかしいっすかね…」
松本「ちょっとノンプロ研の方にSlackでいま聞いてみるわ(業務中やのに大丈夫かな、、、とか思いつつ)」

ここでノンプロ研Slackへ質問。するとE氏より神返答いただきました

values の配列だと 0 スタートで、実際のスプレッドシートの range だと 1 スタートで 1 ズレてるってことかな?

コード見やすくするなら、
`rowIndex = i + 1;` って書いて、
`ss.getRange(rowIndex, 5).setValue("✔");` って書くといいかもね~ 
質問の意味が違ったらもっかい投げて~

M女史&松本、納得&安心。そのあとも、いろいろ細々と揉みつつ、やること1時間半。出来た!…と思いきや最後のつまづきが。

M女史「あれ?なんでだろ?カレンダー飛ばないな…コードあってんのんにな」
松本「なんでかな?(沈黙の中、ふたりでスクリプト眺める)
…飛ぶ設定はしてるんだよね?」
M女史「あ。トリガーの設定忘れてました笑」
ふたり「笑」

…という具合。
ひとりでやってると気づかないけど、意外と一緒にやってるとなぜか気づいたり、ってありますよね。

ちなみにM女史とは部活後、こんな会話をしました

松本「今日はホントあざました!感動っす!
またいろいろつくれるもの探していってどんどん業務効率化したいすね!

M女史「こちらこそありがとうございましたー!
いつも黙々とスクリプトと格闘してるので
一緒にあれやこれや言いながらやるのめっちゃ楽しかったです!!
> どんどん業務効率化したいですね!
やってくうちに知識も増えていきますし、一石二鳥ですね(๑•̀ㅂ•́)و✧
頑張りまっす!!」

知識増えるし、スタッフもやる気出たみたいだし、今回の書類ひとつできたことで業務効率確実に上がったし。いい事だらけのプログラミング部、いきなり楽しかったもんで、即日ブログにしたためた次第です。(笑

まとめ〜プログラミング部の「ここが良い!」

・一緒に触りつつ、スクリプト確認しつつ仕上げていくから、複数名でスクリプトの内容を共有できる
・しょーもないことも、社内の「部活」だから聞きやすい。
・自分の見解が合ってるのか間違ってるのか、一人でやるより早くわかる
・人が作業してるところ画面共有しながら見せてもらうと、全然関係ないけどスゴく助かる気づきや知識がある
(例:修正する時、Command+fの検索だけでなくて、検索&置き換えを使ったら、全部同時に修正できるのか、そりゃそうか!という気付き。)
・業務時間内で勉強ってそもそもどうなん?って意見の経営者さんもいるかもだけど、2時間✕2名程度の低コストで、社内にずーっと残せるノウハウ&仕組みを蓄積できるってサイコー。
・孤独じゃないから、なんせ楽しい

以上。興奮冷めやらぬ中、本日の部活レポートでした。



サポートしていただけると、励みになります!!