こんにちは!
先日行われたWordCamp Osaka 2018に参加してきました。
セションで伝えきれなかったこととか、背景とかについてフォローしたいなと思いました。
目次
自分のセション
僕は今回「中規模案件のこなしかた」ということで登壇してきました。具体的にはWordPressをつかったウェブ制作案件で、こうしたら良かった、ああしたら良かった、こうしたら困った、ということについてお話しました。
特に最近だとDockerを使ったりですとか、少し前の案件でBehatを使ったりですとか、色々と技術的に新しいことを案件に取り入れていて、そういうのって便利ですよ!楽しいですよ!ということをオススメしてきました。
今回セションを何故やりたかかったか、というのは3つぐらいあって
- 中規模案件って大変ですよね。こうしたら便利でしたよ。
- ウェブ制作現場のディレクターさん、社長さんとかにDockerとか今どきっぽい開発にとっついてもらう
- 制作現場がメインのエンジニアさん、製作者さんにOSSとかで使われてるっぽい便利っぽい機能にとっついてもらう
と考えていました。
個人的に案件をこなしていて思うのですが、WordPressはオープンソースで開発されていて、OSS系に近いエンジニアだと「この機能便利だな」っていうことが結構あって、例えばGitやGitHubですとか、テストドリブン開発ですとか、Docker、CI、コーディング規約、デプロイ…、と色々あるのですが、なかなか制作現場に投入するには難しいな、と思っています。
Qiitaとかその他のウェブの記事などでカッコいい感じの会社さんですと「〇〇を自動デプロイさせてSlack通知!」「テスト駆動で開発効率UP!」とか目にするんですが、やはりそうは言っても色々と問題があって、例えば技術の習得コストをどうするかですとか、運用チームに引き継げないですとか、新しいことやって問題が起きたらああこれ良くなかったかも新しいのはやめようですとか、クライアントさんからソースコードを外部に出すのはダメだとか、そういったビジネス上の制約を受けることは多いなと思っています。ウェブ制作者さんと言っても「LaravelとかRoRで開発してますよー」っていうエンジニアがバリバリいる会社さんだと多分僕がしゃべるより全然すごくて、僕が携わらせてもらっているWordPressで制作やっている会社さんですと社内にエンジニアがいないところが多くて、そういうウェブ制作事業者さんを意識してお話してきました。習得のコストについては難しくて、ウェブ制作事業者さんが事業として、会社として制作をやっているということは、習得コストがどれぐらいで、その見返りがどれぐらいでっていうのがあるので、そういうのってエンジニアが「新しい技術の方が良いでしょ」って好き勝手にやってるとやっぱりよくなくて、というか自分自身が20代のころは好き勝手にやってしまって良くなかったなぁと。
僕がエンジニアとして先に述べた保守的なスタンスに対する不満というわけではないですけど、変えていきたいなという思いがあって、そこへのフォローを意識していました。もちろんクライアントさんありきで「こんな現場ヤダ!時代遅れ!」とかじゃなくて、クライアントさんにはクライアントさんの理由があって、ディレクターさんにはディレクターさんの理由があって、そういうのはいきなり変わるものでもなくて、徐々に意識が変わったり、環境が変わったり、環境が変わったり、サービスが出たり、決裁権者の人の世代が下ってきたりして変わると思っています。
僕自身は新しいツール群とかが浸透していったら世の中は便利になると思っていて、エンジニアとしてはたぶんそう思う人が多いと思っていて、その中でエンジニアはチームを技術的にリード、フォローしていく、ということが重要だと思っています。具体的には「Gitでコミットしたけど衝突したよ?どうしよう?」とかよくあるんですけど、そういうのをチームでフォローしていってます。
これって開発チームのエンジニアが「今どきGitがデフォなんでGit化しましょう」とか言っても「いやそれは君は便利かもしれないけど君の都合じゃん?」とか言われちゃってて、外部の人間というか、例えばチームの人間じゃない僕とかがセッションを通じて「Docker良いっす」とか「スクショ取りまくるとディレクターさん便利ですよ」とか、あとからのスライドとかブログとかで、そういう意見を外部から決定権者の人が浴びることで多少なり貢献できればいいな、と思っていました。
近いところだとSlackがテレビCMをやってるってときに(あれって東京だけなんですかね?)「エンジニアがSlackを会社に導入したくても『なにそれSlack?知らないし』って上の人からNGでちゃうけど、TVCMやると『ほらあのTVCMやってるSlackですよ』って言えると導入しやすいじゃないですか。決定権ある人ってQiitaとかのブログ記事は縁遠いし、テレビっていう別のチャンネルから攻めてるんですよ」って教えてもらっておおーそうなんだなるほど!ってすごく感心して、今回のセションがそういう感じで別のチャンネルとしてディレクターさんとかに届くといいな、と思ってました。 スライド中に制作実例を出しまして、それって「ああこういう会社もWordPressでシステム作ってるんだ」っていうことの納得材料になればという狙いでした。
あとはひとえにエンジニアさんって言っても、なかなか新しい技術にとっつけない方も多くて、日々の業務も多いですし、子供とか居たら育児が大変ですし、僕もフリーでやってるとそうなんですけどちょっと気軽に「Dockerってどう?」とか聞ける人が周りにいなくてよくわかんないですし、そういう人たちにも新しいことに挑戦する動機付けになれば良いな、と思っています。(気軽に聞ける人が居ないってところについてはよかったらぜひ僕に気軽に聞いてください!っていうか誰か聞かせてください!)
セションの内容的は「中規模案件」ということを軸にお話したんですが、実際に小さい案件を何件かこなしてくるとレベルアップといいますか、「こういう案件あるけどどう?」って仕事を振ってもらえることも増えてきて、僕自身がWordPress案件の開発者ですけどコーディングとかできなくて、インフラ、プログラム、最近だとプロジェクトマネジメントをやっているので、必然的に少し大きめの規模の案件になるわけですね。
他にもお仕事で関連する僕の周りの人たちも、クライアントさんから徐々に大きい案件をもらったりし始めるてて、今まで回せてた方法で回らなくなったり、回らないというか思った以上にコストがかかって、あれっ?なんで?ってなったときに、それは2人以上が関わるときのコミュニケーションコスト、意思疎通のオーバーヘッド部分だと思っていて、そういうのってありますよね、ということをお話しました。
具体的には「中規模案件 = 同じ職種が2人以上」「水平分業 = 同じ職種を分業」ということで定義して、そういう場合は大変になりますよ、というところでした。その解決に「ツールをつかったハードな解決法」と、「お互いを尊重していこうというソフトな解決法」を紹介しました。あとは例えば案件にDockerを使うときとかに、僕がやってる方法の一つに「 public_htmlに testdomain.test とかでディレクトリを作れば hosts を書かなくてもローカル環境が動く」っていうのがあって、これはこれで結構広めたいんですけど、「一つのローカル環境(httpd)で複数の案件をこなす」というのは今回のセションで言うところの小規模案件に向いていて、中規模案件には向いていないと。中規模案件以上になってくると「べき等性」を重視して案件ごとに docker-compose.yml とかの環境を独立させておくと、チームメンバーでの共有やCIを回すときにDocker環境が使えて便利ですよ、というそういう区切りをお話しました。
逆に言うと小規模の場合には都度都度環境を作る、っていうのは向いていないと思っていて、例えば小規模案を多くこなしてるディレクターさんは月に三件とか同時に走らせてて(スゴイ…)、そのたびにVCCWとかDockerとかで docker-compose up とかしてたら起動でストレス掛かっちゃうので、それだったら共通の環境で動かしたほうが良いですよと。小規模案件の場合はだいたい同じようなWordPress環境でよくて。中規模案件では例えばGZipのライブラリがあるとかないとか、APC使えないと死んじゃう前提で書いてますよとか、本番環境はPHP5.2ですとか(いやこれ小規模案件でもありますね!でも適当にコード書き換えたら動くので。)、中規模はそういう感じで、逆に小規模の場合には環境の再現性はいらないこと多いですね。
セッションとしては「Docker便利!CI便利!」っていうほうが見栄えが良くてキャッチーなんですが(実際やってて楽しいです!)、実際はコミュニケーションのほうが大事だと思っていて、ソフトウェアの開発者をしてるとある程度は「プロジェクトマネジメント」ですとか「コミュニケーション大事!」とか、何らかの分野で聞いたことがあったり、ソフトウェア工学的に解決のアプローチが体系化されてて選択肢があったりするのですが、コーダーさんやディレクターさんですとあまり言葉に馴染みがなかったりするので、その辺がなにか足がかりになれば良いなと思っていました。
今回は具体的な設定ファイルとかの方法論についてはお話していなくて、概念的というか、先の述べたように動機付けなるように重きをおいてお話しました。もっと具体的なコードとかconfレベルのところはQiitaとかでフォローできるといいなと。
というところで、ウェブ制作事業者さんにとって、今回のWordCampが「Focus on business」というテーマだったので、それに沿った内容をお話できかなと思っています。
セションを終わって「結構エンジニア視点ですね」っていう意見ももらったりで、確かにエンジニアに寄りすぎていて、確かに僕自身がディレクター職じゃなくてプロマネ職の立場からお話してしていて、中規模になったらエンジニアをまとめる人をチームに入れればよいのか、ですとか、Docker・CI・テストって初期コストかかるけどやってみるかー、って思ってもらえれば良いなと。
あとは最後の方に「ブラウザからウェブのテストしてスクショを撮るツール」っていうのを作ったんですよという、最近だと渾身の出来だったツールを紹介したのですが、かなり分かりづらい感じになっちゃいました。
ということでやっとセションの感想を書けました。
大阪到着
ここからは参加した記録です。
福島県から大阪に向かう途中に色々ありまして、東京のAWS Summitに参加したりしながらやっと大阪に到着しました。
宿に荷物を置いて、大阪のクライアントさんのところへご挨拶に。
宿は大阪駅から徒歩圏内のゲストハウスにしました。
ここのゲストハウスはキレイでしたし、ベッドのスペースも十分で、東京より一回り安くてよかったです。
主に韓国の旅行者の人が多かったのかなという印象でした。
到着日にはスピーカーさんと実行委員さんの前夜祭があり参加してきました。久しぶりの人たちに会えて楽しかったです。
お店の近くではキャンドルナイト?的なイベントやってて人がめっちゃいました。賑わってますね。
楽しそう。
前夜祭では子育てしながらの開発話ですとか、フリーの心構えとか、なかなか普段相談できる人も居なくて不安だったりしたんですが、そういうことについてお話できてよかったです。
台湾から(!)の方にいただいたパイナップルケーキ。
kosgisさんとツーショット。酔っ払ってすごく盛り上がった覚えが。
一日目
当日です。
WordCampの会場までは歩いて20分ぐらいで、一駅だと思ってたら開場にちょっと遅刻しちゃいました。
歩いてる途中で見かけたカッコいいビル。Facebookで聞いたら空中庭園?らしくて、内部にエスカレーターがあったりだとか、なんかすごそうでした。
ここが会場です。
入ると本屋さんと喫茶店になっていて、アレ!間違えた?って思って出てしまいました。奥の方にエレベーターがあって上がれる構造になってました。
会場にはすでに結構な人がいました。セションの部屋は1コマ目からすでに立ち見がでるほどの盛況でした。スゴイ!
タイムテーブル表。首からぶら下げてて、手に取ると見やすいように逆向きになってていい感じ!
各地のおやつコーナー。きびだんごめっちゃありました。
赤福すごく人気で、賞味期限の関係で三重県から遠い人ってなかなか食べる機会がないけど大好き!って人にはすごく良かったのかなーと。
あっちなみに石川県にはあんころ餅があって、あんころ餅も女性に大人気ですよね。
おやつコーナーがあったんですが、まさかの…。
「きのこたけのこ論争」と「Emacs Vim戦争」を掛け合わせるとかマジでやばいっすねこれ僕は「たけのこ派」「Emacs派」なのでぐぬぬ。
がんばってるkosgisさん。富山から場所が近いこともあって、地方のコミュニティづくりはkosgisさんとToro_Unitさんが頑張ってるなぁと影ながらいつも心の中で応援しています。
各地の地方Benchのポスター。富山から分は古川さんと青木さんが作ってくれていて、いい感じに仕上がってますね!富山県の形にくり抜いててカッコいい。
せっかくの成果物なので今後もどこかで使えると良いなーと。
とろうにさんとツーショット。
ひさっちさんの雄姿を確認しておきました。
西川さんのセション。超満員でした。WordCamp男木島を開催される件、僕もすごく応援してます。チケット全然とれなかった!
PleskのTシャツもらいました。まだ新しいPlesk使ってなくてすみません。
キタジマさんのSnow Monkey。デザインも、販売モデルの件も、コードも、ファイル配置も、全部かっこいいですよね。
Redmineのブースがあって感激。
いつもTシャツが素敵なアクツさんのLT。
懇親会の様子。ご飯美味しかったです。
野末さんとのツーショット。今度富山に来てくれることになって嬉しい。
たぶん二次会。HUBってやつらしくて、お酒を気軽に飲める感じでした。良い。
このあと三次会ぐらいまで行ったのですが、一緒に居た方々と大阪が楽しいところ過ぎてすごく飲みすぎました。
一緒になった人にはご迷惑をおかけしました。
前から斎木さんとお話したかったのですが僕が酔っ払ってしまっててああーという感じに。ああー。
二日目
コントリビューターデイに参加してきました。コントリビューターデイ、良いですよね。
振り返ってみると写真がなかったです。取りそこねた。
僕はmiya0001さんのWP-CLIのチームに入れてもらいました。
miya0001さんにフォローしまくってもらって、当日中にPRを出せてマージしてもらえました。
やりました!
WP-CLIもすごく好きで、コーディング規約もすごく好きで(僕コーディング規約ってすごく良いものだと思っていて、エンジニアのレベルアップ手法にすごく良いと思っています)、コーディング規約関連の初心者向けイシューがあったのでよかったです。
miya0001さんありがとうございました!
途中に「WordBenchの行動規範」なお話が出てきて、WordBench富山をやっているので色々どうなるんだろうって思って聞いてました。
地方でBenchやっててあまり良くわかってないところとかあるんですけど、こうしてWordBenchをどうしていくか、という話を生に聞けるのは良かったなぁと思っています。
終わって
コントリビューターデイの日も大阪泊でした。
変なお土産っぽいものを探そうとスーパーを探して徘徊。ビルにイオンが入ってる…、さすが都会すげぇ…と。
鶯ボール!これ東北だと売ってないですよね。
ということでとても楽しかったです。
お礼
ということでWordCamp Osaka 2018に参加してきました。
WordCamp Osaka 2018の実行委員の方、おつかれさまでした!参加できてよかったです!
WordPressの大きい大会の、WordCampとかWordFesとかWordCrab、やってる人たち本当にすごいなぁと思っていて、僕は参加してるばっかりなんですけど、そういうイベントを開催するってすごすぎて全然実感できなくて、参加して楽しいですしためになるので本当にすごいなぁと。
スライド中でコーポレートサイトのデザイン例はWordBench富山の青木さんがXDで作られたカンプで、僕はなかなかカンプとかを作れなくて、WordPressっぽいコーポレートサイトの例どうしようって困ってて助かりました!ありがとうございました。
実例ではクライアントさんに掲載許可とってもらったり、自転車サイトとかで許可もらったりしてディレクターさんに動いてもらいました、ありがとうございました。