tohnaka giri ninjo programmer tohnaka at agilejpan 2011
DESCRIPTION
Tohnaka-san's keynote at AgileJapan2011 on Apr.15, 2011.Giri Ninjo Programmer, three-legged race with your customer.TRANSCRIPT
© usp lab. 2011 1
立ち上がれ、「義理・人情プログラマ」
2011年4月15日有限会社ユニバーサル・シェル・プログラミング研究所
當仲寛哲
Agile Japan 2011キーノートセッション2
UNIX哲学原点回帰による「使う人」「作る人」の二人三脚開発のススメ
© usp lab. 2011
1.イントロダクション
2
© usp lab. 2011
自己紹介
當仲寛哲(とうなかのぶあき)
・昭和41年生まれ 44歳 おとめ座
・USP研究所代表(設立6年)
→シェルスクリプトで、企業基幹システム
「はやく、やすく、やわらかく」構築する
ユニケージ開発手法を研究、実践、普及
3
© usp lab. 2011
経歴
・兵庫県加古川出身
・18歳で上京(バブル期の絶頂)
・学生時代→アルバイトで自活。不登校
・金欲しさ+やけくそ+自分探し
→80以上の職を点々と
→ガテン職業観
→海外放浪39カ国
→帰国したら研究室の椅子がなくなっていた
4
© usp lab. 2011
コンピュータとの出会い
・コンピュータは独学(金と就職のため)
・場末プログラマの哲学
=正確なのは当たり前
「スピードがすべてを解決する」
5
© usp lab. 2011
挫折の時代
・大学と反りが合わず、フェードアウト
(敗北)
・コンピュータを捨て、商売の世界へ
・スーパーマーケットの食品売場で
店員として働く
(2年間で人間リセット)
6
© usp lab. 2011
人生の転機
・松田康之さんとの出会い
・松田さんから学んだ3つの教え
①情報は自らが引き出すものコンピュータによって「情報化」されるのではない
②ソフトより大切なのはデータであるデータを決して消してはならない
③どんなことがあっても、絶対に諦めてはならない
7
© usp lab. 2011
偶然の再会
・27歳のときに偶然UNIXと再会
・UNIXの思想がガテンな感性とシンクロ
まずは作って動かす
小さな道具を組み合わせて問題を解決
(コマンドとパイプ)
データはテキストファイルで保存する
→松田さん+UNIX思想=ユニケージ
8
© usp lab. 2011
業務改革にコンピュータをフル活用
・金無し、権限なし、素人だけ
・工夫(頭)+情熱(胸)+ネアカ(腹)
←PCの劇的な性能向上
&PC-UNIXが後押し
・経営方針転換によってリストラ
・再びフリーターに
(37歳、二度目の敗北)
9
© usp lab. 2011
ゼロからの再出発
・USP研究所創立(38歳)
・何もないところから再出発
・悔しい思いを何回か
・本業と稼業とは峻別
・ひたすらチャンスを信じて待つ
10
© usp lab. 2011
良品計画との出会い
・基幹160システムを
6名、半年で構築
・不要労働根絶と社内
コミュニケーション
強化を、技術の力で、
実現
11
© usp lab. 2011
・採用実績:約20社
・内製化、ローコスト化、組織改革の道具
これまでの実績(一部)
12
© usp lab. 2011
2.ユニケージ開発手法の技術
13
© usp lab. 2011
UNIX思想を手法として突き詰める
・テキストファイル(L1-L5)
・自作コマンド(グルーテクノロジー)
・パイプを使いまくる
・お作法が大切
14
© usp lab. 2011
コンピュータシステムは、
データの入出力をしているに過ぎない
3つをシェルスクリプトで
作成
データ中心主義
15
入力系
発生ファイル
利用 整理ファイル
ファイル 3つの間はすべて
ファイルI/F
出力系 整理系
© usp lab. 2011
テキストファイル(L1-L5)
16
Level1 (イベントデータ)
Level2(確定データ)
Level3(5W1Hデータ)
Level4(アプリケーションデータ)
Level5(出力データ)
生データ
確定データ
整理・集計データ
POMPA
帳票データ等
© usp lab. 2011
個性的なコマンド群
例)tateyoko :文字列の縦横変換
mojihame:テンプレートに文字をはめこむ
sem :セマフォ操作
システムコールをコマンド化
keycut :レコードをキー毎にファイル分割
paraawk :並列処理
MapReduce日本版?
17
© 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
© usp lab. 2011
パイプを使ってマルチコアを味方に
19
コマンド1 | コマンド2 | コマンド3 | コマンド4 | ・・・
コア1 コア2 コア3 コア4
キャッシュ
CPU
カーネルスケジューラの機能を素直に使う
プロセス単位にコア分散される
シェルスクリプトのパイプ処理
© usp lab. 2011
一休さん方式(データが先)
20
第1フェーズ データ整理 第2フェーズ アプリ開発
Level1(生データ)
Level2
Level3
画面 帳票
Level2(確定データ)
Level3(5W1Hデータ)
Level4(アプリケーションデータ)
Level5(出力データ)
© usp lab. 2011
2次開発+
リリース
床屋方式(2度開発方式)
21
業務重要度7割
短期間 少人月
業務重要度3割
短期間 少人月
業務の骨格となる設計
1次開発+
リリース 便利機能設計
1次設計 2次設計
© usp lab. 2011
ドキュメント
実用的かつ必要十分なもののみ
主なドキュメント:
業務フロー
L1、L3のレイアウト
各アプリケーションのI/O仕様
シェルスクリプト(コメントいっぱい)
22
© usp lab. 2011
つづきはWEBで
・この後の懇親会などで質問してください
・コミュニティもあるよ
23
USP友の会 usptomonokai.jp
© usp lab. 2011
3.立ち上がれ、「義理・人情プログラマ」
24
© usp lab. 2011
ユニケージ開発手法が目指すもの
・「義理」と「人情」と「コンピュータ」
技術の力でハッピーを広める
全方位的なスピードが必須
ソフトウエアの生産性だけでなく、「人間力」も重視 →自律と協働
25
的確で明るい表現力良い人間関係を築く力
© usp lab. 2011
・所在地:東京都港区西新橋
・社員数:21名(うちエンジニアは10名)
・年齢層:21歳~76歳
USP研究所の現在
26
© usp lab. 2011
USP研究所の現在
・本業の他、農業支援、伝統工芸品の
販売、出版、コミュニティ活動なども
27
・会社は自分のため、世の進歩のため、人を守るため・「自律と協働」ができる人材育成
© usp lab. 2011
エンジニアにまつわる状況(その1)
・楽しいプログラマがいなくなった
(致命的問題)
・プログラマから失われた2つの力
①自分で一からプログラムを書く力
②パーツではなく、システムとして
動くプログラムを書く力
28
© usp lab. 2011
エンジニアにまつわる状況(その2)
三悪
1.顧客・開発会社:
エンジニアを奴隷のように扱う
2.草食系エンジニア:暗くて不健康
3.ゼネコン体質業界:
甘やかしとピンハネでエンジニアを蝕む
29
世界を見渡しても、エンジニアの地位が低いのは日本だけ
© usp lab. 2011
原始、エンジニアはスターであった
・エンジニアは、ハッピーメーカーだ!
技術の力で世の中に大きな影響を及ぼす
(人/会社/社会)
※スター(=正義の味方)の一例:
スーパーマン(ドジな新聞記者)
スパイダーマン(ぱっとしない学生)
只野仁(冴えない課長)
30
エンジニアであることは、スターの入り口に立ったも同然
© usp lab. 2011
事態を打開するには
→圧倒的な生産性の高さを武器に戦おう
31
開発生産性= プログラム要求仕様
システム効果
業務ニーズ
メーカー視点 ユーザ視点
正のスパイラル
業務の理解
すぐできる
業務や変化がわかる
少人数でできる
ユーザーとの距離が縮まる
スキルを磨く コミュニケーション
提案力+行動力
© usp lab. 2011
自分たちにできることは何か?
それは、小さな勇気と不断の努力
・時間を作る。街に出る。身体を使う
・「わかっている」から「できる」になる
・自分から話しかける
・人の誘いを断らない
32
© usp lab. 2011
エンジニアのみなさんへのエール
・ココロの壁を破って、勇気をもって
一歩前に出よう!
・多くの人があなたの活躍を
待っている!
・世界的にも歴史的にも、
尊敬されるのは「世の中」のために
生きた人33
© usp lab. 2011
仕事へのモチベーションは情熱だ!
・技術の力で困っている人を助けよう
・夢や希望を一緒に実現しよう
→心に響き合う「熱い思い」こそが仕事へのモチベーションになる!
参考例)
ブラックジャック(ココロに響かないと仕事しない)
ゴルゴ13(クールだけど、基本的には上に準ずる)
34
© usp lab. 2011
お金について、どう考えるか
お金を払う方が「ゴメンナサイ」と謝る
・自分で出来ないことを人に頼む
・感謝の気持ちを「しかたなく」お金で表す
35
お金を払うほうが「エライ」→仕事が金の毟り合いに堕落
© usp lab. 2011
「作る側」と「使う側」の正しい関係
業務とシステムは表裏一体
→システムは業務にある(コンピュータは道具にすぎない)
業務
システム
コンピュータプログラム
システムを語るコンピュータを理解する
業務(システム)と社風を深く理解するユーザー エンジニア
=
© usp lab. 2011
技術の力で、「信頼社会」を取り戻す
信頼社会のベース
①開かれたコミュニケーション
②各自が高品質な仕事を提供
37
© usp lab. 2011
技術の力で、「信頼社会」を取り戻す
・お金、契約、資格、制度は信頼の「代わり」
・信頼を取り戻すために
→まずは自分が信頼されること
→質の高い仕事をきっちり仕上げること
→技術力を磨くこと
38
一人でも多くの人が信頼に足るレベルに達することが
パワーになる
© usp lab. 2011
日本的なものを追求すると「Agile」になる
従来 Agile 日本的価値観
プロセスやツール
個人と相互作用チームワークシンクロ
包括的なドキュメント
動くソフトウェア 実利主義
契約交渉 顧客との協調 和をもって尊し
計画に従う 変化への対応 現場力
39
© usp lab. 2011
我唯足知(われただたるをしる)
×「現状満足」
○様々な経験を通じて「足るを知る」
40
アジャイル実践は蜘蛛の糸
© usp lab. 2011
賛同者・研究希望者・修行希望者は
41
ご清聴ありがとうございました。
www.usp-lab.com