継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

kakakakakku さんのブログメンティー会第1回開催レポート

タダです。

@kakakakakku ( id:kakku22 / カックさん)さんのブログメンティー間でもオフラインの交流がしたいと思い、下記のツイートで募集をかけました。そして、4/23 にその交流会をやってきたのでレポートを書きます。

ブログメンティーとは何か

カックさんのことやブログメンティーの詳細は以下の記事で書いているので、こちらを見てください。

sadayoshi-tada.hatenablog.com

ブログメンティー会の模様

今回、参加してもらったのは次のみなさんです(TwitterのID失礼します)。

  • @Linus_MK さん
  • @Udomomo さん
  • @mottox2 さん
  • @budougumi0617 さん
  • @inouetakumon さん
  • @_kobuuukata さん
  • @iijima_wataru さん
  • @ngmt83 さん

みなさんに集まってもらったのは、お気に入りの「筋肉食堂」さんです。趣味丸出しで申し訳ない気持ちになりましたがw

tabelog.com

20時にみなさん揃って、軽く自己紹介をしました。フロントエンドからバックエンド、インフラ、普段業務で扱っている技術はあるが、趣味では違う技術を勉強しているなど幅広い技術スタックを持った方々に参加してもらいました。また、カックさんから「よければブログも書いてね」というメッセージも添えました。もし書いてもらえるならレポートお待ちしています😊

自己紹介も終わるくらいにそれぞれの食事が到着。全員で「これ、ブログに載せるために撮らなきゃ」と写真撮影を始める我々のテーブルは、異様な光景だったかもしれませんw

やってみてどうだったか

さて、実際に交流会やってみてどうだったのかというと、とてもよかったです!

仕事でやっている技術の話で盛り上がったり、今気になっている技術、プライベートのことまで様々な話題が尽きずあっという間に時間が過ぎていきました。初対面と思えないほどみなさん、フレンドリーで、技術にアツい方々でそれぞれバックグランドが違うので、いつもとは違った刺激をもらって本当にありがたったです。

そして、カックさんについても話まして。家庭を大切にしつつ、ブログを書き続けていて凄い。タイムゾーン、本当に自分たちと同じかと思うくらいにレスポンスが早いなどカックさんのすごさに共通して唸ってました。そんなカックさん、以下のイベントに登壇されるようです。ブログメンターのアウトプットを見れる貴重な機会と思うのでブログメンティーで押しかけましょう!

devlove.wixsite.com

今後について

今回参加できない方もいたので、また何かしら企画しようと考えています。折角なので、よりお互いを知るという意味でブログに書いていたり書く予定の技術や技術の無駄遣いのような趣味の紹介でイベントやってみてもいいかなと思っています。カックさんが作ってくれたこの繋がりに感謝しつつ、大切にしていきたいと思いますね。

まとめ

第一回のブログメンティー会の模様をまとめてみました。様々なバックグラウンドを持っていて、正直初対面なのにみなさん活発にコミュニケーションを取っていてすごいなと思いました。沈黙の時間ほぼなかったような 🤔 それだけ楽しんでもらえてたならほんとにやってよかったなと思えます。

折角、いろんな経験や技術スタックを持った方々が集まってるので参加できなかった人たちをまた誘いつつ、なんかやりたいなーと考えています。ブログ書くこと必須の最近の自分の中でアツいトピックを共有したりとか、バズっている人のブログの書き方の視点とかノウハウを共有できたらより切磋琢磨できるかなーなんて妄想しています。

今のチームを見つめ直す視点をくれる「THE TEAM 5つの法則」を読んだ

タダです。

社内でチームビルディングに関する「THE TEAM 5つの法則」を読んで、より良いチームにしていくためのアクションをディスカッションしていく場に参加するため、本書を読み終えたのと合わせて本書の書評を書いていきます。

newspicks.com

THE TEAM 5つの法則 (NewsPicks Book)

THE TEAM 5つの法則 (NewsPicks Book)

