2014年2月を振り返る

やったこと

色んな話をまとめて聞けるので、行ったことない人には是非おすすめしたいです。簡単に意識が高まります。そしてそれを継続するのが難しい。

  • ブログを書いた

あ、全然書けてない。けど1歩ずつを大事にしていこう。まず週1回ぐらい目指しますか。

わかったこと

  • やることを絞ったほうが効率が良い

今さら感はありますが、全方位的にやりたいこと&やってみたいことがあると集中できません。マインドマップソフト使ってGTDっぽいことはやってるんですが、WIP制限はしてなかったので、その辺り改善の余地ありかなと思います。

  • 勉強会等で意識が高まった時に新しいことにチャレンジする

新しく何かを始める時ってエネルギーを使うので、意識が高まってやる気に満ち溢れてる時に始めるとガンガンいける気がしますね!あとは継続する仕組み。

  • 健康第一

軽い鼻風邪で熱はなかったんですが、2月は2回もダウンしてました。布団に包まって本読むぐらいしか出来なかったので、気を付けたいです。いくら家の中が暖かいからといってハーフパンツ+Tシャツスタイルはマズイか・・・!

次にやりたいこと

前職は完全に閉鎖された空間で外の世界に出られなかったので、クラウド周りに疎いです。AWSはなんとなくEC2に触ったぐらいで全く使いこなせてないので、改めて入門してみようと思います。

  • 積み本になってる技術書を読む

これ面白そう!って買うものの、読んでない技術書が残ってるので片付けたいと思います。趣味のライトノベルは月10冊以上読むのでどんどん消化してますが、技術書はヘビーでね・・・!習慣化を目指そう。

参加した勉強会・カンファレンス

参加したら随時更新する感じにしましょう

2015

2014

2009-2013

デブサミ2014に参加してきました

2月13日(木)・14日(金)、雪の降る中、目黒雅叙園まで行ってまいりました。あれっ?みんな雪で傘さすの?あっこんな人混みでやめて刺さる!刺さるよ!危ないよ!と思ってましたが、身体についた雪がすぐ解けてグチャグチャになっちゃうんですね・・・北海道の場合はサラサラ雪で傘はささないので、謎が解けました。

デブサミ2014、講演関連資料まとめ

サクッと簡単に感想をば。

13日

【13-B-1】サーバプロビジョニングのこれまでとこれから

Chefは使っていたけど、テスト駆動インフラ、Immutable&Disposableというところまでは踏み込めていなかったので試しておきたいなあ。ServerSpec、Dockerは一度使っておこう。

【13-B-2】グリーにおけるChef導入事例~既存の資産を活かし新しい技術を導入する~

既存システムの管理はそのままで、新規サーバにChefを適用していってるとのこと。ChefのReportHandlerでログ出せるのは知らなかった・・・

【13-B-L】テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする

技術的にどうこうというより、プロセスを見直すとか担当者のスキルセットは合っているのか、とか根本的なところから見直そうってお話だと思いました。

【13-D-3】フロントエンドエンジニア(仮)~え、ちょっとフロントやること多すぎじゃない!?~

GUIツールだと数多すぎたけど、Gruntでまとめて管理できる。黒い画面(ターミナル)を恐れずに使おうってことでしょうか。Gruntの名前は聞いたことあったけど、管理ツールとは知らなかった。フロント周りの環境整備も整理しておきたいなあ。

【13-B-4】事例から学ぶDevOps実現のためのプラクティス

顧客や運用も含めてやりましょうって事で、あまり目新しい話はなかったかな・・

【13-D-5】[U30]フロントエンド開発者になるための切掛と行動/酒巻瑞穂、ソフトウェア開発を勉強し始めて3年間でやったこと~After~/きょん

勉強会に参加したりするのはきっかけの一つで、仲間であったり、憧れの人であったり、必要なものは自分の中の情熱を世界に発信していく勇気!

