コーディングチャレンジ結果発表

Scala Conference in Japan 2013 にて開催しましたコーディングチャレンジの結果を発表致します。

■ 優秀賞
グリシンさんからご応募いただきました設問3に対する回答が優秀賞に選ばれました。
https://github.com/KirillGrishin/Takashi/blob/master/src/main/scala/Takashi/RoutesFinder.scala

Scala に精通されているのが良く分かるコードで、抽象化もとても綺麗にされている点が高評価となりました。「Regexでのunapplyの使い方が勉強になりました」という感想も挙がっています。グリシンさん、おめでとうございます。

■ 最優秀賞
優秀賞は西岡さんからご応募いただきました設問1に対する回答が選ばれました。
https://github.com/nisshiee/takashi/wiki/Problem-1

詳細は回答を直接ご覧いただくとして、計算量が多いという問題の特性を考慮してAkkaベースの分散処理を検証し、Scalazを利用してコードを簡略化し、と見所満載な回答でした。評価に参加した弊社エンジニア全員一致での最優秀獲得となりました。西岡さん、おめでとうございます。

最優秀賞の西岡さんには賞品の iPad mini をお送りしました


グリシンさん、西岡さん、そして、コーディングチャレンジにご参加いただきました全ての方に厚く御礼申し上げます。

コーディングチャレンジに関するお詫び

Scala Conference in Japan 2013 にてコーディングチャレンジを配布しましたが、そこに記載しました応募用のメールアドレス codingchallenge@enrapt.jp に対して外部からの投稿が出来ない状況になっておりました。原因は Google Group の設定ミスです。ご応募いただいた方にはご迷惑をお掛けして大変申し訳ございません。

コーディングチャレンジに関して下記の通り変更を行います。既に応募いただいた方はその期間中に再度ご応募ください。

旧: 応募期間 2013/03/11(月)
新: 応募期間 2013/03/18(月)


Scala Conference in Japan 2013 に参加しました

2013/03/02 に開催された Scala Conference in Japan 2013 にスポンサーとして参加させていただきました。200 名弱の Scala 愛好家(?)が集まっただけのことはあり、会場は一日中熱気に溢れていました。

主立った技術としては Akka, Play Framework そして Scala 2.10 が紹介され、また各社の Scala による事例や知見が多数紹介されました。まだ Scala を導入して間もないところも多く皆さん苦労しながらプロジェクトを進めている様子でしたが、そういった状況でも Scala の威力を実感されているという紹介もあり Scala の今後の広がりを感じることができる内容でした。

リクルーティングセッションでは弊社も企業紹介をさせていただきました。実案件への Scala 導入という面ではまだまだではありますが、社内プロジェクトや社内ツールはほぼ Scala で実装しています。Scalaに限らず、テクノロジーでエンタープライズ開発を変えていきたいと思う方は是非 jobs@enrapt.jp までご連絡ください。



運営の皆様、スピーカーの皆様、弊社ブースにお立ち寄りくださった皆様、懇親会でご一緒させていただきました皆様、その他の多くの皆様のおかげで Scala の魅力を再確認できた一日となりました。ありがとうございました。


本ブログではこの後 Scala Conference で紹介された Akka などの技術をご紹介していきます。また、Scala Conference で配布しましたコーディングチャレンジの結果も本ブログにて逐次ご報告していきます。ご期待ください。

SauceLabsの紹介

Webの自動テストでSeleniumは便利ですが、Seleniumを実施する時に困るのはサーバーを用意する所だったりします。
普段はローカルでSeleniumStandaloneを立てて、MacならFireFoxを入れて実施したり、chrome-driverを使ったり、IEの為にVMを立てたり…と環境周りの準備が面倒。かつ、ブラウザが立ち上がった時にフォーカスを奪われたりしてストレスに…。

CIサーバーをCloudBeesに置いている弊社ではローカルのSeleniumサーバーを使うのは少し面倒…そんな時に役に立つのが SauceLabs です。


Scalaのマクロを3分で知る

忙しい人のためにScala 2.1で取り入れられたマクロを3分で知るための手順を用意しました。

では時間もないので早速、新しい作業ディレクトリを作ってください。

新しく作った作業ディレクトリを以下の構成にしてください。
ファイルはgistのコードが下にあるのでそこからコピペで取ってきてください。

.
├── project
│   └── Build.scala
└── src
    └── logger
        ├── macro
        │   ├── Logger.scala
        │   └── LoggerMacros.scala
        └── main
            └── Main.scala
