RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

チーム全員で取り組んだ勉強会発表プロジェクト(アジャイル Nightふりかえり)

id:radiocat です。2/26に大阪オフィスで実施したMeetupでは楽楽精算開発2課のメンバー全員で半年かけて準備をして発表しました。今回はMeetupの内容と合わせて、全員で役割を持って取り組んだ勉強会発表プロジェクトの内容をご紹介します。

rakus.connpass.com

プロジェクトの経緯

私たち楽楽精算開発2課は成長サービスを支える開発組織として、常に新しい領域の開発に取り組んできました。一方で、開発部門としてMeetupというイベントを継続的に開催していくことになり、私たちのチームがどう関わっていくべきかを考えた時に、チームでイベントのコンテンツを作り上げるという新しいチャレンジを行ってその知見を残すことが私たちのチームらしい取り組みではないかと考えました。そして2月のMeetup発表者としてチームで名乗りを上げてプロジェクトをスタートさせました。

2018年10月にプロジェクトスタート

前回のMeetup の開催翌月にキックオフを行いました。 まず、どういうイベントにしたいかを全員で話し合って、発表テーマの候補を出しました。その中からいくつかのテーマに絞り込んでそれぞれのメンバーがいったん持ち帰り、次回までに発表テーマを検討することにしました。

11月

前月にそれぞれが持ち帰って検討した発表テーマと発表のイメージを共有して、イベントの全体像をすり合わせしました。 この時にそれぞれのメンバーが担当する発表内容の大枠が決定しました。若手メンバーは3人1組で発表資料を作って代表者が発表することになりました。

12月

前月に決まった発表テーマと内容の大枠をスライドに落とし込んでアウトラインレベルで中間発表を実施しました。そしてお互いの発表を聞いてフィードバックし合いました。このとき、主力エンジニア、中途社員エンジニア、若手エンジニア、スクラムマスターというそれぞれの視点で発表するという流れがだいたい確定しました。

1月

ドラフト版レベルのスライドで発表練習して、全員でレビューしました。ここまではスクラムマスターが最初に発表する流れにしていましたが、「いきなりスクラムマスターが場を引っ張って発表するのはなんか違うよね」となって、スクラムマスターは最後に発表する流れに変更しました。

2月

本番さながらの練習会を実施し、資料と発表内容の精度を上げていきました。チームで整合性を合わせる部分があるため前日までスライドのチェックや修正を行って当日を迎えました。

f:id:radiocat:20190306104925p:plain



発表したスライド

当日のスライドと合わせて発表に関わったメンバーのコメントをご紹介します。

続きを読む

大阪・梅田エンジニアもくもく勉強会を開催しました/します。

楽楽精算開発2課 岡本です。
今年から月1回のペースで開催している「もくもく勉強会」ですが、3月もまた実施しますので、告知も兼ねて2月実施回の模様をお伝えしようと思います。

ちなみに、1月の模様はこちらの記事で紹介されています。 tech-blog.rakus.co.jp

2月実施の模様

前回(1月実施回)の振り返りで主に以下のような意見が出たので、2月はこれらの改善を実施しました。

  • 参加者同士が離れて座りがち
  • 食べ物があったほうがいい
  • BGMの音が大きい

■参加者同士が離れて座りがち

前回は、机を離して設置していたため、それぞれの机に別れて参加者が座ってしまい、もくもく中にコミュニケーションが取りづらい状況でした。
前回の様子。空席が多くてどことなく寂しい感じ
f:id:okana-yg:20190306174109j:plain

そこで、今回は参加者同士が近くに座れるように、机の配置を見直しました。
今回の様子。写真の時点では全員揃っていないので空席ありますが、最終的には各机に一人づつで全ての席が埋まりました。
f:id:okana-yg:20190306174033j:plain

■食べ物があったほうがいい

食べ物があったほうがコミュニケーションを取りやすいのではという意見が出たので、今回はお菓子を用意してみました。
ちょうど実施日が2月14日だったのでチョコレートをメインに用意。
f:id:okana-yg:20190306174136j:plain

