tohnaka giri ninjo programmer tohnaka at agilejpan 2011

41
© usp lab. 2011 1 立ち上がれ、 「義理・人情プログラマ」 2011年4月15日 有限会社ユニバーサル・シェル・プログラミング研究所 當仲寛哲 Agile Japan 2011 キーノートセッション2 UNIX哲学原点回帰による 「使う人」「作る人」の二人三脚開発のススメ

Upload: kenji-hiranabe

Post on 10-May-2015

3.291 views

Category:

Technology


3 download

DESCRIPTION

Tohnaka-san's keynote at AgileJapan2011 on Apr.15, 2011.Giri Ninjo Programmer, three-legged race with your customer.

TRANSCRIPT

Page 1: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011 1

立ち上がれ、「義理・人情プログラマ」

2011年4月15日有限会社ユニバーサル・シェル・プログラミング研究所

當仲寛哲

Agile Japan 2011キーノートセッション2

UNIX哲学原点回帰による「使う人」「作る人」の二人三脚開発のススメ

Page 2: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

1.イントロダクション

2

Page 3: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

自己紹介

當仲寛哲(とうなかのぶあき)

・昭和41年生まれ 44歳 おとめ座

・USP研究所代表(設立6年)

→シェルスクリプトで、企業基幹システム

「はやく、やすく、やわらかく」構築する

ユニケージ開発手法を研究、実践、普及

3

Page 4: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

経歴

・兵庫県加古川出身

・18歳で上京(バブル期の絶頂)

・学生時代→アルバイトで自活。不登校

・金欲しさ+やけくそ+自分探し

→80以上の職を点々と

→ガテン職業観

→海外放浪39カ国

→帰国したら研究室の椅子がなくなっていた

4

Page 5: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

コンピュータとの出会い

・コンピュータは独学(金と就職のため)

・場末プログラマの哲学

=正確なのは当たり前

「スピードがすべてを解決する」

5

Page 6: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

挫折の時代

・大学と反りが合わず、フェードアウト

(敗北)

・コンピュータを捨て、商売の世界へ

・スーパーマーケットの食品売場で

店員として働く

(2年間で人間リセット)

6

Page 7: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

人生の転機

・松田康之さんとの出会い

・松田さんから学んだ3つの教え

①情報は自らが引き出すものコンピュータによって「情報化」されるのではない

②ソフトより大切なのはデータであるデータを決して消してはならない

③どんなことがあっても、絶対に諦めてはならない

7

Page 8: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

偶然の再会

・27歳のときに偶然UNIXと再会

・UNIXの思想がガテンな感性とシンクロ

まずは作って動かす

小さな道具を組み合わせて問題を解決

(コマンドとパイプ)

データはテキストファイルで保存する

→松田さん+UNIX思想=ユニケージ

8

Page 9: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

業務改革にコンピュータをフル活用

・金無し、権限なし、素人だけ

・工夫(頭)+情熱(胸)+ネアカ(腹)

←PCの劇的な性能向上

&PC-UNIXが後押し

・経営方針転換によってリストラ

・再びフリーターに

(37歳、二度目の敗北)

9

Page 10: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

ゼロからの再出発

・USP研究所創立(38歳)

・何もないところから再出発

・悔しい思いを何回か

・本業と稼業とは峻別

・ひたすらチャンスを信じて待つ

10

Page 11: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

良品計画との出会い

・基幹160システムを

6名、半年で構築

・不要労働根絶と社内

コミュニケーション

強化を、技術の力で、

実現

11

Page 12: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

・採用実績:約20社

・内製化、ローコスト化、組織改革の道具

これまでの実績(一部)

12

Page 13: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

2.ユニケージ開発手法の技術

13

Page 14: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

UNIX思想を手法として突き詰める

・テキストファイル(L1-L5)

・自作コマンド(グルーテクノロジー)

・パイプを使いまくる

・お作法が大切

14

Page 15: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

コンピュータシステムは、

データの入出力をしているに過ぎない

3つをシェルスクリプトで

作成

データ中心主義

15

入力系

発生ファイル

利用 整理ファイル

ファイル 3つの間はすべて

ファイルI/F

出力系 整理系

Page 16: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

テキストファイル(L1-L5)

16

Level1 (イベントデータ)

Level2(確定データ)

Level3(5W1Hデータ)

Level4(アプリケーションデータ)

Level5(出力データ)

生データ

確定データ

整理・集計データ

POMPA

帳票データ等

Page 17: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

個性的なコマンド群

例)tateyoko :文字列の縦横変換

mojihame:テンプレートに文字をはめこむ

sem :セマフォ操作

システムコールをコマンド化

keycut :レコードをキー毎にファイル分割

paraawk :並列処理

MapReduce日本版?

17

Page 18: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

シェルスクリプトでシステムを作る

約40年間変わることのないUNIX/Linuxの基本的技術

18

#!/bin/bashjoin0 key=1 master URE | データのマッチングself 2 3 4/NF-1 | フィールドのセレクトsm2 1 2 3 4 | サムアップsm4 1 1 2 2 3 4 | 中間計self 1 2 4 3 5 | フィールドのセレクトsm5 1 3 4 4 | 合計map num=1 | 縦横変換comma 4 5 カンマ編集exit 0

Page 19: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

パイプを使ってマルチコアを味方に

19

コマンド1 | コマンド2 | コマンド3 | コマンド4 | ・・・

コア1 コア2 コア3 コア4

キャッシュ

CPU

カーネルスケジューラの機能を素直に使う

プロセス単位にコア分散される

シェルスクリプトのパイプ処理

Page 20: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

一休さん方式(データが先)

20

