akms道東

ITイベント,勉強会への参加記録や趣味のことが書いてあるブログです.

インフラチームでペア作業始めてみて2週間たったので2回目のふりかえりをした

はじめに

前回は1週間目のふりかえりだったのでさらに2週間目の終わった時点でのふりかえりです。

ふりかえり

前回と同様に良かったこと、悪かったこと、改善したいことで上げてみました。

良かったこと

  • AWS慣れてきた

悪かったこと

  • とくに無し

改善したいこと

  • とくに無し

感想

作業内容的に1週目の作業の続きだったので特にこれといって悪かったこと、改善したいことは出なかったという感じです。

ふりかえり方法が簡易なものなので、このふりかえり自体を改善する必要はありそうだなと思いました。

現在の作業では主にAWSを利用した仕組みの構築を行っているのですが、その中で「AWSが意外と複雑だった(認証権限やサービス間の連携など)」や「いきなり応用編のような使い方だったのでついていくのがギリギリだった」などの感想もいただきました。

AWSの基礎知識についてもこのペア作業で、できる限り共有しているつもりだったのですが、まだまだのようなのでこれは個人的には改善していきたいことだなと思いました。

またインフラチームではプログラミング能力の差が大きくコードを書く必要がある箇所に関して、現状ペアで進めるのは難しいということもあります。

時間があれば最初から最後まですべてペアで進めたいところですが、まだまだ検証期間であり確保できる時間が少ないので上記のようなコードを書くなど部分的には個人タスクになってしまっています。

今後は別施策として、チームのプログラミング能力が上がるような施策を実施していこうと考えています。

おわりに

チーム全体で始めて2週間が終わり、まだペア作業をやめたペアもないのでこのままチームに定着していくと良いなと思っています。

また月末にはチーム全体でのふりかえりがあるので次回はそのふりかえり実施後にブログにまとめようと思います。

DataPipelineでTaskRunnerを利用したい場合の忘備録

はじめに

AWSのDataPipelineでTaskRunnerを利用したい場合に必要なセットアップについて自分用メモ。

TaskRunnerを実行するインスタンスはOSがubuntuだったので今回はubuntuで設定した内容です。

ubuntu環境へのTaskRunnerの設定

  • Javaのインストール
    • sudo apt install default-jre
  • インストールされたjavaのバージョン確認(open jdk が1.6以降か確認)
    • java -version
  • taskrunnerをダウンロードする
    • wget https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/software/latest/TaskRunner/TaskRunner-1.0.jar
  • mysql-connerctor-java-bin.jarをダウンロードする
    • wget https://s3.amazonaws.com/datapipeline-prod-us-east-1/software/latest/TaskRunner/mysql-connector-java-bin.jar
  • taskrunnerを実行するインスタンスに対してIAMロールを付与する
    • IAMロールに着けるポリシーは下記のAWSが用意しているものを付与
      • AmazonEC2RoleforDataPipelineRole
      • 他に必要なものは適宜付与
  • datapipeline側の設定変更
    • Activityの設定で、runsOnの設定ではなくworkerGroupを設定する。runsOnの設定がある場合、workerGroupの設定があっても無視される
    • workerGroupの値はstringであれば rds-to-s3やwg-123dafasfdの形式で問題ない
  • DataNodeの設定でも同様にworkerGroupを設定する
  • 設定完了後はアクティベートせずに先に下記を実施する
    • taskrunnerを起動する
      • java -jar TaskRunner-1.0.jar --workerGroup=先に指定したworkerGroup名 --region=実行するタスクをプルする対象のサービスリージョン(基本的に日本だと思うのでap-northeast-1) --logUri=s3://taskrunnerの実行ログを置くpath &
    • 行末につけた&はあってもなくても大丈夫。ただバックグラウンドで起動しておきたかったのでつけただけ
  • 最後にdatapipelineをアクティベートして動作していることを確認した

注意点

今回はホームディレクトリに直接両方ともダウンロードして試したが問題なく実行できた。 ただし公式のドキュメントの環境設定手順をみるとディレクトリを作成して、ファイルをダウンロードする必要があるらしい。

バックグラウンドでTaskRunnerを起動しておいて、1時間に1回実行するDataPipelineの検証していると3回目の実行時点でTaskRunnerのプロセスがいなくなっていたので、ここら辺はプロセスのデーモン化やプロセスの監視など何かしら対策が必要そう。