【13-B-6】mobile backend活用事例から見る「これからのスマホアプリ開発とクラウドの展望」

スマホアプリのサーバ側の基本機能は用意してあるからフロント側に集中しましょうっていうお話でしょうか。mBaaS【mobile Backend as a Service】というのは初めて知りました。ニフティクラウドってこんなのもやってたんですね。運用考えると、なるべく作らないってのは大事かなと思いますが、どこまで作らずにいけるのか。無料プランでも十分に使えるぽいので、ちょっと試してみたいなー

【13-B-7】何故クックパッドのサービス開発は日々進化しているのか

ユーザーサポートも含めてGitHub中心、プルリクベースで進めてるのはすごい。「正しいと思ったら行動して良い。誰かの許可とかとらない。」「なるべくルールは作らず、文化を作る」ってのは心に響きました。社員数が少なめだからこそ出来るのかもしれませんが、色々と根回ししたり、エライ人に話しても結局いつまでも放置されて、何も変えられないってよくあったので・・・そういう文化の中で働きたいですね。モチベーション高く取り組むために考えられてると思います。

14日

【14-B-1】やる気を引き出す組織風土のつくり方

サイバーエージェント、20代30代が97%ってものすごいですね。そういう環境の中で過ごしてみたい。取締役の2年毎の入れ替え制度など、若い人でも上に行く仕組みを取り入れてる。会社規模が大きいので、文化というより仕組みでモチベーション高めるための工夫をしているみたいですね。

【14-B-2】グリーを支えるデータ分析基盤の過去と現在

ソーシャルゲーの膨大なログを解析するための仕組み。非エンジニアでも自分で好きなデータを取れるようにってのはいいですね。大規模サービス運用は縁がなかったので、この辺り具体的にどうなのかは全然分からない。

【14-D-3】越境する開発~あの日開発していたサービスの名前を僕たちはまだ知らない~

「正しいものを正しく作る」ためにどうしていくか。カンバンは大好きなんですが、仮説検証型と最短距離型の使い分けは出来ていなかったので、意識したいと思います。書籍「リーン開発の現場」は一度読んだんですが、もう1度読み直そう。

【14-B-4】Amebaで取り組んでいるネイティブ開発事例

Androidのネイティブ開発のお話。GitHubでプルリクベースの開発でJenkins使ってたり開発標準化に力を入れて、誰でも同じように開発できるようにを目指しているとのこと。EclipseでAnt・・・GradleからAntタスク使うのは出来ないのかな?個人的には、Eclipseの環境設定までリポジトリに含めて統一するのはやり過ぎ感ありますが、どうなんだろ。

【14-A-5】エンジニアだからできる?自由な生き方

増井さんの名前は知らなかったのですが、PukiWikiも使ってたし、Wri.peとかミイルとか使ってますし、びっくりしました。好きなものを作って生きていくために、コツコツと点と点をつないで、世界を広げていく。突然なにか出来るようになるわけじゃあないので、地道な活動続けていこうと思いました。

【14-A-6】Play2/Scalaドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所

ニコ生をPHPからScalaで書きなおした話。かなり濃い内容でした。一時期ドワンゴからの離職者が多いと話題になってましたが、開発標準化していない状況で人員拡大してバラバラになったパターンでしょうか。カウボーイ個人開発からアジャイル開発体制へ移行・・・など、開発体制を整備して立て直したようで、今は以前よりも安定しているような印象を受けました。C++エンジニアじゃないけど、ちょっと働いてみたいなと思いました!

所感

これから

デブサミに初めて参加したときは、こんな世界があるのだと衝撃を受けました。今はキーワードなら聞いたことあるレベルにはなりました。といっても知らないことの方が多い。技術はどんどん進化していますが、現場で実践できているところはまだまだ少ないようです。ネットゲームでいう、レベルキャップが開放されていって、レベル差がどんどん広がっていくような状況に見えて仕方ない。先人たちが着々と攻略情報もとい高速道路を作ってくれてはいますが、それでも現場で実際に取り組めないと、なかなか前に進めないよなあ、という点がもどかしいです。自分のレベルも上げたいけど、すべての人がレベルを上げやすい世界にしていきたい!