ただ、あまり消費量は芳しくなかったようです。
まだまだ残っています。
f:id:okana-yg:20190306174551j:plain
次回以降も、お菓子は用意しようと思うので、お越しの際はガンガン消費していってください。

■BGMの音が大きい

もくもく勉強会の会場では普段からRaspberryPiからラジオが流されるようになっています。
こんな感じ、ちなみにこのRaspberryPiでエントランスのディスプレイに流れている映像も制御しています。
f:id:okana-yg:20190306175115j:plain

前回はここから流れてくる音が大きすぎるという意見が出ていたので、今回は予め音を絞ってBGMを流していました。
ただ、RaspberryPiの処理の関係で時々BGMが途切れ途切れになってしまっていたようなので、次回は別の方法でBGMを流そうと検討中です。

次回告知

次回は3月14日に開催予定です。既にconnpassに公開中ですので。興味を持たれた方は是非お越しください。
rakus.connpass.com

東京開発ビアバッシュに参加しました~2019年2月編~

f:id:FM_Harmony:20190304012912p:plain

はじめに

こんにちは、id:FM_Harmonyです。
今回は先週開催された東京オフィスのビアバッシュに関する紹介記事を書きました。なお、東京オフィスでのビアバッシュについては、下記の記事にて詳しく紹介されています。
tech-blog.rakus.co.jp

続きを読む

MapKitを用いた地図検索iPhoneアプリ開発

はじめに

こんにちは。若手エンジニアのchoreiiです。

最近、業務でswiftに触れる機会がありました。Xcodeでのアプリ開発が楽しく、swift勉強したい欲が高まり勉強会にも参加しています。初心者ながら、ある程度アプリの作り方も理解してきたので一度アウトプットをしようと思います。

swift勉強中の方の刺激・参考となれば幸いです。

目次

題材

取り上げるのは、MapKitになります。

簡単に言うと、アプリの画面に地図を埋め込んだりできるフレームワークです。

今回はMapKitを使って、近場の駅を表示するアプリを作ってみました。

完成形

最初に完成形をお見せします。

f:id:choreii:20190305014651p:plain:w300
起動後
f:id:choreii:20190305014757p:plain:w300
ラクスの会社住所で検索
f:id:choreii:20190305014830p:plain:w300
駅にピンがたつ(検索地がラクスです)

ゴールイメージが掴めたところで実際の手順を説明します。

地図の埋め込み

xibまたはstoryboardでMKMapViewを貼り付けるだけです。
xcodeで部品をペタペタ貼り付けるのは直感的にできるのですごく楽しいです。(しっかりとしたレイアウトを考えだすと面倒ですが)

f:id:choreii:20190305013005p:plain
MKMapViewの配置

今回はテキストボックスに住所を入力して検索するのでtextFieldも貼り付けています。

検索とピン配置

検索はMKLocalSearchを使用しています。精度はあまりよくないようですが、ローカルでAPIのように簡単に検索機能が使えるので使用しています。
検索用の関数を作成している先人の方がいらっしゃったので、検索自体はそちらをお借りしています。

Map.search(query: "駅", region: region) { (result) in
    switch result {
    case .success(let mapItems):
        for map in mapItems {
            let annotation = MKPointAnnotation()
            annotation.coordinate = map.placemark.coordinate
            annotation.title = map.name ?? "名前がありません"
            mapView?.addAnnotation(annotation)
        }
    case .failure(let error):
        print("error \(error.localizedDescription)")
    }
}

query: 検索したい建物 region: 検索範囲のイメージです。
帰ってきた検索結果それぞれにMKPointAnnotation()addAnnotationすることでピンを立てています。今回は駅固定にしていますが、ここも入力フォームやユーザデフォルトに保存しておいた値などを使うと、いろんな建物が検索できて使い勝手はよくなると思います。

最後に

