taisablog

taisa's engineer blog

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-12-15-20-42-52

投稿日:

-

執筆者:

関連記事

スクラムの取り組み紹介

スクラムを初めて約3ヶ月がたったので取り組み内容を簡単にまとめてみました。 参考にした文献 SCRUM BOOT CAMP THE BOOK Amazonより スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス (WEB+DB PRESS plus) Amazonより ジョイ・インク 役職も部署もない全員主役のマネジメント Speakerdeck:スクラムの取り組み 参考書籍 SCRUM BOOT CAMP THE BOOK Amazonより スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス (WEB+DB PRESS plus) Amazonより ジョイ・インク 役職も部署もない全員主役のマネジメント

no image

2016年の振り返り

2017年になってもう3ヶ月が過ぎようとしているけど、今年初投稿なので今更ながら2016年の振り返りをする。 2016年前半 2016年前半はWeb業界に来て初めてWebサービスの受託開発をした。5年前にSIerからWeb業界に来て以来初めての受託開発だった。プロジェクト前半は若手エンジニア2人いたが、色々な都合により後半は自分1人になりそこからは1人最後までやることになった。 SIerにいた頃、小さめのプロジェクトであれば自分一人でやることはあったが、今回のような大きめのプロジェクトで0→1のサービス開発をマネージメントしながら開発するというのは初めてだった。ローンチ後は何事もなく稼働しているのでよくやったと思えたもののWebサービスの受託開発の難しさを思い知った。 Laravelについて 開発はPHP+Laravelを使った。初めて使ったフレームワークだったが、日本語ドキュメントがしっかりしているのでほぼそれだけで開発を進めることができた。 https://readouble.com/laravel/5.1/ja/installation.html 主なプラグインは以下を使った。 laravel-debugbar laravel-ide-helper Intellij Laravel-Plugin 2016年後半 サービス開発に戻り、戻ってからは主に以下のことをやった。 決済システム導入 CI環境の再整備 ステージング環境の整備と追加 PHPUnit+Phakeによるユニットテストの本格導入 サーバのオートスケール 決済システム導入 これは、受託開発が都合により伸びた為、設計までして他のメンバーに引き継ぐすることになってしまったが、その後、また引き継ぎ開発を進めていった。「決済」といったシステムを扱ったことで良い経験ができたように思う。 CI環境の再整備 サービスの拡大、人の入れ替わり、増加により以前自分で立てたJenkinsのCI環境が整備されずひどい状況になりつつあったので整備した。Jenkins2へのバージョンアップもこのタイミングで行った。 ステージング環境の整備と追加 人員に対してステージング環境があきらかに枯渇していたので再整備と追加をした。具体的にはシステムだけでなく運用者もリリース前テストで利用する為、ステージング環境利用待ちのようなものが発生している状況だった。また、いくつかのサービスがつながっていることもあり環境がブラックボックス化していたのを再構築しドキュメント化しつつ環境を増やした。テスト環境大事。 PHPUnit+Phakeによるユニットテストの本格導入 UnitTestも以前は書くよう推奨していたが形骸化している状況だった。また、新卒メンバーが入ってそもそもテストが書けないメンバーもいる状況だった。これに対して、ハンズオンを開催しある程度書けるところまで持っていき、それ以降はプロダクト開発時にフォローするという形で最終的にはメンバー全員が必ずUnitTestを書くというところまで持っていくことができた。また、テストが増える従って、修正時の確認コストが減り品質が上がってきている実感が得られた。 サーバのオートスケール アクセスが増え、ときに突発的に高負荷が来るという事象が増えてきて、その度にサーバをたて、デプロイスクリプトに新しいサーバを追加しデプロイするということをやっていた。それもいい加減面倒だし事前アナウンスがなければ対応ができないので、常にS3に最新ソースを配置しておき、あとは負荷検知により自動的にサーバを増やすという仕組みを導入した。 社外活動とアウトプット 2015年末に子供が生まれたことと2016年の前半の受託開発に忙殺されたことで全くできなかった。2017年は落ち着いて来たこともあり活動を増やす予定。 まとめ 2016年後半の取り組みに関しては、2017年から始めるスクラムの取り組みの為の下準備という意味合いもあり、テストや環境系の整備をメインに行った。これにより2017年からの取り組みをスムーズに始められたと思う。