現実にはメタルスライムはぐれメタルもいないのでホイホイうまくはいかないのですが、地道に戦ってレベルを上げて、冒険する世界を広げにいこう!

2014年も1ヶ月が過ぎたので振り返る

気が付いたら2014年もあっという間に1ヶ月。 忘れないうちに、簡単にやったことでもまとめておこうと思います。

やったこと

わかったこと

フレームワーク、ライブラリ等便利なものが整備されてて、ある程度のラインまではあっという間にできるけれど、そこから先に進むためには地道に力を付けないといけませんね。ということで、ひたすら慣れるまでは簡単なもの繰り返し開発ですかね(-_-)

  • 作りたいものがないとモチベーション維持できない

個人だと「絶対にやらなくちゃいけない」ものってないので、ただ勉強しようと思ってても、なかなか手が動きません。こういうところは会社に所属していると、課題解決のために動けるんで楽だなあとは思います(;´Д`)

  • 自宅で作業するには誘惑に負けない心の鍛錬が必要

最近は自宅でリモート開発で仕事してますって話も聞くようになりましたが、相当難しくないですかコレ!?丸一日時間があるとダラダラやってしまうことが多くて、集中する時間帯を作るのが難しい。そして逆に集中して休憩なしでやりすぎて燃え尽きるとか、人の目がない分、自分でバランスを取るのが難しいです。スタバでドヤ顔でMacBook Airを弄るとかいう手もありますが、今住んでいる町に喫茶店がないという点を除けば何も問題はありません。コワーキングスペースも遠すぎなんですよ!!

次にやりたいこと

  • ブログを書く

ふと調べ事をしようと検索したら、元同僚のブログが出てきてびっくりしました。役に立ちました。僕も書きたいです。ということで書きました。趣味の事を書くときはネタまみれAAまみれで書くことも多かったので、真面目に文章を書くのは苦手です。就活を考えれば超クールなアプリを作ってGithubにコードでもあげたほうがいいとは思うんですが、正直なところ基礎を勉強しなおしてる段階なので、焦らずにまったりブログに勉強したこと書いてまとめる習慣を作るところから始めたいと思います。

  • 作りたいものを見つける

2月はライブのために2週間ほど東京に滞在するので、せっかくなのでデブサミも行ってきます。一昨年から参加しているので3回目となります。今年はノージョブなので、受付の名刺を出すところで「はい、無職です(ニッコリ」と華麗に切り抜けられるかが一番の難関ですね!!!!今月は色々予定があって、あまり家でじっくり取り組む時間はないので、外に出かけてなにか心の琴線に触れるものを見つけるようにユルくいきたい所存でございます。

COBOLから逃げ出して退職してました

2013/09/30をもって、新卒で入社して4年半勤めたSIerと呼ばれる会社を退職していました。既に1ヶ月経ちましたが、せっかくなのでやったことでも振り返ろうと思います。

北海道にて、メインフレームアセンブラで作られたシステムを、画面系VBビジネスロジックCOBOLのシステムとして再構築するお仕事を行っている職場でした。もちろんウォータフォールです。30代前半~半ばの社員が少なくて、40代以降がいっぱい。オブジェクト指向?若いやつらにやらせればいいだろ?とか、そんなこと言うオトナな人は一部だけでしたが、最新技術動向とかあまり興味のない人が多い職場でした。・・・どこもそんなもんでしょうか?

VB+COBOL

新人として最初の仕事は、先輩の作った詳細設計書をもとにプログラムを書くことでした。VBは既に画面にコントロール配置済みで、詳細設計書にはボタンが押された時にCOBOLに渡すパラメータまで細かく書かれていて、まさにコーディングだけ、でした。COBOLは10本ほど書きましたが、いやあ、うっかり一行80文字オーバーしててコンパイルエラーとかしばらく気が付かなかったのがいい思い出です(´・ω・`)

