およそ15年所属したSIerを退職します

はじめに

新卒で入社したSIerを退職します。およそ15年働きました。11/09が最終出社日で12/15が退職日となります。

15年はいろいろありましたが、自分はとても良い上司やメンバーに比較的恵まれ、いろいろな事に挑戦できた日々でした。

 

なぜ辞めるのか

そんな中、なぜ辞めるのかといろいろな人にも聞かれましたが、1番の理由は「会社が目指す方向と自分がやりたい事のギャップが大きくなったから」だと思います。

 特に自分としては、「アジャイルな開発スタイル」、「様々なプロジェクトを同じメンバーで成長しながら」でやっていきたいのですが、会社が目指すビジネスモデルとは合わないようで、ここ最近はなかなか納得できる形で仕事ができず、ストレスを抱えていた気がします。

 

特にアジャイルに関しては、2011年にアジャイルサムライを読み、「こんな働き方をしてみたいという」思いに駆られ、その後、さまざまな本を読んだり社外のコニュニティや講習等に自主的に参加して、そこで得た知見を社内に展開するということをやっていました。

しかし、プロジェクト毎にチームが解散し、少しずつチームとして上手く行き始めたアジャイルな開発の進め方や、チームに蓄積したさまざまな経験が0に戻ってしまう、そしてまた最初からアジャイルについて説明し直したり、、、

そして自分の役割も変わっていきエンジニアとして開発をするというより、企画や要件定義を行い見積りや見積もり条件書を作成するといった仕事がメインになっていきました。*1

 

そんな中、協力会社という形で自分の会社に来ていた方から転職するという話しを聞きました。

内容としては「東京に本社がある会社の札幌拠点立ち上げ」「アジャイルで他社の継続的なシステム開発を支援する」「地方拠点でチームを作り、リモートで東京の他社を支援」というもの。

その話しを聞き、非常に面白そうで、「そんな会社に転職でき本当に良かったですね」と心から祝福していましたが、同時に「自分がなかなか実践できていないやりたいと思っていた開発スタイルをこれから実践していくんだな、羨ましいな」という感情もありました。

 

その人に「一緒にどうですか?」という感じで誘われもしましたが、自分の年齢やその他を考えた時に、すぐには回答できませんでした。

 

 

いろいろと迷いがある中、2冊の本に出会いました。

 

宇宙兄弟 「完璧なリーダー」は、もういらない。

宇宙兄弟 「完璧なリーダー」は、もういらない。

宇宙兄弟 「完璧なリーダー」は、もういらない。

 

 

転職の思考法

このまま今の会社にいていいのか?と一度でも思ったら読む 転職の思考法

このまま今の会社にいていいのか?と一度でも思ったら読む 転職の思考法

 

 

 完璧なリーダーは、もういらない。 の中で、宇宙兄弟シャロンの言葉を紹介している箇所

「頭で考えなきゃいいのよ、答えはもっと下」。そう言って胸に手を当てたあと、「“どっちが楽しいか”で決めなさい」と、笑顔で伝えました。

「どっちがより楽しいか」で決めたことは、その結果がどんな形であれ、受け入れることができるもの。 

という内容を見たとき、教えてもらった会社で札幌オフィスの立ち上げから、アジャイルな開発スタイルで働く自分を想像した時に、すごくワクワクしました。

 

転職の思考法では、全体的に非常に良い内容で、仕事に対する考え方を改めて考えさせられましたが、特に「100%失敗を招く唯一の条件は、腹を括るべきタイミングで覚悟を決められない」が自分の状況を考えた時に非常にしっくり来ました。

 

そこで、転職について妻に相談し「自分がやりたいと思うのがあるのであれば、やってみたら」と言われたことで、吹っ切ることができました。

 

これから

12月中旬から新しい会社で働きます。詳細は入社後に書こうと思ってますが、どこまで自分ができるのか、新しいことに挑戦できるということが今は非常の楽しみです。

 

また、twitterにも書きましたが、「アジャイル」と「リモートワーク」を軸に社内・社外問わずいろいろな活動をしていきたいと考えています。

 

 

これまで、社外での活動は限定的だったので上手くできないと思いますが、少しずついろいろな事に挑戦しつつ、自分の想いや経験をできるかぎり発信していきたいと思っています。

 今まで関わりのあった方も、これから関わる方も、どうぞよろしくお願いします!

 