第1フェーズ データ整理 第2フェーズ アプリ開発

Level1(生データ)

Level2

Level3

画面 帳票

Level2(確定データ)

Level3(5W1Hデータ)

Level4(アプリケーションデータ)

Level5(出力データ)

Page 21: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

2次開発+

リリース

床屋方式(2度開発方式)

21

業務重要度7割

短期間 少人月

業務重要度3割

短期間 少人月

業務の骨格となる設計

1次開発+

リリース 便利機能設計

1次設計 2次設計

Page 22: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

ドキュメント

実用的かつ必要十分なもののみ

主なドキュメント:

業務フロー

L1、L3のレイアウト

各アプリケーションのI/O仕様

シェルスクリプト(コメントいっぱい)

22

Page 23: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

つづきはWEBで

・この後の懇親会などで質問してください

・コミュニティもあるよ

23

USP友の会 usptomonokai.jp

Page 24: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

3.立ち上がれ、「義理・人情プログラマ」

24

Page 25: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

ユニケージ開発手法が目指すもの

・「義理」と「人情」と「コンピュータ」

技術の力でハッピーを広める

全方位的なスピードが必須

ソフトウエアの生産性だけでなく、「人間力」も重視 →自律と協働

25

的確で明るい表現力良い人間関係を築く力

Page 26: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

・所在地:東京都港区西新橋

・社員数:21名(うちエンジニアは10名)

・年齢層:21歳~76歳

USP研究所の現在

26

Page 27: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

USP研究所の現在

・本業の他、農業支援、伝統工芸品の

販売、出版、コミュニティ活動なども

27

・会社は自分のため、世の進歩のため、人を守るため・「自律と協働」ができる人材育成

Page 28: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

エンジニアにまつわる状況(その1)

・楽しいプログラマがいなくなった

(致命的問題)

・プログラマから失われた2つの力

①自分で一からプログラムを書く力

②パーツではなく、システムとして

動くプログラムを書く力

28

Page 29: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

エンジニアにまつわる状況(その2)

三悪

1.顧客・開発会社:

エンジニアを奴隷のように扱う

2.草食系エンジニア:暗くて不健康

3.ゼネコン体質業界:

甘やかしとピンハネでエンジニアを蝕む

29

世界を見渡しても、エンジニアの地位が低いのは日本だけ

Page 30: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

原始、エンジニアはスターであった

・エンジニアは、ハッピーメーカーだ!

技術の力で世の中に大きな影響を及ぼす

(人/会社/社会)

※スター(=正義の味方)の一例:

スーパーマン(ドジな新聞記者)

スパイダーマン(ぱっとしない学生)

只野仁(冴えない課長)

30

エンジニアであることは、スターの入り口に立ったも同然

Page 31: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

事態を打開するには

→圧倒的な生産性の高さを武器に戦おう

31

開発生産性= プログラム要求仕様

システム効果

業務ニーズ

メーカー視点 ユーザ視点

正のスパイラル

業務の理解

すぐできる

業務や変化がわかる

少人数でできる

ユーザーとの距離が縮まる

スキルを磨く コミュニケーション

提案力+行動力

Page 32: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

自分たちにできることは何か?

それは、小さな勇気と不断の努力

・時間を作る。街に出る。身体を使う

・「わかっている」から「できる」になる

・自分から話しかける

・人の誘いを断らない

32

Page 33: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

エンジニアのみなさんへのエール

・ココロの壁を破って、勇気をもって

一歩前に出よう!

・多くの人があなたの活躍を

待っている!

・世界的にも歴史的にも、

尊敬されるのは「世の中」のために

生きた人33

Page 34: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

仕事へのモチベーションは情熱だ!

・技術の力で困っている人を助けよう

・夢や希望を一緒に実現しよう

→心に響き合う「熱い思い」こそが仕事へのモチベーションになる!

参考例)

ブラックジャック(ココロに響かないと仕事しない)

ゴルゴ13(クールだけど、基本的には上に準ずる)

34

Page 35: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

お金について、どう考えるか

お金を払う方が「ゴメンナサイ」と謝る

・自分で出来ないことを人に頼む

・感謝の気持ちを「しかたなく」お金で表す

35

お金を払うほうが「エライ」→仕事が金の毟り合いに堕落

Page 36: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

「作る側」と「使う側」の正しい関係

業務とシステムは表裏一体

→システムは業務にある(コンピュータは道具にすぎない)

業務

システム

コンピュータプログラム

システムを語るコンピュータを理解する

業務(システム)と社風を深く理解するユーザー エンジニア

Page 37: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

技術の力で、「信頼社会」を取り戻す

信頼社会のベース

①開かれたコミュニケーション

②各自が高品質な仕事を提供

37

Page 38: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

技術の力で、「信頼社会」を取り戻す

・お金、契約、資格、制度は信頼の「代わり」

・信頼を取り戻すために

→まずは自分が信頼されること

→質の高い仕事をきっちり仕上げること

→技術力を磨くこと

38

一人でも多くの人が信頼に足るレベルに達することが

パワーになる

Page 39: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

日本的なものを追求すると「Agile」になる

従来 Agile 日本的価値観

プロセスやツール

個人と相互作用チームワークシンクロ

包括的なドキュメント

動くソフトウェア 実利主義

契約交渉 顧客との協調 和をもって尊し

計画に従う 変化への対応 現場力

39

Page 40: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

我唯足知(われただたるをしる)

×「現状満足」

○様々な経験を通じて「足るを知る」

40

アジャイル実践は蜘蛛の糸

Page 41: Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

© usp lab. 2011

賛同者・研究希望者・修行希望者は

41

ご清聴ありがとうございました。

www.usp-lab.com