開発基盤チーム

結合テストに入った段階で異動になり、退職までは開発基盤チームで過ごしていました。直接お客さんと接することはなく、社内の開発標準の改訂等々、社内の方と関わることが多かったです。あくまでも「標準」なので、各プロジェクトの共通項を見出す・・・という視点が求められていたと思います。実際に調べてみると、各プロジェクト好き勝手にやっていて頭を抱えまくりました。

自社製フレームワークの構築・運用

チュートリアルの作成と教育も担当し、この仕事のおかげで、オブジェクト指向という概念が理解できたと思います。でもXML地獄はもう2度と味わいたくない。学生の頃はPHPActionScriptしか触ったことはなく、手続き型でしか出来ていなかったなあ、と改めて思いました。

デブサミに参加した

Developers Summit 2012、2013と2年連続で参加しました。「世間の当たり前」と「現場の当たり前」との差を痛感するイベントとなりました。

ソフトウェア開発の三種の神器

社内標準はもちろんExcel方眼紙!でしたが、社内向けの仕事で制約もなかったので、Redmine、Jenkins、Subversionあたりを自由に使ってました。Redmineなしで仕事という状態がほぼないため、Excelだけでどうプロジェクトを進めるのか、想像できません・・・チケット駆動開発の本にはお世話になりました。

Jenkinsでのデイリービルド、リリース環境を作りましたが、もうちょっとうまく運用できなかったかなあ、と、もどかしさは残っています。