xibファイル上でのオブジェクトの配置と、コード上でのオブジェクトの操作の両方を体験できるので、iPhoneアプリの開発練習にはぴったりだと思います。私自身イベントの制御などまだまだ把握できていないところばかりなのでこれからも勉強は続けていきます。今回のアプリのソースはGitHubに置いておきます。練習用のコードで汚く読みづらいコードとなっていますが、基本的な操作は一通り試しているのでご自由にお使いください。


  • エンジニア中途採用サイト
    ラクスでは、エンジニア・デザイナーの中途採用を積極的に行っております!
    ご興味ありましたら是非ご確認をお願いします。
    20210916153018
    https://career-recruit.rakus.co.jp/career_engineer/

  • カジュアル面談お申込みフォーム
    どの職種に応募すれば良いかわからないという方は、カジュアル面談も随時行っております。
    以下フォームよりお申込みください。
    forms.gle

  • イベント情報
    会社の雰囲気を知りたい方は、毎週開催しているイベントにご参加ください! rakus.connpass.com

Node.jsのExpressでWebサーバーの構築をしてみた

はじめまして、新卒のtaku_76です。

qiita.com

上記URLからチャットbotを作成したいと思ったのですが、これにNode.jsの知識が必要だと書いてあったので学習してみました。 その結果フレームワークであるExpressを使用すると簡単に Webサーバーが構築できることが分かったので試しに使ってみました。

Node.jsとは

JavaScriptを使ってサーバーサイドのコードを書くことが出来るプラットフォームです。

  • 特徴
    • V8エンジン

      • GoogleChromeで使われているJavaScriptエンジンでブラウザとほぼ同じJavaScriptが書くことができます。JavaScriptを即座にコンピュータが理解できる機械語に変換して処理を行うため非常に高速です。
    • ノンブロッキングI/Oモデル

      • I/Oが終わったか何度もチェックし、終わっていなければ次の処理に進んで、次の処理が終わったらまたチェックする、この動作を繰り返します。
      • シングルスレッドの大量のアクセス制御が難しいというデメリットを回避します。

Node.jsのインストール

https://github.com/nullivex/nodist/releases
こちらのURLからnodistをインストールします。

  • nodistとは

Windows環境で動作する Node.js のバージョン管理ツールです。これを使うことで、複数の Node.js のバージョンを切り替えて使い分けることができるようになります。また、同時にnpmもインストールされます。

  • npmとは

Node.jsのパッケージを管理するツールです。Node.jsのパッケージとは、予め用意された便利な機能をまとめたものです。

Expressで新規プロジェクトを作成

  • Expressとは

Node.jsで利用できるWebアプリケーションフレームワークです。 イベントループで非同期のため同時リクエストに強く、多くのユーザーの同時アクセス・大量リクエストを捌くことができます。 テンプレートエンジン(サーバーサイドで動的にオブジェクトを渡して、それをHTMLとして返す)を選べます。 今回はhtmlに近い形でかけるテンプレートエンジンのejsを使います。

  • Expressのインストール

以下のコマンドでインストールを行うことが出来ます。

C:\Users\takumi\Desktop\test\Nodist>npm install -g express-generator
  • 公開までの手順
C:\Users\takumi\Desktop\test\Nodist>express -e newproject

オプション-e でejsが設定された状態でプロジェクトが作成されます。

C:\Users\takumi\Desktop\test\Nodist>cd newproject && npm install

作成されたnewprojectのnode_moduleディレクトリの中に必要なモジュールがインストールされます。 packege.jsonに何をインストールするのか設定してあり、これを参照してインストールを行います。

C:\Users\takumi\Desktop\test\Nodist\newproject>npm start

サーバーを起動し、ローカルにWebページを公開します。 http://localhost:3000と入力するとexpressにデフォルトで入っているhtmlが以下のように表示されます。

f:id:taku_76:20190304065910p:plain
express

おわりに

今回は、Node.jsのExpressを使ってローカルにWebサーバーの構築をしてみました。 次は、自分でWebアプリを開発してherokuを用いて公開するところまでやってみたいと思います。

参考

Node.jsについての記事

こちらにも詳しい記事があります。 Node.jsの勉強会でお手軽にWebアプリを作った話

