Your SlideShare is downloading. ×
0
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Scenes of Software Development
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Scenes of Software Development

4,286

Published on

名古屋工業大学 オブジェクト指向勉強会 http://www-ailab.elcom.nitech.ac.jp/oop/

名古屋工業大学 オブジェクト指向勉強会 http://www-ailab.elcom.nitech.ac.jp/oop/

Published in: Technology, Business
0 Comments
22 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,286
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
25
Comments
0
Likes
22
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. オブジェクト指向勉強会 2012.01.13 (Fri) 20号館5階 名古屋工業大学 コミュニケーションルームソフトウェア開発の現場風景 (株) 永和システムマネジメント サービスプロバイディング事業部 アジャイルグループ 伊藤 浩一
  • 2. 御礼
  • 3. 永和システムマネジメントサービスプロバイディング事業部について私たちは「お客さまに価値を提供し続けるシステム」を構築します。お客様の環境やビジネスの変化に適応するシステムを、お客さまと一緒に育てていきます。私たちは、ソフトウェア開発のプロフェッショナルとしての誠実な態度と、アジャイル開発のアプローチを通じてこれを達成します。そして、そのための手段としてオブジェクト指向スクリプト言語Rubyが有効だと信じて行動しています。 不明確か つ不安定 な要求 要求  R Δ (t) システム  S(t) Δ t R(t) チーム(t) S(t) Copyright (c) 2011 Eiwa System Management, Inc.
  • 4. 私たちのミッション投資効果のある、ちゃんと動くソフトウェアを、期待される期間内に提供し、それを維持・変更し続けられるベンダであり、ソフトウェアは、人が人のために作っているというシステム開発を実現します。 Copyright (c) 2011 Eiwa System Management, Inc.
  • 5. Ruby x Agileの実績 10 c-team.jp 8 6人数 4 2 decoblog.ne.jp 0 0 6 12 18 24 30 期間 (月) Copyright (c) 2011 Eiwa System Management, Inc.
  • 6. 適用分野 R&D 17% BtoCサービス 業務システム 52% 31% Copyright (c) 2011 Eiwa System Management, Inc.
  • 7. 社員の活動書籍コミュニティ  オブラブ  日本XPユーザグループ  日本Rubyの会  Asakusa.rb Copyright (c) 2011 Eiwa System Management, Inc.
  • 8. 自己紹介•プログラマ兼現場リーダー• たまに講演、まれに執筆• XPやオブジェクト指向で人生が曲がって2004年から現職•好きなオブジェクト指向関係の書籍は『アジャイルソフトウェア開発の奥義』
  • 9. 私の関心事
  • 10. ソフトウェア開発とは何か
  • 11. ―Kenji Hiranabeソフトウェアは人が人のために作るもの
  • 12. 本日は よろしくお願いします
  • 13. 本編
  • 14. 概要親兄弟にも説明の難しいソフトウェア開発の仕事について話します。今回はソフトウェア開発の現場で、私の目に届く範囲の開発者が実践していることや、私の身の回りで起きていることを題材に話を進めたいと考えています。標本となるプロジェクトはアジャイルと言われる開発手法を用いた事例から引用します。特に少人数での開発の進め方に対して、何かしら持ち帰って頂ける話にできればと思います。
  • 15. 個人とチームの話
  • 16. お品書き•本編における少人数開発• 現場の一日• 現場の一週間• いち技術者として
  • 17. お品書き•本編における少人数開発• 現場の一日• 現場の一週間• いち技術者として
  • 18. 現場
  • 19. 開発風景
  • 20. だいたいhttp://www.slideshare.net/t_wada/the-only-one-big-thing-every-programmer-should-know/582∼4人からの規模
  • 21. プロジェクト別
  • 22. 座席の配置プロジェクト単位で会話がしやすいように座席配置
  • 23. 2∼4人?
  • 24. プロジェクトにはステークホルダーがいっぱい
  • 25. サービスインフラ提供 業務 ○○に 期待 ご近所さん
  • 26. サービスインフラ提供 業務 ○○に 期待 利害関係別
  • 27. サービスインフラ提供 業務 ○○に 期待 ここ 話の中心
  • 28. 本編における少人数開発• 同一場所の開発体制2∼4人• 顧客や他社ベンダーなどを含めると見た目以上の要員が関わる•東京都心が中心だが、プロジェクトによって中部、北陸、海外に分散してのリモート開発
  • 29. お品書き•本編における少人数開発• 現場の一日• 現場の一週間• いち技術者として
  • 30. 現場の一日
  • 31. 現場の活動例 プログラミング朝会 15% 10% 10:00 5% 25% 40% ディスカッション夕会 5% 18:00 昼休 午後 夕会 その他 朝会 午前
  • 32. チーム開発の一日は朝会ではじまる
  • 33. 朝会
  • 34. 朝会• デイリースタンドアップ• 2人∼4人で5分∼10分くらい• 昨日の行ったこと、今日行うこと、そして、問題点を共有する• ありのままを、正直に伝える
  • 35. 問題が出た!•簡単なアドバイスで解決できる問題であれば、その場で解決•大きな問題で時間がかかる議論が必要であれば、別途の場となる分科会を設ける• 朝会自体はライトウェイトに
  • 36. 問題が出ない!?• 本当に問題はないの?• プロジェクトは本質的に火事• メンバーは仕事中ぼやいていないか?•あなたにとって小さな問題がチームにとって大きな問題かも
  • 37. プログラミング
  • 38. あなたならどちらを選ぶ?プログラマーがコードリーディングしている時•A)年末の冬休みに緊急障害が発生し、真夜 中に1メソッド2000行のCodeの解読 に頭を痛め「ひゃはー!これはひどい、 Codeだぜ!」と思った瞬間•B)自分よりできる奴が書いたコードを読ん で「あ!こんな記述できるんだ。こりゃ Coolだぜ!」と思った瞬間 http://patterns00-haru01.heroku.com/#57
  • 39. 動くきれいなコードを目指す
  • 40. ものには、すべて名前がある「静的解析とはつまりソースコードの解析だ。そしてソースコードの解析とは名前の調査である。ファイル名・関数名・変数名・型名・メンバ名など、プログラムは名前のかたまりだ。」 -Rubyソースコード完全解説 (青木 峰郎)
  • 41. 名前重要
  • 42. http://www.slideshare.net/t_wada/the-only-one-big-thing-every-programmer-should-know/58―Takuto Wada (t-wada)
  • 43. RSpecdescribe Array, "when empty" do before do @empty_array = [] end it "should be empty" do @empty_array.should be_empty endend編注: 現在の RSpec ではコマンド名が spec から rspecになっています http://jp.rubyist.net/magazine/?0021-Rspec
  • 44. t-wada先生の写経術
  • 45. 継続は力なり
  • 46. チームのインフラ
  • 47. (D)SCM•技術者の基礎技術• 私の系譜は CVS→SVN→Git•ローカルからリポジトリにコミットすることで個人のコードからチームのコードになる• プロジェクトの歴史に名を残す責任
  • 48. 最近の動向
  • 49. 自動化•繰り返し発生するコンピュータを使った作業をプログラミング•例えばビルド、テスト、アセンブリ、デプロイなどは定型作業•誰でもオペレーションミスなく同じようにコマンド実行
  • 50. コンピュータの仕事と人の仕事の住み分け
  • 51. 継続的インテグレーション•リポジトリに変更を補足して、ビルド、テスティングを実行•ビルド結果を IRC やメール等で通知•ビルドを壊したことをいち早く見つけて小さい差分のうちに対処
  • 52. http://speakerdeck.com/u/kenchan/p/devlove201112?slide=34詳しくは、リンク元の @kenchan による『DevLOVE201112 ビルドをだいじに』を参照してください
  • 53. ホワイトボード
  • 54. 会話風景
  • 55. 何を話しているの?• 困った時はメンバーに相談• 仕様の理解の意識合わせ• 設計方針の議論• 利用技術の相談
  • 56. 往http://www.slideshare.net/t_wada/the-only-one-big-thing-every-programmer-should-know/58 来
  • 57. http://www.slideshare.net/t_wada/the-only-one-big-thing-every-programmer-should-know/58共通項を探せ !
  • 58. http://www.slideshare.net/t_wada/the-only-one-big-thing-every-programmer-should-know/58同じ物を見る
  • 59. 問題の見える化•触媒 (PC、壁、ホワイトボード) を使って問 題を見える化する その作 いま考えて きみ、 りだと○○の時の振 いる設計を書き出しThat s You! きちんとお互いのイ る舞いが足りなくな てみると、こんな感じ メージが合った状態で いですか なのね 話してる?You vs Me Problem vs Us
  • 60. Problem vs Us•個人についてではなく問題に対 して意見をする•You vs Me ではなく、 Problem vs Us の形にする
  • 61. 情報の伝達鮮度の高い情報は時間が過ぎると乖離する
  • 62. 報連相は社会人の基本 人生の師匠の言葉
  • 63. 情報伝達の重要性•ステークホルダーがいっぱい• 壮大な伝言ゲーム• 正しい情報を正しく伝える• 間違った情報に対して正しく作ってしまうと、顧客が欲しいものを提供できない
  • 64. メールとWiki•メーリングリストで時々の情報の発信をする (スレッド)•Wikiでまとめ情報を参照できるようにする (スタック)
  • 65. 情報の同期は頻繁に信頼関係の低下▶ ズレはどこまでも 時間経過 勘違い、忘れた、欲しい物の 内容や優先順が変わった、連絡がな いとそもそも何を考えしてるのか 分からず不安 早めにズレを修正 時間の経過▶
  • 66. 相手に分かる言葉で•文章に不安があれば、メンバー間でのレビューは有効な手段• 大きな質疑はキャッチボールで•伝える事柄と伝える方法は車の両輪だと考えること と達人プログラマーにもあるよ
  • 67. こんな大人はやだ•「言った」「言ってない」問題• 大人として恥ずかしい• 伝えるための努力をしよう
  • 68. お品書き•本編における少人数開発• 現場の一日• 現場の一週間• いち技術者として
  • 69. イテレーション (1週間) の流れ ふりかえりやバックログの優先度 付けなどはお客さまにご協力いた 要求 だきながら進めていきます。 ふりかえり  KPT 次の  ベロシティ バックログ イテレーションへ機能  仕様の確認 タスクバグ  見積り プログラミング 内部リリース  TDDデータ移行  スパイク  CIドキュメント環境構築性能 受入テストをジョーカー 受入テストを 書く する リリース可能な  完了基準 Ship It! ソフトウェア Copyright (c) 2011 Eiwa System Management, Inc.
  • 70. 開発打ち合わせ
  • 71. 開発打ち合わせ•デモとフィードバック これらは一例• 要望のヒアリング• 作業の完了条件を共有する• 問題点、課題点の共有• 全体スケジュールの確認
  • 72. 見積りと計画づくり
  • 73. 見積りは計画を立てるための視点
  • 74. 見積りと計画づくり•開発メンバー全員で、• 作業を洗い出して、•作業が終わるのにどれだけかかるかを見積って、•優先順位をつけてならべる
  • 75. プランニングポーカー
  • 76. 数字が合わない!•ゲームではなく見積り• 数字合わせではない•どうなればその作業が終わるかの認識が合っているか話し合おう•まわりが見落としている作業にきみだけが気づいているかも
  • 77. Pivotal Tracker www.pivotaltracker.com
  • 78. 変化ヲ抱擁セヨ
  • 79. ふりかえり
  • 80. Problem vs Us•個々での気づきや問題を共有• 原則チーム全員が参加する• 反省会ではなくふりかえり• 過去から学んで、いまの状況を 確認して、次への改善行動に繋 げる
  • 81. 関連した他の
  • 82. なぜチームか?
  • 83. 何事もひとりでは成し遂げられない
  • 84. 敬意
  • 85. まだ時間は大丈夫ですね?
  • 86. お品書き•本編における少人数開発• 現場の一日• 現場の一週間• いち技術者として
  • 87. どんな人と仕事をしたいですか?
  • 88. 人に注目する•同僚• プロジェクトメンバー• コミュニティ• プロダクトやサービスの製作者• 興味ある技術発信をしている人
  • 89. 発信http://ja.wikipedia.org/wiki/ファイル:2002東京タワー塗装作業中.jpg
  • 90. 外部発信•Web日記• 勉強会• 執筆• ソフトウェアの公開、パッチ• コミュニティ
  • 91. Web日記
  • 92. ソースコード
  • 93. 情報発信•アウトプットを出すことで整理できる• パブリックな職務経歴書• 誰(どんな人)と仕事をしたいか• 仕事をしたいと思われるか 中の人の顔が見える組織
  • 94. 誰と重要by Ryo Amano
  • 95. 何ができれば一人前と呼ばれるでしょうか?
  • 96. 専門職
  • 97. 少人数開発 と多能工
  • 98. 現場技術の一部•Linux まだまだあるぞ!• ソースコードの読み書き• 文書の読み書き• 見積りと計画作り• (D)SCM、テスト、自動化
  • 99. 一朝一夕には成せない
  • 100. 継続は力なり
  • 101. 名著が語る重要なこと 達人プログラマー David Thomas, Andrew Hunt 1.自らの技術に関心を持つこと 2.あなたの仕事について考えること! アジャイルサムライ Jonathan Rasmusson1.君は学ぶことが心から好きだ2.君はソフトウェアのことを大切に思っている
  • 102. 予習復習研究はこちら 達人プログラマー David Thomas, Andrew Hunt http://www.amazon.co.jp/dp/4894712741 アジャイルサムライ Jonathan Rasmusson 西村直人, 角谷信太郎(監訳) 近藤修平, 角掛拓未(訳) http://www.amazon.co.jp/dp/4274068560 受託開発の極意 岡島 幸男 http://www.amazon.co.jp/dp/4774134538
  • 103. 誇りと 希望

×