ゆるい感じのプログラムを書きたい。

プログラムの敷居を下げて、多くの人が開発出来るように色々書いていきます!

リーン開発_第2章_原則

ソフトウェア開発の7つの原則

1.無駄をなくす

  • 1-1.無駄なコーディング、無駄な機能は減らす。
  • 1-2.テストの段階で必要のないテストによるバグや修正が入り大幅なコスト増になる。

2.知識を得る

  • 2-1.最小限の機能セットを早期に顧客にリリースして、評価とフィードバックを得る。
  • 2-2.毎日ビルドして、統合テストからすばやいフィードバックを得る。
  • 2-3.経験と直感を備えたチームリーダに適切な決定を下させること、新規機能が追加しやすいモジュールアーキテクチャーにする。
  • 2-4.市場から学習を得て成長するシステムが市場受け入れ度が高い。経験論的な制御システム(フィードバックに基づく制御システム)

3.品質を上げる

  • 3-1.テストは最後にせず、作っている段階から行い欠陥分は後回しにぜず、その時に対処する。 そのことにより、後々欠陥による身動きが取れない状況を防ぐことが出来る。

4決定を遅らせる

  • 4-1.初期の機能開発で重要な設計について将来変更しづらい決定をしてはならない。
  • 4-2.変更が起きそうなポイントでは複数の選択肢を持ち続ける必要がある。
  • 4-3.システム開発は不確実性だから、いろいろなソリューションを実験して難しい問題に対処するのがいい。
  • 4-4.取り返しのつかない決定はできる限り遅らせるのが得策

5.早く提供する

  • 5-1.顧客に気を変える時間を与えないためにソフトウェアを早く提供する方法を見つける。
  • 5-2.安心して決定を任せられ、最後まで助け合える思考力のある人材が専任で必要である。
  • 5-3.許可を得なくても問題を解決し、変化に適応でるように作業が構造化されている。

6.人を尊重する

作業を行う人の視点からの尊重3つの基本理念

1.起業家的リーダー
  • 人を尊重する企業は、優秀なリーダーを育て、彼らにリーダーシップを発揮させることで、 さらに熱心に思考力にあふれた人材を育て、すばらしい製品を生み出す作業に打ち込ませる。
2.エキスパートエンジニア
  • 専門知識をすべて外注に任せている企業は、競合他社も同様に外注出来る。
  • 専門知識など必要ないと考えている企業は、維持可能な競争優位を何ひとつ持ち合わせてないことに気づく。
  • 聡明な企業なら、確実に目的に合ったエキスパートエンジニアを育成し、目標達成に必要な専門知識を備えた人員を配備しようとする。
3.責任ベースのプランニングと制御
  • 人を尊重するということは、チームに概要計画とそれに見合う目標を提示し、目標に向けて自立実行するよう任せるこという意味である。
  • やるべき事や、やり方を指示するのではなく、人が頭を使い自らそれを見つけ出すことが出来る、自律管理能力を備えた組織を作るということなのである。

7.全体を最適化する。

  • 7-1.人は、複雑な状況を小さな部分へと分解する傾向がありそのため、システム全体を部分的に最適化を行いがちになる。
  • 7-2.部分的に最適化で、パフォーマンスやコスト、スケジュールとした場合、顧客満足や品質が考慮されなく、二の次にされてしまう恐れがある。
  • 7-3.最適化の改善項目を増やした場合、今度は事柄が多すぎて改善する作業の本当の目標が、多くの改善目標に埋もれ見失ってしまう。
  • 7-4.解決策は低い視点ではなく、高い視点で上位を計測すること。本当に重要な1項目だけを測定対象として行う。


例「投資対効果を計測する」など。 本当に必要なひとつだけを最適化すれば、その他諸々はひとりでに最適化されていくはずとのこと。