Scrum Fest Osaka 2019 参加レポート

id:radiocat です。2/22〜23に開催されたScrum Fest Osaka 2019 へ私たちのチームから3人が参加してきましたのでレポートします。

Scrum Fest Osaka 2019とは?

www.scrumosaka.org

公式サイトには以下のように書かれています。

Scrum Fest Osakaはスクラムの初心者からエキスパート、ユーザー企業から開発企業、立場の異なる様々な人々が集まる学びの場です。

アジャイル開発のプロセスのひとつであるスクラムのイベントで、関西では初の大型イベントです。約200人が集まって2日間開催されました。

f:id:radiocat:20190225004012p:plain

ちなみに、弊社も大阪に拠点がありスクラムに取り組むIT企業のひとつとしてスポンサーをさせて頂きました。

f:id:radiocat:20190225003726p:plain

なお、会場となった「関西大学梅田キャンパスKANDAI Me RISE」は大阪オフィスの隣のビルでした。その点でも何か不思議なご縁を感じて参加してきました。

登壇レポート

今回は登壇の機会も頂くことができました。せっかく頂いた機会ですので、私たちのチームが取り組んできたスクラムについてたくさん詰め込んで紹介しました。

スクラムはシンプルなルールの開発プロセスですが、その実践にはチームに応じた様々な工夫が必要です。私たちのチームもこれまでたくさんの試行錯誤を繰り返してきました。その中で支えとなったのは、既にスクラムに取り組んでいる先人やコーチなどの有識者の方々の取り組み事例でした。これまでも同様のイベントが開催されたり、同じ課題を持つ人が集まるコミュニティなどからたくさんの事例が世の中に発信されており、それらの情報を参考にして自分たちのチームに取り入れてスクラムを続けてきました。つまり、私たちのスクラムはこれまで取り組んできた人たちの試行錯誤に支えられているのです。

ですので、今度は私たちの取り組みを、同様に試行錯誤している人やこれからスクラムに取り組む人たちの支えにして頂けるように、たくさん詰め込んでお伝えしたつもりです。幸いなことに発表後の懇親会などで、たくさんの方々から共感のコメントや自分たちも同じ課題を持っていて勇気が湧いたという温かいお言葉を頂き、私たち自身もまたこれからスクラムを続けていくモチベーションを得ることができました。

f:id:radiocat:20190226175356p:plain

参加レポート

一緒に参加したメンバーが印象に残ったセッションをまとめてくれているのでご紹介します。


楽楽精算開発チームの岡本です。印象に残ったセッションをまとめました。

ラクティス厨から始めるアジャイル開発

クラスメソッドの 藤村さんのセッションです。 スライドは、こちらで公開されています。

www.slideshare.net

スクラムの本に書いているようなプラクティスについて、まずは、そのまま実行してみて、形骸化してきたと感じたら立ち止まり、スクラムガイド等の原典と現状の差分を確認してみればいい、といった内容のセッションでした。

スライド中には「プラクティス厨が許されるのは、形骸化するまで」という言葉が出てきていましたが、うちのチームにも形骸化していそうなプラクティスがちらほら出てきているので、原典との差分の確認時期なのかもしれないです。

スクラムフレームワークを使用する具体的な方法。僕の場合。

楽天の 椎葉さんのセッションです。 スライドは公開されていませんが、ブログで内容が公開されています

bufferings.hatenablog.com

楽天の大阪開発チームで実践しているスクラムの方法についてのセッションでした。

色々と参考になるセッションで、特に、仕様の決め方や開発の進め方については、うちのチームでも取り入れてみたいと思いました。

  • 仕様の決め方
    • 何を作るのか?だけではなく、なぜ作るのか?をより重視して書く
    • それによって、開発チームはより目的に沿った形で実装することができる。
  • 開発の進め方
    • 実装/テストで役割を分けて、それぞれ並行して進める
    • 実装/テストそれぞれの観点で開発を進めるので見落としやバグを防ぎやすい。

オーディエンスとして参加して来ました、庄禮です。

