Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

3,725 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,725
On SlideShare
0
From Embeds
0
Number of Embeds
343
Actions
Shares
0
Downloads
49
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Tohnaka Giri Ninjo Programmer Tohnaka at AgileJpan 2011

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

×