*1:会社の仕事の取り方やビジネスモデルを考えると仕方がないことだという思いもあるのでどちらが正しいかというより、自分の考え方とのギャップだと思っています

テスト設計コンテスト チュートリアルに参加しました

はじめに

10月26日に【U-30クラス】テスト設計コンテスト'19 北海道チュートリアルに参加しました。 aster.connpass.com

 

目的

コンテストに参加する予定はありませんでしたが、テスト設計を体系的に学んだ事がなかったので良い機会だと思ったのと、先週に行ったイベント で社外に出てみたいという雰囲気が他メンバーにあったので、このタイミングで連れ出そう!という事で参加しました。

 

内容

下記の内容を説明した「【U-30クラス】テスト設計コンテスト'19 東京チュートリアル」のビデオ上映で行われました。

http://aster.or.jp/business/contest/doc/2019_U-30_V1.0.0%20.pdf http://aster.or.jp/business/contest/doc/2019_U-30_V1.0.0%20.pdf

感想

これまで、社内等で体系立ててテスト設計について学ぶ機会がなかったので、非常に参考になりとても有意義な勉強会でした。

特に自分の中で有意義だったポイント

  • どんなテストをするのかを利害関係者とコンセンサスを得ることが重要。そのためにはテストを説明できる必要がある。 → 社内ではバグ0を目指すとか言われていましたがそれは無理。。でもなぜ無理なのか、どうするべきなのかがこの話しを聞きイメージできた。

  • テストは情報提供が価値 → どこまでをテストして、どういう価値基準でそのテストを行ったのかまでを含めて情報提供をすることが大事だと改めて意識できた。

  • テストを開発する → テスト設計についても開発と同様に捉える。今まで考えてもいなかったことだったので衝撃だった。

  • よく知られているテスト技法を考えるまでに行うことは沢山ある → これまで無意識的にやっていたテストの分類の仕方などにきちんと名前をつけられており、比較的理解しやすかった。

全体を通して

これまである意味適当に行っていたテスト設計の奥深さを知ることができた勉強会でした。

若干、要求設計・アーキテクチャ設計・詳細設計・テスト実施 という流れがウォーターフォールに近い感じがするので、アジャイルで1週間単位のスプリントなどをやろうとした場合には少し重すぎる印象はありましたが、 知っていて損はない内容だと感じました。

特に、テストの粒度をあらかじめ定義しお客さんと合意をしておく必要があるというのはとても参考になりました。

テスト設計についてはこれまで、あまり意識的に勉強をしてこなかった分野ですが、自分が知っていた内容と大きく変わっていることを知ることができ非常に楽しく、また奥深さを学ぶことができたので、今後意識して学習していこうと思える勉強会でした。

その他

勉強会の開催を前日に知ったので、社内での告知が遅くなりましたが、優秀な後輩を一人、初社外勉強会に連れ出せたので別の意味で参加してよかったです(笑)

社内カイゼンジャーニー読書会 クロージングイベント

はじめに

10/19(金)に社内カイゼンジャーニー読書会 クロージングイベントを開催しました。

このイベントではカイゼン・ジャーニー著者の一人である市谷さんを、札幌の弊社オフィスにお招きし講演を行って頂きました。

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

自分の想い

カイゼン・ジャーニーの読書会を社内で始めようと思った時から、著者の方々をお招きしようと考えていました*1

その考えは、カイゼン・ジャーニーで石神さんを招いてのイベントとダブらせたかったということもありましたが、

  • 社外の勉強会に参加したことががない人達に、行動すれば著者にも会えることを知ってもらいたい
  • 本を出すような方の熱いパワーに触れることが出来る
  • 著者と会い話しをすることで、本の内容を一段深く理解することが出来る

と考えていたからです。

特に、自分自身が経験した「札幌にいても、本を書くような雲の上の人と会うことが出来る」という感動を社内の人にも知ってもらいたいというのが一番の想いでした。

終わってみて

自分が他の人に「何か伝えることができれば」と思って読書会からクロージングイベントを企画・開催しましたが、終わってみると自分自身が得るものが非常に多かったです。

ゼロから1を作るのに自分の力だけでは敵わないという学び、自分の拙い企画に賛同してくれる人達の心強さ、一緒に作り上げた感動、などなど・・・

今回のイベントが自分にとっての新たな節目になりそうな、そんな日でした。

参加してくれた人達もきっと何か得るものがあったはず。

やってよかった!

