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