目次

  • 第1章 Aim(目標設定)の法則
  • 第2章 Boarding(人員選定)の法則
  • 第3章 Communication(意思疎通)の法則
  • 第4章 Decision(意思決定)の法則
  • 第5章 Engagement(共感創造)の法則
  • 特別収録 チームの落とし穴
  • 最終章 私たちの運命を変えた[チームの法則]
  • 終わりに

チームを構成する5つの法則

本書では、良いチームを構成する法則として5つの柱を提示しています。図解すると以下の様なイメージです。

f:id:sadayoshi_tada:20190421224629p:plain

  • Aim : チームで共通の目的を設定する
  • Boarding : チームを構成するメンバーの選定
  • Communication : メンバーとの繋がり
  • Dicision : チームの方向性を決定する
  • Engagement : メンバーとチームとの結束

これら5つの法則に照らして自分の所属するチームを評価してみるのが本書のメインテーマになっています。

チームの目標設定にはメンバーのレベルと、コミットのレベルがキー

チームも何かを達成するために構成され、チームが達成する「共通の目的」を共有していればアクションを起こせます。本書では目的はチームのメンバーの行動や思考のレベルに応じて設定すると紹介しています。

  1. 自ら考え、行動できる人が多い: 理念やその理念に至るための成果を目的に設定
  2. 自ら考え、行動できる人が少ない : どんなアクションをするかを目的に設定

変化が多く、その変化に対応していく必要がある業界に身を置く場合は、「1」が合っている目的の設定方法だなと思います。また、筆者は目標設定のトレンドは OKR に移っており、「何故やるべきか、何をやるべきか」を明らかになればメンバーの行動に意義を与えられると述べています。確かに「WHY」が共有されていれば、行動の裏付けになって「共通の目的」を持って取り組めるので大切だと思いました。

文章に書いてませんでしたがもう一歩踏み込んでその目的を共有し、咀嚼することも必要かと思いました。目的を共有して終わりじゃなくて、それぞれが咀嚼して落とし込むことで、具体的なアクションをイメージできるほどになればチームの目標設定として効率的なのかと。

関連記事

www.kaonavi.jp

チームは入口と出口どちらを大切にするか

目的を達成するためのメンバーの人選は大切になります。会社でも採用やチームのメンバーの人選はそれぞれ方針あると思いますが、本書では「環境の変化度合い」と「人との関わり度合い」によって4つのパターンで分けています。前者はチームの外部の環境変化度合い、後者はメンバーの活動への他人への影響度合いです。

  • サッカー型 : 「環境の変化度合い」が大きい、「人との関わり度合い」も大きい
  • 野球型 : 「環境の変化度合い」が小さい、「人との関わり度合い」は大きい
  • 柔道団体型 : 「環境の変化度合い」が大きい、「人との関わり度合い」は小さい
  • 駅伝型 : 「環境の変化度合い」が小さい、「人との関わり度合い」も小さい

人選においてこだわるのは、上記の環境や人との関わり度合いで見た時に「入口」か「出口」と説明しています。つまり環境の変化や人との関わりが強いチームは、変化に応じて人の出入りをしやすくするため「出口」での人選をこだわり、逆は、「入口」で人選をこだわり長く固定メンバーで運営するよう体制を築くことを述べていました。

IT 業界の中でも僕の所属するクラウドの業界はホットな業界でかつ変化も激しく、色々なチームと関わるため、「出口」に拘った人選をした方が良いということになります。本書では環境の変化はチームから見て外に向いていましたが、チーム内や組織内の変化にも抵抗ない人、楽しめる人かは大切かと思います。外の変化の対応のために内のルールや体制、文化も変わることはあります。その変化に応じることができる人を選ぶ「入口」の人選にもある程度(例えば、文化へのマッチング等)重きを置かないと強いチームに成長していくのが難しいかと思います。

関連記事

入口」のオンボーディングに着目した記事で、各社のオンボーディング施作は参考になりました。