おわりに

基本的はこちらの公式ドキュメントを参考に実施しました。

ただし必要なファイルのダウンロード元のリンクについては変更されていた模様。

公式ドキュメントのリンク先飛んでもリダイレクトされて目的のページにたどり着けなかった。。。 DataPipelineを使うケースは今後ほとんどないかもですが、念のための忘備録でした。

インフラチームでペア作業始めてみて1週間たったのでふりかえりをした

はじめに

前回のあらすじは下記リンクの通り

始めて1週間たったのでふりかえりをしてみました。 今回は私とペアだった人と2人での振り返りでした。 チーム全体での振り返りは月一回のふりかえり会で実施予定です。

ふりかえり

今回はとくにふりかえり手法などを取らずに、良かったこと、悪かったこと、改善したいことをお互いに話し合っていきました。 その中でいくつかピックアップして下記にまとめました。

良かったこと
  • タスクに必要な技術の知識で足りないところを補えた
  • ペアで作業をするコミュニケーションについて負担はとくになかった
悪かったこと
  • 図を描いたりして視覚的に共有できるツールが最初はなかった
改善したいこと
  • 長い時間で作業する場合は適度に休憩をとる
    • 1時間に1回10分のペースで休憩をとる

感想

振り返りからの個人的な感想ですが、ペア作業でコミュニケーションを取りながら進めることが負担だと思う人もいるので不安でした。しかし今回ペアを組んだメンバーにはそれがなかった点が一番ホッとしました。 また図を描くなどの視覚的に共有することについては現在、ノートとペンで解消しましたが、今後はnuboardを導入してみるのもありかなと思っています。

また現在は知識量に差があるので、ドライバーは生徒、ナビは教師のような役割で作業になってしまっているので、今後進むにつれてこれもタイムボックスなどで交代するようにしてみるなど試したいと思います。

おわりに

まだまだ始めて1週間ですが、ふりかえり含めて無事に進めているので週次での振り返りや月次でのチーム全体での振り返りなどを参考にしながらどんどん改善して進めていければと考えています。

インフラチームでペア作業を始めてみた

はじめに

現在Joy,Incという書籍の読書会を社内で開催しています。 読書会の内容については下記記事にまとまっています。 takubon.hatenablog.com

この書籍の中でプログラム以外もペアで作業して進めているということの紹介があり、読書会でディスカッションをしている中でインフラチームで試してみるとよいのではないかとなりました。

課題

業務内容によってはペアで作業を行うこともありましたが、普段はメンバー各々がタスクを取ってやるという進め方です。 進め方としては特に問題はなかったのですが、各メンバーの得意なことや知識領域についてばらつきがあり、それを補うためにもチーム内での知見の共有も月一で行っていました。 しかしどちらかというと話を聴くだけの会になってしまっています。

そこでJoy,Incの中であるようにより学習のスピードをあげて、手を動かしながらお互いの知見を共有しあいながら、タスクを進めることができれば個人の成長もそうですが、もっとチームとして成果を出せるようになるのではと考えてチームに提案してみました。

進め方

現在はまだ始めたばかりなので、今後さらに改善が必要だと考えていますが、現在は以下のように進めています。

  • ペアは固定せず、タスク毎
  • タスクは1週間単位で計画して進める
  • まず担当するタスクを決める
  • お互いに1週間でタスクに出せる時間を決める
    • 出せる時間が少ない方に合わせる
  • それぞれタスクを細分化して、どれくらい時間が必要か見積もる
  • 見積もった時間から1週間にタスクに出せる時間分を取る
  • スケジュールにタスクを登録して実際にペアで作業を進める
  • 1週間終了後の振り返り(現在はまだはじめて1週間たっていないので予定)

始めてみて

まだまだ始めて1週間もたっていませんが、感覚としては良さそうな空気感なので継続してできるのではと感じています。 個人的にはペアプロで学びながらタスクを進めていくことも体験しているので、この方法で続けていければと考えています。 もちろんまだすべてのタスクをペアでやっているわけではありません。進めていくなかでタスクの種類によって向き不向きがあるのかなとも思っています。

おわりに

今回は始めてみたということで記録に残しておこうと思い書いています。 今後、途中でやめたになるか、継続しているかここで報告できればと思います。