*1:自分の力不足で新井さんをお招きすることができなかったことだけが非常に悔やまれます。。

社内カイゼンジャーニー読書会 読了

はじめに

社内の読書会で無事、カイゼン・ジャーニーを読了しました。

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

上司から快諾を得られ(※)、業務時間で読書会に参加していない人たちも含めてのクロージングイベントを行うため、 まだ完全に終わったわけではないのですが、一通り読み終えることができた勢いに任せて、いまの気持ちを書いておきます。

※因みにその上司との会話

考察

これまで何度か社内の読書会を開催していましたが、業務が忙しくなるに伴い失速してしまい最後まで完全に終えることができていませんでした。   今回はメンバーにも恵まれたところもあると思いますが、なぜ読書会をやり切ることができたのかをちょっと考えて見ます。

なぜ最後までできたのか

自分の完全に主観でしかないですが、以下の点で今回はうまく出来たと考えています

  • 普段、技術書などを読む習慣のない人でもカイゼン・ジャーニーは読みやすい
  • お昼ご飯を食べながらにしたので、業務が忙しくても参加しやすかった
  • 読書会の告知や司会進行などを積極的にメンバーに一緒にやってもらい、自分たちの読書会という雰囲気を作れた
  • クロージングイベントの企画でメンバーのモチベーションが保たれた

今後

クロージングイベントに向けて、あと2回ほどで読書会全体のふりかえりをやる予定です。 その際にメンバーからどうして最後までできたのか、何がよかったかなど感想を聞いてみたいと思います。

最後に

いやー、一先ず読書会で1冊読み切ることができて一安心しました。
これもカイゼン・ジャーニーが非常に魅力的な著書だったことが何よりだったと思います。(これをきっかけに読書会が継続してできると嬉しいな!)

社内読書会をこれからやってみようと思う人がいれば、ぜひこの本を最初にやって見ることをオススメします(笑)

社内カイゼン・ジャーニー読書会で学んだインセプションデッキ の素振りをしてみた

はじめに

9/13に社内でカイゼン・ジャーニーの読書会の実践編ということで、インセプションデッキ の素振りをしました。

今回は前回の感想にも書いたように、参加者からぜひ読書会で学んだプラクティスを実践してみたいという提案を受けやることになったものです。

準備

普段通り、昼休みにご飯を食べながら行いました。 今回も10名強の人に集まってもらい、10分くらいでチーム分けと進め方を今回の発案者である後輩から説明してもらいました。

進め方は、時間があまり無いので、 「われわれはなぜここにいるのか」を作成するAチームと「エレベーターピッチ」を作成するBチームの2つに別け それぞれチームで30分程度で上記を作成。残り時間で作成したものを公開。という形。

テーマ

インセプションデッキ のテーマはメンバーで一番やりやすいということで、今やっている読書会についてにしました。

作成中

写真が載せられないのが残念ですが、各チーム全員で議論を繰り広げていました。 中にはご飯を食べ忘れて議論に集中している人も(笑)

作り方はチームごとに違い、Aチームは付箋を使い壁に貼りながら議論。Bチームは発案者が事前に準備した「エレベーターピッチ」のテンプレートに書き込みをしながら議論という形でした。

結果

時間がやはり足りなかったようで、もう少し詰めたいと言った感じもありましたが一応、発表できる形になりました。

「われわれはなぜここにいるのか」

  • 業務を超えて意見交換をしたい
  • ほかの人(社内+本の登場人物)の課題解決方法を知りたい
  • 仕事に活かしたい → ほかの人の課題解決方法を知り、仕事に活かす

「エレベーターピッチ」

知識をつけてカイゼン したい
自分たち・一緒に仕事している人 向けの
カイゼン・ジャーニー読書会 というプロダクトは、
働き方をカイゼンし実践につなげるための勉強会である。
これは、複数人で1冊の本を読み進め議論することができ、
一人で本を読むのとは違って、
情報共有し、即実践できる環境が備わっている。

感想

初めてにしては、まあまあ良くできた感じになったと参加者からの感想や、やって見てよかったとの感想もありました。
やはり素振りは大事ですね。

第4、5回 社内カイゼンジャーニー読書会

はじめに

8/24、8/31に、社内でカイゼン・ジャーニーの読書会を行いました。

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで

全員で読書会を行なっている感じを出したく、司会進行等もメンバーにやってもらうようにしていますが、思惑通りになってきて嬉しい限りです。