paiza.hatenablog.com

相互理解と心理的安全性の確保

人選が終わり、構成したチーム内でのコミュニケーションが個々が活躍しチームが躍進するために必要ですが、本書で特に共感できたのがメンバーとの「相互理解」と「心理的安全性の確保」です。

前者はメンバーが自分のことをリーダーは理解してくれていると思うことで、チーム内の動きがイキイキしてる人たちはリーダーやメンバーが互いを理解して、会話できる関係性が築けていることが多いと思います。また、「心理的安全性の確保」は自分を晒しても引かれない場があるかコミュニケーションの一番大切なことだと思います。自分の意見を言っても白けたり、貶されたりするような場では自分の意見を押さえ込んでいきますしね。

チームの決定事項へのメンバーのコミットメントまで考える

本書ではチームが目的達成のために行う決断する方法として3つの方法が紹介されています。以下の3つのうちどれがいいのかではなく、チームの特性に応じてメンバーの納得の程度が違うためチームの特性から決定手法を探る必要があります。

  • 独裁
  • 多数決
  • 合議

僕はいずれの決定手法によって決まったことに対してのメンバーのコミットメントにも着目した方が良いかと思いました。僕の会社では「Disagree and Commit」が大切にされています。リーダーの意見に対して違和感があれば異議を唱えて、決定されたらその決定事項にコミットするという考え方です。コミュニケーションの法則と被りますが、メンバーが意見できる機会を設けて好き勝手言うだけじゃなくて、その決定にチームのメンバーとしてコミットすることも決定事項の遂行において大切です。

参考記事

会社のキックオフ時に行った施作の記事です。

www.wantedly.com

Amazon の考え方にもありますね。

www.amazon.co.jp

エンゲージメントの方程式

チームのメンバーがイキイキ活動できるのは、チームの方針に対してメンバーが共感しているからです。本書ではその観点を4つにまとめています。次のいずれかに共感し、チームにジョインしているというのが筆者の意見です。

  • Philosophy : 理念・方針
  • Profession : 活動・成長
  • People : 人材・風土
  • Priviledge : 待遇・特権

また、これらの共感(モチベーション)の方程式があってユニークで、やりたい(目標) × やれる(目標達成のためのアクション) × やるべき(達成できない時のペナルティ) という式になるといいます。やりたいとやれるまではあってもやるべきまでを設定することで、メンバーに「当事者意識」を持って取り組めるという説明があり、確かに「当事者意識」を持って取り組んだことはモチベーションを高く維持できていたなーと JAWS DAYS のスタッフをやっていた時の経験で書いていました。チームにジョインした原点(オリジン)と、モチベーションを維持する「当事者意識」を持って関われるかは重要なファクターと言えます。

関連記事

sadayoshi-tada.hatenablog.com

まとめ

「THE TEAM 5つの法則」で紹介された法則に基づいて書評を書いてみました。この法則に沿って自分のチーム(組織)を見つめ直すきっかけをくれる本だと思います。僕も5つの法則に照らした見た時の自分のチームについてまとめたので、メンバーと色々ディスカッションしていくのが楽しみです。チームビルディングに関する指標の参考が欲しい方は一読されることをお勧めします。

機械学習開発のコーディングをサポートしてくれる「Kite」

タダです。

今回は、 機械学習Python コーディング補完ツール「Kite」について紹介します。

Kite とは

Kite」とは、統合開発環境と連携し、機械学習Python コード補完ツールです。 kite.com

統合開発環境としてサポートされているのは、Atom, Pycharm, Sublime, VS CodeVim になります。また、サポートされているのは記事記載時点で Windows 7以降と macOS 10.10以降がサポートされています。

https://help.kite.com/article/53-quickstart

統合開発環境との連携

普段は、VS Code を使っているので VS Code に連携してみます。プラグインは以下のリポジトリのものになります。

github.com

VS Code の画面からも検索可能なので、検索してインストールします。 f:id:sadayoshi_tada:20190420233058p:plain