no image

2017年の振り返り

2017年も残りわずかとなったので年を越してしまう前に振り返る。結論から言うと今年は近年稀に見るいい年になった。というのも今年立てた目標や中長期的に立てていた目標を達成することができたから。今年立てた目標はこちら。これらの内容について簡単に振り返る。 2017年の抱負 2017年になって1Qが終わろうとしているけど、年末に考えた2017年の抱負を書こうと思う。 2017年の抱負 いろんなことはできないので3つ+サブ目標で考えた。 生産性 ビックデータ ビジネス・インテリジェンス サブ目標 フロントエンド 英語 生産性 これまでも開発の生産性を意識した活動をしてきたが、全員の開発効率アップ、品質アップのような守備的な活動が多かった。けど今年はスクラム体制にして攻撃的な面も加えていきたいと思う。 去年までの振り返り 去年までは2人1組のような小さなチームで開発し、できたらリリースするというサイクルで開発していたが、以下の問題が細かく積み重なってきていた。(サービスの規模がそういった状況に陥る状況にまで成長したとも言える。) マネージャーの管理コストが高い 要件定義して開発に仕事を振る側の負担が大きい 開発者が指示待ちになる 開発した機能が属人的になる 開発メンバーが他のメンバーが何をしているか把握できない(チーム感がない) 開発・営業・運用で足並みを揃えるのが難しい これらの問題を一気に解決する為に2017年からはスクラム体制で開発を進めることした。 スクラムのチーム構成 最初のスクラムチームの構成は以下の7人体制 プロダクトオーナー スクラムマスター(自分) 開発チーム デザイナー兼コーダー 中堅エンジニア 2~3年目のベトナムメンバー(2人) 新卒エンジニア スクラムを始めるあたり読んだ資料と書籍 Wikipedia まず最初に見たのがWikipedia。スクラム自体はある程度決まった型があるので、ここを見るだけでも大体の流れを確認することができた。また、スクラムガイドがリンクされているので合わせて読んだ(こちらも17ページ程)。 SCRUM BOOT CAMP THE BOOK 次に読んだのがこちら この本はスクラムについての概要はわかったけど実際どんな風に進めたらよいかが分からないという方におすすめ。実際の流れを漫画を交えて説明してるので読みやすいし一連のスクラムの流れがわかる。個人的にはスクラムガイドとこの本を読めばスクラムを開始できると思う。 スクラム実践入門 他の書籍も一応見ておこうと思って呼んだのがこちら 生産性 今年の大きな目標の柱として、生産性というのをあげていた。これまでも意識していたことではあるが今年は具体的にスクラムという取り組みを取り入れて実践した。生産性を意識する背景は、主に人口減少・人手不足などがある。とにかく時間をかけて仕事すれば結果がついてくるという時代ではなくなっている今、あたらめて生産性を意識して仕事することにした。結果的にはスクラムマスターとして約1年間スクラム開発をし、一定の成果を出すことができたと思う。スクラムがどんなものか、スクラムを導入するとどんな結果が得られるかが把握できたのでこれからに生かせる経験をすることができた。 ビッグデータ ビッグデータに関する知見はほぼ皆無に等しかったが、今年はAWSを利用してビッグデータに関するサービスをやろうと考えていた。そんな折ちょうどその文脈で新規サービスを立ち上げることになり約5ヶ月位かけてスクラム体制で開発をした。ビッグデータに関しては、AWSサミットに参加したことでどのようなアーキテクチャにすればよいかが考えられたのが大きかった。具体的にはデータレイクという手法を取り入れた。サービスについてもスクラム体制がなんとか機能してスケジュールを大きくはずすことはなかった。実際ビッグデータに関してはデータがたくさんたまるというところまではいけなかったが、それでも1年前にはまったくなかった経験と知見を得ることができた。 ビジネス・インテリジェンス ビジネス・インテリジェンスに関しては、ビッグデータとほぼ同様の文脈なので特記することはないが、ただビッグデータを扱うだけでなくしっかり示唆を出せるものをつくることができた。ただ、機械学習やデータサイエンスといったことを取り入れるところまでは至らなかったのでこれらは来年の主軸の目標にする。 フロントエンド フロントエンドは、今年ようやく本格的にモダンな技術を取り入れることを決意してチーム一丸となって脱jQueryを果たした。業務外でVueJS、React、Angularの勉強会などを行い最終的にはVueJSを採用した。VueJSでやったことをすべてjQueryでやってたらめっちゃ大変な上にサービスの更新も大変だっただろうと思う。本当に導入できてよかった。 英語 英語までは絶対手が回らないだろうと思ってサブ目標にしていたが、案の定英語は他と比べると一番手をつけることができなかった。ただ、2017年の目標は以下の2つだったのでこれについてはしっかり達成することができた。そして2018年は2017年よりも時間を割いて、英語を少しでも楽に使えるようにしたいと考えている。 英語の勉強をするというよりは英語を使う環境に身をおける状態にする 英語の技術系podcastを聞く まとめ ここに書いていない中長期的に立てていた目標も今年で達成することができたので総じて2017年は良い年になった。無理に目標を立てすぎないというのがよかったのだと思う。自分の体調やキャパを考えるとできることはどうしても限られてしまうのでその中でできることを来年も考えてやっていこうと思う。

