Kspin20121201 kobayashi

3,255 views
3,208 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,255
On SlideShare
0
From Embeds
0
Number of Embeds
2,371
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kspin20121201 kobayashi

  1. 1. ソフトウェア開発のパラダイムシフト2012年12月01日SEA関西プロセス分科会小林修
  2. 2. ソフトウェア開発のパラダイムシフト キーワード ◦ アジャイル ◦ クラウド ◦ ソーシャル ◦ ビッグデータ ◦ ユーザエクスペリエンス ◦ ドメイン・スペシフィック ◦ DevOps ◦ ALM (Application Lifecycle Management) ◦ Continuous なんとか
  3. 3. ソフトウェア開発のパラダイムシフト 「開発」から「要求」と「運用」への重点シフト 閉じた「システム」から環境との融合へ 「情報」から「活動」へ 「計画駆動」から「試行とモニター」へ 個人の技術・能力から「集合知」へ 汎用的な完全性の追求から目的に応じた多様性へ 「寺院」から「仏壇」へ、 「仏壇」から「お守り」へ
  4. 4. ソフトウェア開発のパラダイムシフト 変化の抱擁 ◦ 要求の変化 ◦ 環境の変化 ◦ 技術の変化 境界線の消失 ◦ システムの境界 ◦ 工程の境界 ◦ 立場の境界 ◦ 利害の境界
  5. 5. ソフトウェア開発のパラダイムシフト アジャイル開発のベースライン (第49回SEA関西プロセス分科会での ディスカッション) ◦ 阪井さん(SRA)  現場からの改善、プロジェクト毎の改善 ◦ 西さん(XPJUG関西)  人の満足 ◦ 前川さん(Panasonic)  ゴールの共有(顧客も含めて)と達成 ◦ 和田さん(富士通)  おもてなしの心
  6. 6. ソフトウェア開発のパラダイムシフト 開発技術・開発環境の変化 ◦ 「動的言語」へのシフト  Ruby + Ruby on Rails  JavaScript + HTML5 ◦ 「データベース」の多様化  NoSQL (RelationalからKey-Value Storeへ)  ACID属性からCAP定理へ ◦ 情報の不定形化  Web、Wiki、検索エンジン  タブレット + タッチパネル  マルチメディア(音声・映像) ◦ 技術のオープンソース化と集約化の併存  プラットホームの主要な要素のオープンソース化  高度化・多様化によりフォローできる人・組織の局所化 ◦ テスト技術・プラットホームの進化  テストの自動化フレームワーク(なんとかUnit)  統合・構成管理との融合
  7. 7. ソフトウェア開発のパラダイムシフト ACID属性 ◦ データベースが「備えるべき」属性  Atomicity(原子性)  Consistency(一貫性)  Isolation(独立性)  Durability(持続性) CAP定理 ◦ 大規模環境では  Consistency(一貫性)  Availability(可用性)  Partition Tolerance(分割耐性) ◦ の3つのうち、同時に2つまでしか満たせな い
  8. 8. 岸田孝一さんの先見 岸田孝一さんの先見 (SEA関西プロセス分科会発足にあたっ て岸田さんから言われたこと) ◦ 「ウォーターフォール」原論文再読  Windston Royce, “Managind the Development of Large Software Systems” ◦ プロダクト指向からプロセス指向へ  Christiane Floyd, "Outline of Paradigm Change in Software Engineering" ◦ プロセス・プログラミング  Leon J. Osterweil, “Software Processes are Software too” ◦ ソフトウェアの進化  M M Lehman and J F Ramil, “Software Evolution”
  9. 9. 「ソフトウェア技術者」の今後 「つながり」を深める  技術者同士のコミュニティ(間の交流)  他部署・他業種  家族・地域 (その時間を作るための自己管理技術)  コードを介した交流 (ハッカソン、コードリトリート) 必要な技術  分析力、振り返り力  ツール力  組み合わせ力  チーム力  コード力 ソフトウェアを「楽しむ」  ユーザとして楽しむ  技術者として楽しむ  オープンソースを読む・いじる
  10. 10. 参考文献 まつもとゆきひろ, “コードの未来” ◦ 日経BP, ISBN978-4-8222-3463-8 岸田孝一, “Position Statement for SS2009 WG1” ◦ http://sea.jp/Events/symposium/ss2009/contents/04-HCI/ss2009- hci-pp-kishida.pdf Winston R. Royce “Managing the Development of Large Software Systems” ◦ http://leadinganswers.typepad.com/leading_answers/files/original _waterfall_paper_winston_royce.pdf Christiane Floyd, "Outline of Paradigm Change in Software Engineering” ◦ http://dl.acm.org/citation.cfm?id=43851&bnc=1 Leon Osterweil, “Software Processes are Software Too” ◦ http://dl.acm.org/citation.cfm?id=41766 M. M. Lehman, Life Cycles, and Laws of Software Evolution” ◦ http://users.ece.utexas.edu/~perry/education/SE-Intro/lehman.pdf

×