Subversionも入社後に初めて知ったものですが、最初は「更新とコミットだけしてればなんとかなる」と、そう教えられて、そんなもんか、と思考が止まっていました。が、バージョン管理について調べていくごとに、みんな・・・何もバージョンを管理できていない・・・!と気付きました。Subversion使ってて「本番リリースが終わってからコミットする」のがバージョン管理ってどういうことなの?(マジ切れ

仕事ってきっと、みんなすごい人達が集まっていて、何でもきっちりやってるんだ!という学生の頃からの思い込みが解消された瞬間でもありました。みんな結構適当だったんだね・・・・

その後、分散型VCSに興味を持ってSCM Boot Camp in Hokkaidoに参加して・・・と繋がっていきました。ちなみに、SCM Boot CampではMercurialを使いましたが、職場で広める際には「Windows環境で、Subversionもいまいちよく分かってないけど使ってる」環境ということから、Subversionに近く、push/pullをしなくても利用できるBazaarを選択しました。

アジャイルに進めよう

自分の周りの世界だけでも変えよう、と取り組みを続けていましたが、「好きにやっていいよ」というプロジェクトがあったので、好きにやりました。私はスクラムマスターのポジションで、複数チームのリーダーにスクラムの考え方を説明して、Redmine、Jenkins、Bazaar用のサーバを用意して・・・2週間毎の振り返りをしつつ、改善しながら進められました。勉強会もやりつつでしたが、最初は「それって何か意味あるの?」と言っていた先輩が、少しずつ「確かに言うとおりだったわ・・・!」と段々と共感してくれたのは嬉しかったです。アジャイルがどうとか、というよりは「日々考えて、改善しながら進めよう!」って意識が大事なんじゃないかと思いました。

Vagrant、Chef、Capistrano

せっかくなのでサーバは仮想環境で構築・運用してみました。今では当たり前みたいに流行ってますが、1年半前はあまり情報がなくて大変でした。こいつはくる!と思った予測的中でしたね・・!Redmineプラグイン色々いじってみたり、Ruby関連さわることが多かったですね。

なんで辞めたの?

音楽性の違いってやつですかね・・・。

サーバ運用まわりは色々勉強できましたが、インフラ専門のエンジニアになるつもりはなく、自分でもコードは書きたいという気持ちはあります。が、職場の同僚を見ると、メインフレームアセンブラを解析してCOBOLを量産・・・ん?この職場に残っていて10年後に何が得られているだろう?と疑問に思ってしまったり。「お金になる仕事」としてはいいのかもしれませんが、私にはどうにも続けられるとは思えませんでした。


違和感、っていうのが一番しっくりくるのかなと思います。

大学生活最後の1年間で、デザイナーの後輩と2人で組んで色々と作ったものが色んな賞をもらって、モノ作り!楽しい!と思っていたあの気持ちに戻りたいのです。UI?デザイン?画面にボタン配置すりゃいいだろ?と意図もなくただ項目を並べたりだとか、(そもそもメインフレームの画面をVBで再現しました!とかよくわかんないんですけど)Excel方眼紙で頑張って段落合わせて、フォントとか印刷のずれ直して、あれ?なんだろうこれ・・・これがモノ作りってやつ?


現状で社員の7割ぐらいが管理職で何を管理してるのかなあ、とか、役職上がったところで求められてるのは、単価の安い外注さんをいっぱい使ってとりあえず動くもの作れ、ってことだよなあ、とか。とりあえず手の空いたやつはどっかのプロジェクトに突っ込んでおけ、とか別に教育的観点なにもないよなあ、とか。色々と思うところはありますが、お金を稼ぐためには致し方ないのでしょう。人月でお金を稼いでるんだから。

既に組織としてそれなりに年数が経っている会社全体を変えるっていう事はすごく難しくて、10年20年かけたら、もしかしたら可能なのかもしれません。が、自分の人生の大半を費やしてやりたいことなのか、というと答えはNOでした。ですが、少なくとも、自分の周りだけは変えられたと思ってます。種は蒔いたので、育てるのは残った人にまかせて、自分は新しいチャレンジをしたいと思いました。

会社に残っていても勉強できること、ってまだまだあると思います。学べることがゼロになるなんてことはありません。なので、どこかで自分で決めなければなりません。隣の芝生が青く見えているだけかもしれませんが、それでも私は自分が楽しい!と思えるものを作りたい。

これから

次の職場はありません。ということで、10年振りに実家に帰りました。あまり焦って仕事を探しているわけでもなく、のんびりと来年になったらどこか東京でWebサービスとかソーシャルゲームあたりやってる会社探そうかな・・!と思ってます。ふわっとしてますが、フィーリングは大事にしたい。とりあえず勉強がてら、自分でWebサービスでも1個作ってみようかなあ、と思ってます。Ruby関係さわることが多かったのでRailsを使って、インフラはAWSあたりで・・!自分で好きなように決めれるって素晴らしい。

SCM Boot Camp in Hokkaidoに参加しました #scmbc

SCM Boot Camp in Hokkaido

http://kokucheese.com/event/index/39954/

http://togetter.com/li/322363

分散バージョン管理システムの勉強会に参加しました。
ざっくりまとめたいと思います。

VCS経験

基本的にWindowsGUI操作のみで、CUIでは普段使っていません。
DVCSは過去のSCMBC資料を見ながら一人で色々やってみたレベルで、複数人での経験はなし。

参加目的

一人でもDVCS使ってみるとすごく便利!業務でも使いたい!広めたい!複数人で使うとどうなるだろう?

 

概要

基調講演(@kyon_mmさん)

Mercurial入門セッション

 

演習

 

演習1:

bitbucket準備

  • bitbucketのアカウント作成
  • SSHkey(公開鍵)を作成してbitbucketに登録
  • bitbucketでリポジトリ作成(Publicリポジトリに設定すること)
  • cloneしてpush、pullを確認
    • SSHで接続できなかったのでHTTPSを利用

環境準備

  • .hgrc作成
    • ユーザ名、メールアドレス設定
    • extensions
      • color
      • graphlog
  • 言語設定を「日本語」に設定
    • 環境変数 (LANG=ja_jp-UTF8)
      • homebrewでインストールしていたが反映されなかったので、Mercurial公式からHgダウンロードして入れ直し
    • hg help で日本語表記されていればOK

課題スタート

  • (代表1名のみ) 演習用のPublicリポジトリの作成
    • 作成した人はメンバーのアカウントに権限付与
  • みんなでclone
  • 付箋を使って全員でタスク書き出し(かんばん方式)
  • 各自タスク1個目を消化(commit,merge,pull)
    • ブランチは作成せず、全員defaultブランチを利用

(1名都合により途中退出)

演習2:

  • Markdownの書式記述を確認、統一
  • 書式の修正+各自タスク2個目を消化
  • ファイル名のリネーム、不要ファイルの削除あたりでmultiple heads発生

演習3:

  • multiple headsはmergeで解消
  • タスクごとにフューチャーブランチを作成(ブランチ名:id/数値)
    • multiple heads解消分をupdateし忘れ、一つ手前からブランチしてしまう。逆方向マージで解決。
  • 各タスク完了後、defaultにマージ

 

感想

  • D4C (いともたやすく行われるえげつないコンフリクト)
    この世界に極めて近い運命を辿っている隣の世界(ブランチ)から基本の世界(default)に引きずり込むことが可能。ただし同一の存在が出会ってしまった瞬間に世界は崩壊するッ!
  • マージは怖くない
    コミットされたブランチ同士をマージするので、変更が消えることはない。変更が多くても安心!
  • マージソフトを準備しておくべきだった
    マルチプラットフォーム対応で3-way mergeができるP4mergeがおすすめらしいです(by @shuji_w6eさん)
  • 環境準備を事前に済ませておけばよかった
    思ったよりも時間を食ってしまったので、事前にやっておけば・・・!
  • コマンド操作に慣れたい
    たまにputtyで触るぐらいなので、不慣れさからの時間ロスが多かった気が・・・MacHGなりGUIで操作してもよかったかも。
  • マルチプルヘッドが起きたらとりあえず確認
    • hg parent
    • hg heads
  • Subversionに慣れた体で少し詰まったところ
    • リポジトリ / 作業領域のイメージ
    • pull / updateの挙動の違い
    • ブランチの作成 / 切り替え
  • 入門セッションの最初にも書いてありますが、Subversionでは、リポジトリと作業領域が1対1なので、最初はブランチのイメージができていませんでした。リポジトリには複数のブランチが存在し、pullではリポジトリ内容を更新、updateで作業領域に反映・切り替えを行う、とイメージが頭に入った瞬間に(あっ!Subversionにはもう戻れない…)と、「言葉」でなく「心」で理解できた!
    もうSubversionでブランチを切る気力が湧きません。
  • ブランチ戦略がとても大事
    すごく便利な反面、実際に運用する上では、ブランチ戦略が曖昧だと破綻しそうだなあ、というのは体で感じました。
  • バージョン管理の学習は必須である
    私が入社したときには「とりあえず終わったらコミットしておけばいいから」ぐらいにしか言われた記憶はありませんでした。が、これからの時代は間違いなく「必須スキル」だろうと実感できました。
    「こんなに簡単になるんだ」というのが素直な感想でしょうか・・・
  • 全体
    問題発生→解決の流れが、非常に体に染み渡って身に付く感覚がしました。

 

懇親会

  • 闇LT
    Hello, conflict World!
  • マージ戻し職人の朝は早い
    夜も遅いらしいです
  • いつからなごやがこわくないと錯覚していた?
    ・・・何・・・だと・・・・!?

 

回転寿司

回転寿司「はなまる」が美味しいという話題が出ていましたが、北見が本店の回転寿司「トリトン」も非常に美味しいです。おすすめです。(地元アピール)
スカイツリーに出店しているらしいので、ぜひ一度お試しください。むしろ北海道まできて食べてください。(地元アピール)

 

 

非常に充実した1日でした。参加した皆様お疲れさまでした。ありがとうございました!