実際にコーディングして試してみる

Kite」の良さはコーディング補完の側面ですので、実際に簡単なコードでコーディングしてみました。numpyライブラリをインポートしようとした時に、import numpy as np まで補完してくれました。いつもは自分でコーディングしていたことを先回りしてリストしてくれるのは嬉しいですね。

f:id:sadayoshi_tada:20190420234146p:plain

また、matplotlib で描画する際のメソッドもさくっと出してくれました。 f:id:sadayoshi_tada:20190420234339p:plain

簡単なコードですが、コード補完してもらうといつもより簡単にかけた印象です。描画もできています。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-1, 1)
y = np.sin(x)
plt.plot(x,y)

title = "kite"
filename = "kite.jpg"

plt.title(title)
plt.savefig(filename)

f:id:sadayoshi_tada:20190420234856j:plain

まとめ

Kite」について紹介させてもらいました。サポートされている統合開発環境を使っていて、かつ、機械学習Python でコーディングする時にサポートしてくれるツールとして試しに使ってみてもらって良いかと思いました。このツールを使って僕も機械学習のコーディングを頑張って行きます。

ノンコーディングで簡単に PWA アプリケーションを作れる「Glide」

タダです。

以前から気になっていた、Google スプレッドシートを使って PWA アプリケーションを開発できる「Glide」を使ってみたので紹介します。

Glide とは

Glide」は、 Google スプレッドシートを使って PWA アプリケーションをノンコーディングで作成できてしまうのが特徴のサービスです。この「Glide」を使ってオリジナルアプリケーションを作りました。

app.heyglide.com

ちなみに、PWA は プログレッシブウェブアプリの略称で、ブラウザ経由でスマホのアプリケーションを配信しているかの様なアプリケーションです。iOSAndroid は各種アプリケーションのストアからダウンロードする必要がありますが、 PWA では、ブラウザ経由で配信可能です。

自分のオリジナルアプリケーションを作ってみた

作ってみたアプリケーションは、以下のものです。気になる方は、使ってみて欲しいです!

fitnessmap.glideapp.io

今、減量中で食べられるものが限定されるのですが、外食する時って食べられるお店が限定されて困っていたので、自分や同じ様な境遇の人の為になるかなと思って以下のアプリケーションを作りました。現状、筋肉食堂のみしか情報載ってないですがw 今後随時更新をかけていこうと思っています。でも、こうやってオープンに自分のアプリケーションを公開したのは数少ないので感慨深いです。

アプリケーションの作り方

詳しい解説は、下記の参考記事に画像付きで解説されている為見てもらうとわかりますが、本当に簡単です。

参考記事

paiza.hatenablog.com

大きな工程として3ステップです。

  1. Google スプレッドシートにアプリケーションに必要な情報をまとめる
  2. Glide」で Google スプレッドシートにアクセスさせてデータを読み込ませる
  3. Glide」でアプリケーションの見た目の設定を行う

作ってみたアプリケーションの画面を確認してみます。こちらがトップページになります。 f:id:sadayoshi_tada:20190417220318j:plain

店舗の詳細を確認するとお店の情報として URL と地図が表示させてみました。あと、コメントも書き込める様にもしています。 f:id:sadayoshi_tada:20190417220410j:plain

まとめ

今回は、ノンコーディングで PWA アプリケーションを作れる「Glide」の紹介でした。簡単に情報をまとめてアプリケーションを配信したりが気楽にできますし、何よりこのスピード感を持って公開できるのが好きです。アプリケーションの性質にも寄ると思いますが、気になる方は試してみるのはいかがでしょうか?

技術書典で販売される「Pragmatic Terraform on AWS」のサンプル本を読んだ

タダです。

明日、技術書典6が開催されます。技術同人誌のお祭りで、企業から個人やサークルまで様々な技術本を低価格で買うことができるのが特徴です。

techbookfest.org