私自身、現在のスクラムチームに参加してまだ半年ほどで、こういったスクラムのイベントにも参加したことはありませんでしたが、運良く参加枠をいただくことができましたので参加してきました。

以下、拝聴したセッションの中から一部ご紹介します。

お堅い企業でスクラムチームを一から作った話

3年前からチームにスクラムを導入した三菱電機株式会社さんのお話。
アナログなカンバンの導入に始まり、少しづつ自分たちの課題点を解消していく軌跡をお話しされていて、チーム体制の変更したり、デジタルなツールを導入して効率化をはかるなど、工夫しながら自分たちのスクラムを形作っており感銘を受けました。

ピンポンゲームでスクラム体験ワークショップ

「Ball Point Game」というワークショップをおこないました。ワークの詳細は軽く調べるとでてきますので、気になる方は調べてみてください。 限られた時間、初対面の人と協力して目標にむかって行動するのはやりごたえがありました。やってみてダメな点は全員で振り返って、次にプランニングに活かす、といったスクラムの基本を体験学習できる良いワークでした。(ワークということもあり、実際の現場ではおこなわないようなチャレンジも行いました)

所感

交流会やコーヒーブレイクの時間に様々なスクラム関係者と交流できたことも、参加してよかったと感じているポイントです。まだまだ自分自身の知識も浅く、お話を聞いて参考にさせていただく機会ばかりですが、いつか自分の経験をみなさんにアウトプットできるように精進していきます。


まとめ

2日間スクラムのテーマにどっぷりと浸かり、参加者それぞれが交流と学びを深めて持ち帰ることができる場所でした。Scrum Festは、その名前のとおりカンファレンスや勉強会とは違った独特のフェス感のある素晴らしいイベントです。次回もぜひ参加したいと思います。

f:id:radiocat:20190225003848p:plain

今回のイベントにも関連しますが、関西のアジャイルコミュニティの関係者の皆様には普段から大変お世話になってきました。今後もイベントへの参加だけではなく会場のご提供などでも関係を深めてコミュニティに貢献していきたいと思います。

devlove-kansai.doorkeeper.jp

scrumdo-kansai.connpass.com

スクラム道関西さんには既に一度、弊社にお招きしてオープン・ジャムを開催して頂きました。また、3/18にはDevLove関西のイベントを弊社にお招きして開催予定です。

devlove-kansai.doorkeeper.jp

また、弊社でも毎月1回エンジニアもくもく勉強会を開催してエンジニアの交流の場をつくっていこうとしています。よろしければぜひご参加ください。

rakus.connpass.com

認定スクラムマスター研修から始まるジャーニー

こんにちは。堀内(id:yhoriuchi)です。 弊社が日頃からお世話になっている株式会社アトラクタ様が開催された認定スクラムマスター研修を受講してきました。講師はGabrielle Benefieldさんで、ジェフ・サザーランド博士が率いるScrum Foundationの共同設立者でもある方です。

f:id:yhoriuchi:20190222190441j:plain
Gabrielle Benefieldさん

研修内容が非常に素晴らしかったため、少しでもご紹介できればとの思いで研修の簡単な紹介、学んだこと、現場でやってみたことをお伝えしたいと思います。

研修概要

スクラムマスター研修は2日間のコースです。Gabrielleさんがメイン講師で、株式会社アトラクタの原田さんが研修をサポートする体制で行われました。 基本的に研修は英語ですが、プロの通訳の方が同時通訳を行いながら進行します。要所要所で原田さんがご自身の経験や考え方を交えた補足を行なって(日本語)くれましたので、スクラムを学ぶ上でこれ以上ない講師陣だったと思います。

研修の始まり

研修が始まるとGabrielleさんから「全員と握手」するように言われます。40人ほどの参加者が部屋を歩き回って全員と握手するというワークショップ(?)です。初めて顔を合わせる人たちばかりでしたが、最初に握手をするだけで後の研修が非常にやりやすくなったと感じています。スクラムマスター研修は多くのワークショップが取り入れられた内容になっているので、こうした心理的な障壁を最初に取り除く行動は研修そのものの効果を上げることにつながりました。

