Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
[email protected]© Don Gray 2010 @donaldegray
The System Behind the Software
[email protected]© Don Gray 2010 @donaldegray
What’s So Hard?
Find out what the user would like to
experience
Build itDelay
[email protected]© Don Gray 2010 @donaldegray
What is a system?
1. A system’s parts must all be present for the system to carry out its purpose optimally. If you can take components away from something without affecting its functioning and its relationships, then you have a collection, not a system.
2. A system’s parts must be arranged in a specific way for the system to carry out its purpose. If the components of a collection can be combined in any random order, then they do not make up a system.
3. Systems have specific purposes within larger systems.
4. Systems maintain their stability through fluctuations and adjustments. Systems achieve this stability through the interactions, feedback and adjustments that continually circulate among the system parts, and between the system and its environment.
5. Systems have feedback. Feedback is the transmission and return of information.
[email protected]© Don Gray 2010 @donaldegray
Equipment
Systems Build
Design/Code/Test Kick tires/Slam doorsLanguages
IDEsTeams
TestDistribution
Design and
redesign
IdeaGeneration
Consumers
ConsumerResearch
Upstream work
[email protected]© Don Gray 2010 @donaldegray
Why Bother?
[email protected]© Don Gray 2010 @donaldegray
A bad syste
m will
defeat a good
person every tim
e.
W. Edward Dem
ing
[email protected]© Don Gray 2010 @donaldegray
Cascade Feedback
DailyStandup
ReleaseBacklog
SprintBacklog
DevEfforts
ProductBacklog
[email protected]© Don Gray 2010 @donaldegray
Systems Principles
• Clarify Target
• Decrease Delays
• Increase Requisite Variety
• Have Single Responsibility
• Increase Bandwidth
• Match Impedance
• Reduce Friction
• Optimize Overall System
[email protected]© Don Gray 2010 @donaldegray
Clarify Target
[email protected]© Don Gray 2010 @donaldegray
Decrease Delays
nouna period of time by which something is late or postponed : a two-hour delay | long delays in obtaining passports.• the action of delaying or being delayed : I set off without delay.• Electronics the time interval between the propagation of an electrical signal and its reception.• an electronic device that introduces such an interval, esp. in an audio signal.
Action-
+
Delay
[email protected]© Don Gray 2010 @donaldegray
Increase Requisite Variety
[email protected]© Don Gray 2010 @donaldegray
Have Single Responsibility
[email protected]© Don Gray 2010 @donaldegray
Increase Bandwidth
[email protected]© Don Gray 2010 @donaldegray
Match Impedance
[email protected]© Don Gray 2010 @donaldegray
Reduce Friction
[email protected]© Don Gray 2010 @donaldegray
Optimize Overall System
Development
QAT
IT
ExternalDependencies
[email protected]© Don Gray 2010 @donaldegray
Optimize Overall System
Development
QAT
IT
ExternalDependencies
If you give a m
anager a
numerical ta
rget, he'll
make
it even if
he has to destr
oy
the company in
the process.
W. Edward Dem
ing
[email protected]© Don Gray 2010 @donaldegray20
12 Agile Principles
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time scale.
4. Business people and developers must work together daily throughout the project.
[email protected]© Don Gray 2010 @donaldegray21
12 Agile Principles
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
[email protected]© Don Gray 2010 @donaldegray22
12 Agile Principles
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity - the art of maximizing the amount of work not done - is essential.
11. The best architectures, requirements and designs emerge from self-organizing teams.
12.At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
[email protected]© Don Gray 2010 @donaldegray
Credits
1. Rube Goldberg http://www.flickr.com/photos/freshwater2006/693945631/sizes/z/2. Software viewed as a system: Inspired by The New Economics - W. Edward Deming page 583. Target http://www.flickr.com/photos/akire_yrko/3573644189/sizes/z/4. Dollars http://www.flickr.com/photos/bsuter/1254095605/sizes/z/5. Teamwork http://www.flickr.com/photos/wwworks/1384952210/sizes/z/