新装版 達人プログラマーとアジャイルプラクティスを読んだ

はじめに

約10か月ぶりの更新です。ラズパイのやってみたネタも更新する時間を見つけて書きたいのですが(下書きには保存してある)今回は最近読んだ本、読んでいる本についてです。

新装版 達人プログラマー

まずは新装版が出た「達人プログラマー」、技術書の歩き方勉強会でも取り上げられていました。

今まで読んだことがなかったのですが、新装版が出たということで購入しました。 内容については色々なブログに書かれていると思うので割愛しますが、普段コードをあまり書かない私でも仕事の中で実践することで改善できそうな事があってとても勉強になりました。

また上記勉強会にも参加して、学びを深めました。

アジャイルプラクティス

上述の技術書の歩き方勉強会での帰り際にいただいたので早速読みました。

開発プロセスへのXPやスクラムなどの導入というよりはスタンドアップミーティング等の具体的なプラクティスの導入について勉強になる一冊でした。 達人プログラマーと合わせて読むことで内容の理解が深まります。

またアジャイルプラクティスではそのプラクティスを導入したときにどのような気持ちになれるかや、導入したときに気をつけなければいけない点などが各プラクティスの最後に記載されています。

実際にプラクティスを導入した場合はその部分を参考にすることができます。

プロダクティブ・プログラマ

アジャイルプラクティスの次に何を読むか探していたところでこの一冊を見つけました。

監訳されたのが技術書の歩き方勉強会「達人プログラマー」編を開催された島田 浩二さんです。 監訳者あとがきでアジャイルプラクティスをおすすめ書籍として挙げられていたのもあり購入しました。

この本はまだあまり読めていないのですが効率的に開発を進めるための具体的な手法が各テーマ毎に記載されており、より手を動かす作業の効率化に特化した一冊になっている印象を受けました。

おわりに

最近読んだ、もしくは読んでいる本についてまとめました。 今年もそれなりに本は読んでいましたがあまり感想などは書けなかったので月末などに改めて今年読んだ本の感想など書きます。 ただその前に下書きのラズパイ記事を公開できるようにします。

Raspberry Pi B+ に Golang 1.6 をインストールしてみた

はじめに

Go 1.6 がリリースされたのでさっそくラズパイにインストールしてみました。 マシン:Raspberry Pi B+ OS:raspbian-jessie-lite

インストール方法

1.6ではarmv6l用に既にビルド済みのものが用意されているのでとても簡単にできます。

Downloads - The Go Programming Language

まずはwgetでファイルをダウンロードしてきます。

wget https://storage.googleapis.com/golang/go1.6.linux-armv6l.tar.gz

次に公式の手順にある通り/usr/local配下に展開します。

#展開するときのコマンド
sudo tar -C /usr/local -xzf go1.6.linux-armv6l.tar.gz

最後に/usr/local/go/binへパスを通せばインストール完了です。

export PATH="/usr/local/go/bin:$PATH"

動作確認

パスまで通した後に早速バージョンを確認しました。

> go version
go version go1.6 linux/arm

またgobotraspi_blink.goというサンプルのブログラムも問題なく動作しました。

gobot.io

おわりに

1.5まではソースからインストールすることしかできなかったので時間がかかっていましたが、1.6ではとても簡単にインストールすることができました。

時間があれば今度はソースからインストールする方法を試してみようかと思います。

raspbian で capslock を無効化設定した

はじめに

掲題ままの備忘メモです。 raspbian-jessieで設定しましたがおそらくそれ以外でも同様にできるはず。

今回の参考サイトはこちらです。

lambdalisue.hatenablog.com

caps lock -> control と caps lock <-> control

この設定は/etc/default/keyboardにあるXKBOPTIONSの項目を編集しました。

  • sudo vi /etc/default/keyboard
    • caps lock を無効化してcontrolにする場合
      • XKBOPTIONS="ctrl:nocaps"
    • caps lcok とcontrolを入れ替える場合
      • XKBOPTIONS="ctrl:swapcaps"

また既にXKBOPTIONSに何かしらの設定が入っている場合は以下のように,で区切って書き足します。

例:XKBOPTIONS="hogehoge, ctrl:nocaps"

設定を入れた後は以下のコマンドで反映しました。

sudo dpkg-reconfigure -phigh console-setup

これで問題なくcaps lock を無効化してcontrolにすることができました。