「slideship Tech Dive vol.1 フロントエンド特集」でLTしてきた

connpassリンク slideship Tech Dive v1.0 #React / ReactVR / #VueJs Webフロントエンド特集 「slideship Tech Dive v1.0 #React / ReactVR / #VueJs Webフロントエンド特集」でLTしてきた。タイムテーブルは、メインセッションがVue、ReactVR、React SPAになっていてその後LT4本で親睦会という構成。自分は「フロントエンド速習コース」というタイトルでLTをさせてもらった。 slideshipって何? markdownで手軽にスライドがつくれちゃうサービスでコードシンタックスハイライトを自動でやってくれたりPDFに変換してくれたりする。今回LTするにあたって前日までラフなマークダウン文章しかなかったけど早くスライド作らなきゃっていう焦りがなかったので気分的に非常に楽だった。 slideship.com トークスライド (すべてslideshipでできてる) Vue.js 効果的だった事例から見る利点と特徴 橋本 安司さん @yellow844 これが大事↓ 「単一ファイルコンポーネントで『テンプレート、ロジック、スタイル』の関心を分離させる記述になっており、ファイル分割してより疎な状態に出来る。更にテンプレートやスタイルのテンプレート言語・CSSプリプロセッサを選択できる。」 ReactVR でつくるサーバ連動型インタラクティブ VR 原 一浩さん @kara_d 「s7は爆発の危険がある」に笑った。 React SPA における OGP への挑戦 池内 孝啓 @iktakahiro サーバサイドレンダリングはしないぞ!っていうこだわりが感じられた LT PATENTS問題とfast-asyncについて 石井 直矢さん @kaidempa OSSのライセンスのお話 フロントエンド速習コース @taisa831 3ヶ月でフロントエンドを一気にキャッチアップした時にやったことを紹介した。 書籍プレゼント企画 サーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービス こちらの書籍の監訳者の吉田 真吾さん @yoshidashingo じゃんけん大会で書籍はゲットできなかったけどこの書籍はオライリーの電子版で購入した。タイトル見て発売したら速攻買おうと思ってたけどReal World Httpに先に手出してたので買えてなかった。 RxJSコトハジメ @massa142 RxJS良さそう。マーブルテスト楽しそう。 勉強会風景 まとめ ちょうどフロントエンドのキャッチアップをしていたのでとても良い機会になった。トーク内容もいろいろあってとても楽しめ。次回も楽しみ。

コーチング入門 オススメコーチング書籍3冊!!