次のワークショップ:ピンポン玉回し

研修生が20人ずつくらいの2チームに分かれ、ピンポン玉を特定の時間内に落とさず手渡しで何個回せるか、という簡単なゲームをしました。2チーム同時に始めて優劣を競うのですが、チームごとにやり方が違うため、当然のように差が出ます。その後、一方がもう一方のチームのやり方を観察して自チームのやり方を見直し、改善するということを行いました。この時一番驚いたのが、相手チームを観察して良かったやり方をそのまま真似るのではなく、私が想像していた以上の改善が行われ、無駄がそぎ落とされた方法に一瞬で進化したことでした。観察して振り返り改善することの重要性に気付かされたその時の衝撃は今でも忘れることができません。

やり方は違えど、以前 吉羽さんに社内で実施して頂いたスクラムトレーニングで伝えようとしていたことが改めて理解できた気がします。

色々端折りますが

その後はスクラムの全体の流れを説明頂いたり、チームに分かれてワークショップを行ったりしてスクラムの理解を深めました。

疑問があれば随時質問を行うこともでき、貴重な意見やアドバイスを受けることができます。知識としてのスクラムだけでなく、多くの現場を見て改善されてきた知見を持つ講師からのアドバイスは心に突き刺さるものがあります。私が質問をした回答の最後に、Gabrielleさんが "Good luck"と言ってくれたのは今でも心の支えとなっています。

学びを実践で試すと更に学べたこと

研修に参加すると、不思議と勇気と自信が湧いてきます。そのまま自社に学びを持ち帰り、一番試してみたかったことを早速試してみました。それが「他チームを観察する」です。タイミング的に他チームを観察することが難しかったため少し工夫して、他チームのスクラムマスターをやっている id:radiocat に自チームの振り返りのファシリテーターをお願いしました。

「人は鏡」といった言葉があるように、人は人との対話を通じて自身の内面に気付かされることが多くあります。スクラムの振り返りでの開発チームとファシリテーターという関係性から考えて、チーム外の人がファシリテーターを行うことにより、自分たちのチームが外からどのように見えているのか気付かされ、新たな改善や行動につながることに期待していました。

結果は思っていた以上のものでした。

開発チームメンバー個別に振り返りの感想を聞いてみたのですが、全員が口を揃えて同じことを言っていたのです。それが

「1週間で課題(problem)が多いのは正常なのか?」

という質問があったということでした。振り返りにKPTを利用しているのですが、“P”に上がる項目が多いように外からは見えるというチームへの見事な問いかけだったんだなと思いました。

感じ方は人それぞれあるようですが、この質問がチームにとって大きな意味があり、各自が深く考えるきっかけを与えてくれました。

更には、他チームの振り返りをファシリテートすることでファシリテーター自身も多くの気づきがあったようです。
下記がその一部。

  • チームの関心事によって出てくるものが全く違う。
  • 振り返りのファシリテートはすごく重要で、すごく難しい。
  • チームが課題と感じているところを察知して石を投げ込まないと意味がない。
  • 振り返りはプロセスの改善の場であると他チームの課題感を通して改めて認識することができた。

これらを聞いて私自身も学べることが多く、この一連の行動から学びで学びを繰り返すのだと気づかされました。今後はチームとしての学びを最大化するためにもスクラムマスターとしての学びは尽きることがないと気を引き締めた次第です。

そしてその先へ

認定スクラムマスター研修を受けると、認定スクラムマスター(CSM)になるための受験資格がもらえます。オンラインで受験できるのですが、私も無事合格することができました。CSMは資格取得して終わりではなく、むしろ果てしなく続ける旅路の始まりだと思っています。このような研修の機会を作ってくれた株式会社アトラクタ様や自社にも感謝しつつ、これからもスクラムチームを支援していきたいと思います。
ジャーニーは始まったばかりです。

Copyright © RAKUS Co., Ltd. All rights reserved.