それぞれ持ち寄ったキーワード

第4回

  • 第13話 お互いの期待を明らかにする

    • 期待のギャップ
    • 「チームにおける期待」を合わせる
    • 互いの期待が合ってるチームがパフォーマンスを引き出し合える
    • ドラッカー風エクササイズ
    • コードを書ける人にコードを書かせる
  • 第14話 問題はありませんという問題

    • 「問題がない」が問題
    • 「問題は必ずある」という前提
    • ファイブフィンガー
    • がんばれば、やれるから、困ってない
    • こなし仕事
  • 第15話 チームとプロダクトオーナーの境界

    • 相手の仕事を理解
    • 全員で向き合うスプリントレビュー
    • 目的はユーザに価値を届けること
    • あらゆる品質が同程度に重要なのではない
    • 0-100ルール
    • 狩野モデル
    • リファインメント
  • 第16話 チームとリーダーの境界

    • ふりかえりとむきなおりの違い
    • むきなおりは進むべき先を捉えて現在を正す
    • 変わってしまったゴールを可視化

全体での議論を聞きながら個人的にメモした内容

  • どこのチームも期待マネジメントはできていなさそう
  • ドラッカー風エクササイズで自分ができることを言えないとは?
  • ファイブフィンガーをやってみたいという人は多そう
  • PO的な役割の人とチームにはなっていない
  • むきなおりは大事だと思っている人もいる
  • 合宿はみんなやって見たそうだけど敷居が高いイメージがある

第5回

  • 第17話 チームと新しいメンバーの境界

    • スキルマップ(星取表)

    • モブプログラミング(モブワーク、全員でコードを書く)

    • 育成力を向上

    • 育成する周囲の工数はあまり見込まれていない

    • 三種の神器

  • 第18話 チームのやり方を変える

    • カンバン
    • バリューストリームマップ
    • ECRS
    • 一人のヒーローはいらない。ヒーローはチーム。
  • 第19話 チームの解散

    • タイムラインの振り返り

    • 感謝のアクティビティ

    • 見える化が改善への第1歩

    • タックマン

    • くす玉

全体での議論を聞きながら個人的にメモした内容

  • 参加者がはじめて触れるプラクティスが多い印象
  • ペアプロがうまくいかなかった人が多い
  • モブプロはみんんやって見たい
  • メンバー育成は社内でうまくできていない印象をみんな持っている
  • 決まっているやり方をやめるということに驚きがあるようだ(決めたことは変えてはいけないと思っている?)
  • アジャイルをよく知らない人たちも本を読むことでイメージができているようだ
  • KPT以外のふりかえり手法があるのを知らなかった人は割と多い
  • 学んだプラクティスをやってみたいという気持ちが感じられる

感想

読書会の回数を重ねるにつれて、参加者それぞれが慣れてきたこともあり時間配分もだいぶうまくできるようになってきた感じがあります。

2章までを終え、プラクティスを知ることはできていますが、「難しそう」とか「ちょっとやって見たけどうまくできなかった」と言ったプラクティスもいろいろ出てきており 学ぶだけでなくやってみることは大事だなと感じています。

そんな中、参加者からもプラクティスをぜひ読書会の中でやってみようと声が上がり次回でやってみることになりました!

こういう意見を大事にしながらカイゼンジャーニーを読み切り、その後も読書会を継続的にできたるようにファシリテートして行こうと思いました。

Ruby on Rails チュートリアル 環境構築

背景

仕事では .net C# を主戦場にしていますが、他言語も学習してみよう! ということで Ruby を選択。 ついでに .net MVC が影響を受けている rails も一緒に学習してみることにしました。

Rubyの学習については、「プロを目指す人のためのRuby入門」を一通り終えている状態です。

https://railstutorial.jp/images/layout/logo.png?1304201481

目標

Ruby on Rails チュートリアルを一通りやって見るのを目標にします。

railstutorial.jp

今回の範囲

チュートリアルではCloud9を使用して開発していますが、今回は自分のPC(MacOS)に環境を構築し進めていきます。 また、巷ではRubyRailsをプロジェクト毎にバージョン管理する方が多いようなので、それもやって見ます。*1

環境構築

前提環境

rbenv

複数バージョンのrubyを簡単に切り替える環境を提供してくれるツールです。

参考サイト

rbenv を利用した Ruby 環境の構築 | DevelopersIO

rbenvとは?(rbenvを利用したRubyのインストール) - Qiita