これまで特別意識してこなかったコーチングについて意識する機会があったのでオススメしてもらった3冊を読みました。学びがあったこととその感覚の定着の為にメモしておきます。 コーチング・マネジメント―人と組織のハイパフォーマンスをつくる この1冊ですべてわかる 新版 コーチングの基本 0秒リーダーシップ:「これからの世界」で圧倒的な成果を上げる仕事術 背景 大学を卒業してソフトウェアエンジニアになり、いちエンジニアからチームリーダー、テックリード、マネージャー、スタートアップのCTOを経験してきました。その中でチームマネージメントや1on1などもやってきました。ただこれまでやってきたことは自分の経験であったり周囲との関わりで得たものをベースに自分なりに考えてやっていました。 そして今、新しい環境(スタートアップ)にジョインしたところ、今の環境には1on1(コーチング)を積極的に進めているエンジニアがいました。そしてそれはこれまで半ばやらされている感じでやっていた1on1とは印象が違いました。そこでもれなく自分もコーチングをしてもらうようになったわけですが、そのコミュニケーションの中でこれまでの自分の活動を振り返ってみると自分が今「コーチング」に興味があることが分かりました(年齢的なこともあると思います)。「マネージメント」と聞くとちょっと抵抗感があるけど「コーチング」と聞くと抵抗感がないという不思議さもあります。そんなこんなでオススメしてもらった書籍を読み、体系的に学びを得た上で、今後の活動に活かそうと思います。 1冊目 コーチング・マネジメント―人と組織のハイパフォーマンスをつくる コーチング・マネジメント―人と組織のハイパフォーマンスをつくる 書評 2002年に出版された本なので今から約20年程前の本ですが、読んでいても時間の経過による内容のずれなどは全く気になりません。前半から後半にかけては、コーチングの基本・詳細と進んでいき最後の方にはコーチングを導入するにあたってのチェックリストがあるといった構成になっています。中でも一番の要点は、「コーチング・フロー」と「いかに聞くのか?」ということだと思います。「コーチング・フロー」は次のとおりです。 現状の明確化 望ましい状態の明確化 ギャップを引き起こしている理由と背景の発見 行動計画を立てる フォロー これだけ見ると当たり前のようですが、これを実際に実践する・させる為に「いかに聞くのか?」というスキルが求められます。本の中ではそのコミュニケーションへのアプローチの方法やコミュニケーションが如何に大事かが書かれています。やり方や捉え方によっては詰めているようにも感じられそうな程の質問攻めですがそこのバランスが重要なポイントになるかと思います。 2冊目 この1冊ですべてわかる 新版 コーチングの基本 この1冊ですべてわかる 新版 コーチングの基本 書評 2009年に出版された書籍の新版(2019年)です。この本は「コーチング・マネジメント」より詳細に具体的にコーチングについて書かれています。後半では実例による説明もあります。目次がパッと見分かりやすかったので記載しておきます。 1章 コーチングとは何か 2章 コーチのもつべき視点 3章 コーチングの3原則 4章 コーチング・プロセス 5章 コーチングのスキルと実践例 6章 組織へのコーチング 本書でも4章で「コーチング・プロセス」とし「コーチング・マネジメント」の「コーチング・フロー」が書かれています。本書で特筆すべきは「コーチが持つべき3つの視点」として以下の3つ(PBPの視点)について言及されていることです。これらは三角形となりそれぞれ相互に作用しているようです。 Possesion(身につけるもの) Behavior(行動) Presence(考え方、信念) 全体的に図が多く具体的に書かれているので「コーチング・マネジメント」と合わせて読むとより理解が深まると思います。 3冊目 0秒リーダーシップ:「これからの世界」で圧倒的な成果を上げる仕事術 0秒リーダーシップ:「これからの世界」で圧倒的な成果を上げる仕事術 書評 2016年に出版された本で、上記2冊と違い著者が外国人です。著者は日本に長年いながらも、グーグルやモルガン・スタンレーで人材開発を務めていたとあって外国から見た日本という視点がおもしろい点です。上記2冊と違いコーチングではなく、リーダーシップはこうあるべきということが書かれています。グーグルの話や、マインドフルネス、禅などの話も出てきます。コーチングという文脈ではないので上記2冊+αな気持ちで読むとよいかもしれません。 本書で気になったワード 僕はよく英語で、「Leadership is mobilzing people to tackle tough problems.(リーダーシップとは、難問に取り組むために人々を動かしていくこと)」という定義を用います。 Learn, Relearn, Unlearn 学ぶことは大事だが、ただ知識を増やす(Learn)だけではなく、学び直す(relearn)の必要があります。完全に時代遅れになった考え方、価値観や信念は手放す(unlearn)べきです。