家族のためにエンジニアとしてやってみたこと(what i did for my family as an...

31
家族のために エンジニアとして やってみたこと Kazuya NUMATA / 沼田 一哉 @kaznum #ldd13is What I did for my Family as an Engineer http://www.flickr.com/photos/aigle_dore/6826909042/ Saturday, January 26, 13

Upload: kazuya-numata

Post on 19-Jun-2015

1.803 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

家族のためにエンジニアとしてやってみたこと

Kazuya NUMATA / 沼田 一哉 @kaznum#ldd13is

What I did for my Family as an Engineer

http://www.flickr.com/photos/aigle_dore/6826909042/

Saturday, January 26, 13

Page 2: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

こんにちは

•ぬまた かずや( @kaznum )My name is Kazuya Numata.

•株式会社エストコスモで

プログラマしています。I work for ESTCOSMO Co., Ltd as a programmer.

•妻と息子(1歳5ヶ月)の3人暮らしI have a wife and a baby (17 months old).

Saturday, January 26, 13

Page 3: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

家計簿 さな太郎Web Household Account Book - SANATARO -

Saturday, January 26, 13

Page 4: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Kakeibo SANATARO

•source code: github.com/kaznum/sanataro

•demo:http://sanataro.herokuapp.com

Saturday, January 26, 13

Page 5: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

作ったきっかけ- motives

•結婚当初、米国CA在住のインフラエンジニア 兼 プログラマ

• 家計管理が必須(海外で餓死とか)

•約1年間、妻と「小槌」を使用•当時、ちょっと問題が・・・

We lived in Southern California, U.S. when getting married, where I had worked as an infrastructure engineer and programmer.

At that time, I had kept the household account book with KOZUCHI, but there were several problems around it....

Saturday, January 26, 13

Page 6: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Dec 2007

「 俺が作ってやる!」(キリッ

“Don’t worry! I will make it for you!” ;-)

Saturday, January 26, 13

Page 7: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Then...

•終業後に家で少しずつ作業し、1ヶ月で最低限の機能を作成

I implemented them, and deployed them directly each time.

Saturday, January 26, 13

Page 8: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Jan 2008

妻「すごいね!超ステキ! あなた、こんなの作れるのね♥♥♥♥」

Wife: “Cool! It’s exciting that you can make such a thing!”

Saturday, January 26, 13

Page 9: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

僕(ドヤッ

Jan 2008

Me: (a smug face)

Saturday, January 26, 13

Page 10: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

妻に褒められた♥瞬間

I won praise from her.

Saturday, January 26, 13

Page 11: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

自分の職業スキルで家庭内の問題を一つ

解決した瞬間

It was the moment when my practical skill resolved a problem of our family.

Saturday, January 26, 13

Page 12: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

家族に自分の仕事を

知ってもらえた瞬間

※ 妻の職業は別業種

It was the moment when she knew about my occupation.(*She works for the different field.)

Saturday, January 26, 13

Page 13: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

What happened

•妻(ユーザー)がそばにいるので、フィードバックが速い。(Quick feedback)

•自分と妻が欲しい機能を優先して実装。(What we wanted got Higher priority)

•ニーズの変化に応じてスケジュールや優先順位を変える。(Flexible priority and schedule)

Saturday, January 26, 13

Page 14: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

This is

Agile や!!Saturday, January 26, 13

Page 15: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

今でも、機能追加・変更を続けています。

Sanataro has been improved, and hope so in the future.

Continuously,

Saturday, January 26, 13

Page 16: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

これ、重要This is SO IMPORTANT!

Saturday, January 26, 13

Page 17: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

流行りものを使うと

•Ruby on Railsは頻繁にバージョンアップする。

Ruby on Rails has been updated frequently.

Saturday, January 26, 13

Page 18: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

常に手を入れ続ける

•しばらく放置しておくとRailsの新機能や変更に追従できなくなる• Railsのセキュリティホールが報告されちゃったり(find_by_* のSQL Injectionとか)

We cannot keep track of the changes without continuous touch...Sometimes, the vulnerabilities are reported...

Saturday, January 26, 13

Page 19: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

How can we check the correctness for every migrations?

バージョンアップ時の

検証は・・・?

Saturday, January 26, 13

Page 20: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Continuous Integration

Saturday, January 26, 13

Page 21: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

さな太郎でのCI

•Automatic Test: RSpecCucumberCapybara•CI environment:

Travis-CISaturday, January 26, 13

Page 22: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

さな太郎でのCI

•とにかく最初はTDD&テスト無双•simplecov、rcovでカバレッジチェックなど。

• Railsの新しいバージョン適用後に、手元でrspec、cucumberを実行• githubにpushすると同時に、Travis-CIで、同じテストを複数の環境で実行

Travis-CI supports lots of kinds of environment.

Saturday, January 26, 13

Page 23: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

さな太郎でのCI

同じテストを

複数の環境で実行

Travis-CI supports multiple environments.

Saturday, January 26, 13

Page 24: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

さな太郎でのCI

•Ruby 1.9.2•Ruby 1.9.3•JRuby 1.7

•SQLite3•PostgreSQL•MySQL

「JRuby & SQL Server 2008」でもRSpecがPASS

×

Ruby DB

手動テストで確認するのは、無理Saturday, January 26, 13

Page 25: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

さな太郎が動作する環境•Linuxサーバ(EC2、VPS)•Mac OS X•*BSD•heroku•Windows自宅でも、クラウドでも、

導入環境を選ばない→ 多くの人に使ってもらえる!

Saturday, January 26, 13

Page 26: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

さな太郎が動作する環境

新しい環境で動作させたい場合は、まず、その環境で

RSpecとCucumberを実行

すれば、簡単に動作検証ができる。

At first, execute rspec and cucumber to check whether new environment is supported or not.

Saturday, January 26, 13

Page 27: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Gain (Conclusion)

That is,

つまり

Saturday, January 26, 13

Page 28: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Gain (Conclusion)

You can use SANATARO anytime, anywhere!

おまえらが使える家計簿ソフト作ったから、

使えやSaturday, January 26, 13

Page 29: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Anyway,

家族で使えるソフトウェアを

作るのを、オススメします!!!

いいこといっぱいあるよ!

Anyway, I surely recommend that you create apps for your family. There are lots of good effects.

Saturday, January 26, 13

Page 30: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

One more,•家計簿さな太郎•github kaznum/sanataro

•是非、使ってみてください!

•Issue、Pull Requestお待ちしております!

Try Sanataro. I’m always waiting for post issues and pull-requests!

Saturday, January 26, 13

Page 31: 家族のためにエンジニアとしてやってみたこと(What I did for my family as an engineer)

Thank you :)

Saturday, January 26, 13