rbenv + ruby-build はどうやって動いているのか - takatoshiono's blog

rbenvでrehashがいらなくなった – bgbgbg

rbenvインストール後、Rubyのインストール・切り替えを行います。

Rubyインストール

  • インストール可能なRubyのバージョンを調べる

「rbenv install --list」

rbenv install --list
Available versions:
      ・
      ・
  2.4.2
  2.4.3
  2.4.4
  2.5.0-dev
  2.5.0-preview1
  2.5.0-rc1
  2.5.0
  2.5.1
  • Rubyをインストール

「rbenv install <バージョン>」

rbenv install 2.4.4
  • 環境全体のRubyバージョン指定

「rbenv global <インストール済みバージョン>」

rbenv global 2.5.0
ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17]
$ cd rails-tutorial
$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17]
$ rbenv local 2.4.4
$ rbenv version                                                                                                                                                                                                                                                       
2.4.4 (set by /Users/user/Projects/ruby/study/rails-tutorial/.ruby-version)
$ ruby -v                                                                                                                                                                                                                                                             
ruby 2.4.4p296 (2018-03-28 revision 63013) [x86_64-darwin17]

bundler

Railsをプロジェクト毎にインストールするため、先にbundlerをインストールします。 rbenvを使っているのでコマンドは「rbenv exec gem install bundler」を実行。

※ bundlerは全体で使うのでグローバルインストール

$ rbenv exec gem install bundler                                                                                                                                                                                                                                      
Fetching: bundler-1.16.3.gem (100%)
Successfully installed bundler-1.16.3
Parsing documentation for bundler-1.16.3
Installing ri documentation for bundler-1.16.3
Done installing documentation for bundler after 4 seconds
1 gem installed

現在のrubyにインストールされたgemの一覧を調べる

$ rbenv exec gem list                                                                                                                                                                                                                                                 

*** LOCAL GEMS ***

bigdecimal (default: 1.3.2)
bundler (1.16.3)
io-console (default: 0.4.6)
json (default: 2.0.4)
openssl (default: 2.0.7)
psych (default: 2.2.2)
rdoc (default: 5.0.0)

参考サイト

Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで)(Macport編) - Qiita

Railsのローカルインストール

Railsをカレントディレクトリにインストールする まずはGemfileの作成と編集

$ cd rails-tutorial
$ bundle init
Writing new Gemfile to /Users/user/Projects/ruby/study/rails-tutorial/Gemfile
$ vim Gemfile
$ cat Gemfile                                                                                                                                                                                                                                                         
# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "rails", "5.1.4"  # ← ローカルに5.1.4(チュートリアルで使用しているバージョン)を指定

railsを vender/bundle ディレクトリ以下にインストール ( ls でGemfile.lock とvendorディレクトリが作成されたのを確認)

$ bundle install --path vendor/bundle
$ ls                                                                                                                                                                                                                                                                  
Gemfile      Gemfile.lock vendor

hello_app プロジェクトを作成

ようやくチュートリアルの「1.3 最初のアプリケーション」で使用するhello_appプロジェクトを作成します。 上記でインストールしたrailsを使用してプロジェクトを作成するため「bundle exec rails new」を実行します。 また「--skip-bundle」を指定してrails new 時に bundle install が発動しないようにします。

$ bundle exec rails new hello_app --skip-bundle
$ ls                                                                                                                                                                                                                                                                  
Gemfile      Gemfile.lock hello_app    vendor
$ cd hello_app
$ ls
Gemfile      README.md    Rakefile     app          bin          config       config.ru    db           lib          log          package.json public       test         tmp          vendor

最後に作成したプロジェクト内でgemのインストールを行います。
この時も「--path vendor/bundle」を付けてプロジェクト専用にgemをインストールします。
(この bundle install --path vendor/bundle で、再びrails(及び関連Gem)が今度はRailsプロジェクトの vender/bundle ディレクトリ以下にインストールされる)

$ bundle install --path vendor/bundle

rails server

bundle でrails をインストールしたので rails server は以下のコマンドで実行します。

$ bundle exec rails server

Heroku セットアップ

1.5 からデプロイ先として使用するHerokuの環境構築を行います。

$ brew install heroku/brew/heroku
$ heroku --version                                                                                                                                                                                                                                            [16:08:37]
heroku/7.7.10 darwin-x64 node-v10.7.0

以上

*1:結果としてこれが一番大変でした。