今回もいろいろなテーマの本が出される様なんですが、絶対買いたいと思っている「Pragmatic Terraform on AWS」のサンプル版が公開されていたので、読んでみた所感を書いていきます。

nekopunch.hatenablog.com

kosmos.booth.pm

本書の概要

本書は、タイトルにある様に AWS のシステムを構成するツールとして Terraform を使います。しかも、 ECSFargate などのコンテナオーケストレーションサービスの設計にも触れられているという点が個人的に気になっている点です。

『Pragmatic Terraform on AWS』では、Terraformを使ってAWS上にシステムを構築するノウハウを紹介します。ECS Fargateなどのマネージドサービスを中心にアーキテクチャ設計を行い、Terraformで実装します。

本書の章立て

本書は以下の章立てになっているのですが、22章まである大ボリュームな内容になっています。 Terraform を AWS で使って実装する書籍としてここまで体系的に解説してくださっているのは初めてなんじゃないかなと思います。

  • 1章 はじめに
  • 2章 インストール
  • 3章 Terraformの基本
  • 4章 全体設計
  • 5章 権限管理
  • 6章 ストレージ
  • 7章 ネットワーク
  • 8章 ロードバランサとDNS
  • 9章 コンテナオーケストレーション
  • 10章 バッチ
  • 11章 鍵管理
  • 12章 設定管理
  • 13章 データストア
  • 14章 デプロイメントパイプライン
  • 15章 SSHレスオペレーション
  • 16章 ロギング
  • 17章 構造化
  • 18章 Terraformベストプラクティス
  • 19章 AWSベストプラクティス
  • 20章 モジュール設計
  • 21章 落ち穂拾い
  • 22章 巨人の肩の上に乗る
  • あとがき

本書で得られる情報

  • Terraform の HCL2 に対応していること
  • 100以上の豊富なサンプルコード
  • 多様なサービスを網羅
    • ECS Fargate、CodePipeline、Session Manager、Kinesis Data Firehose、ALB、RDSなどなど
  • Terraformの設計に関する知見を凝縮

サンプル本を読んだ所感

サンプル本を読んでみての所感を箇条書きでまとめていきます。

  • Terraform の基本的な TF ファイルの作成、テスト、適用をさらえる
  • 本書で扱うシステムアーキテクチャとしては、HTTPS でアクセスする Web サービスでアプリケーションをコンテナで動かす
    • アプリケーションの設定管理は運用負担をなくすためマネージドサービスで実装、CI / CD、ログの保管と検索の仕組みも行う、構築と運用も参考にできる情報が揃っている
  • 本書で特徴の1つであるコンテナサービスの ECS の解説が非常にわかりやすい
    • ECS の構成要素である ECS クラスタ、タスク定義、タスク、コンテナの図解
    • 実際にコンテナを作ってみて ECS を Terrform で実装を通してコンポーネントのパラメータを理解可能
  • 最新サービスである、Session Manager 等に触れられており、AWS のアップデートに合った設計を学べる
  • Terraform の設計ポイントを学び、プロダクション運用を考えた参考情報が揃っている
    • サンプル本では20章が途中までになっているので製品版で早く読みたい...!

サンプル本を読んだだけだけですが、 Terraform の使い方から AWSアーキテクチャ、Terraform のコードやファイルをどうプロダクションで管理、運用していくかまで網羅的に記載している印象です。普段は CloudFormation を使っていますが、Infrastructure as Code のツールとして Terraform も個人的に使える様になりたいので早く製品版を買って読みたいという気持ちになりました。

まとめ

今回は技術書典6で発売される「Pragmatic Terraform on AWS」の紹介とサンプル本を読んでの所感をまとめました。

最後に、明日からイベントが始まりますが、午前中は入場料が必要など初めて参加される方向けに参考記事を載せます。

参考記事

技術書典6っていつ?どこでやるの?何時にいけばいいの?混むの?」 : 技術書典6から初めていく方向けの記事です。結構並ぶのでその辺の情報も知ることができますw

note.mu