または、コピペも面倒だという人のためにバッチを用意しました。
以下のコマンドでディレクトリ作成からファイル作成まで完了させてください。
(!)作業用ディレクトリの下で以下のコマンドを実行してください。

curl -L https://gist.github.com/sndyuk/ab871010a7e77ddd6420/raw/027d93b3463006dca3d58fe8b928c7666b894940/install.sh | sh
コードの解説を簡単にしてあるので参考にしてください。

開発支援ツールの紹介 - GreenHopper


ENRAPTでPMをやっている関口と申します。

僕は普段は開発チームの側面支援として、開発以外のコトに時間を割いているのですが、このブログでは開発に密接に関係している開発支援環境についていくつか紹介していこうと思います。

初回となる今回はもっとも利用頻度の高いAtlassianのJIRAについて紹介します。

Atlassian JIRA

ENRAPTでは、開発のタスク管理にAtlassian OnDemandを使っています。これは、JIRAのホスティングサービスで、面倒なセットアップの手間無く、また良く使われるプラグインなどもあらかじめインストールしてあるものです。10人までなら10$/月 という価格も、1ヶ月の試用期間というのもすぐ始めて、合わなかったら使うのをやめられるのでお手頃です。

BTSというと、他にもRedmineTracBacklogといったものもあります。何故JIRAを利用しているかというと、管理が楽(OnDemandの場合)というのと、カスタマイズの豊富さやGreenhopperBonfireといった一緒に使えるツールの魅力があります。

GreenHopper

GreenHopperはJIRAにアジャイルプロジェクトの支援機能を付け加えるアドオンです。
おおざっぱに言えば、JIRAのチケットをストーリーやタスクと見なして、パーキングロットで管理できるようにしたものです。

Scrumではよく付箋でストーリーやタスクをオフィスの壁にはったりしていますが、それをそのままWebでできるようにしたもの、と考えるとわかりやすいです。
ENRAPTではプロジェクトの初期コンサルティングから開発までを一貫して行っていますが、そのためお客様先に訪問していることが多く、なかなかプロジェクトメンバーが一箇所に集まることができません。
Daily Scrumなどはhangoutで実施することも多いのですが、そのときにGreenHopperを見ながら話をしたり、コメント書いたりしています。

GreenHopperが紙に比べていいところもあります。パーキングロットに表示するチケットを検索条件で絞り混むことができ、「ビュー」のような使いかたができるのです。



特にエンタープライズのシステム開発では様々な局面があり、課題管理やお客様とのQA、業務分析・設計の工程管理、オフショア作業管理など開発以外のタスクも山のようにあります。これらを全部JIRAに投入しつつ、適切なビューを使い分けることで必要のない情報は表示しないようにできるのがGreenHopperの便利なところです。

いくつか便利な機能を紹介していきましょう

Epic

最近追加された機能で(新機能がすぐ使えるのもSaasならではです)、テーマ毎にストーリーを色分けすることができます。
タスクに分割する際、すぐに画面に入りきらないほどのタスクの数になってしまい、関連しているタスクがわからなくなりがちなのですが、Epicを使うと視覚的に整理できます。



Quick Filter

Quick FilterはBacklogやパーキングロット中のチケットを任意の条件でフィルタ出来るようにします。これを使うと、自分のタスクだけをみたり、あるコンポーネントに関連するチケットのみを表示したりすることができます。
壁に貼った付箋と違いGreenHopperの画面は狭いので、Filterを工夫することで画面を有効に使うことができます。

なお、JIRAの超便利な機能として、こういった検索条件を個人でいくつも持てるほか、他のメンバーに公開して使ってもらうことができます。これはGreenHopperや他のアドオンでも一貫して提供されているJIRAの基本コンセプトで、非常に強力で便利です。

Reporting

バーンダウンチャートや、ベロシティのグラフなど、標準的なレポートが備わっています。特にベロシティのグラフは、「遅れているからといって仕事を一杯積んでもはかどらない」ことが一目瞭然にわかってしまい便利でした(笑)





去年からGreenHopperを使い始めて、今ではほぼ全てのプロジェクトでGreenHopperを使っています。ちょっと取っつきにくいところもありますが(日本語マニュアルがないので)一度プロジェクトで使ってからは開発者自身で活用していて、管理者として作業するのはプロジェクトの作成くらいになりました。





Popular Posts