Dealing with Software Development        By being aware of software         Ruben Gonzalez Blanco                         ...
Agenda1. Raising Awareness2. Understanding Software Development3. Dealing Effectively with Software  DISCLAIMER   Followin...
1. Raising AwarenessA view about software that many         have forgotten
Dealing with Software. Evolution                                                                                Agile Meth...
Software Development Cliché
Dennis the Software Developer
Observing Dennis coding                  Problem &                  Coding Idea                     Code                  ...
Leonard the Artist
Observing Leonard painting                    Scene &                  Painting Idea                     Paint            ...
Humm…Find the Differences             Problem &                 Scene &             Coding Idea             Painting Idea ...
The Artist continuous flow               SynthesisIntention                  Realization               Feedback
The Artist continuous flow    The SW Developer                       SynthesisIntention                          Realizati...
The Artist attributes      Knowledge       Mastery         Talent      Motivation       Creativity      Inspiration       ...
The Artist attributesThe SW Developer         Knowledge          Mastery            Talent         Motivation          Cre...
Art vs pure EngineeringUnpredictable         Planned  Practices     VS    Process    Tacit             Explicit  Human    ...
Art vs pure EngineeringSoftware Development   Unpredictable             Planned     Practices         VS    Process       ...
Crafting or Engineering?Software Development seems to be closer toCrafting and Artistic work rather than pureEngineering w...
Craft or Art?               Just a matter of genius and talentSoftware code written by humans can have “beauty” in the way...
2. What it is Software and Software Development?     A practitioner view
Software Development is a process ofcontinuous Knowledge TransformationCreative                     Human
Knowledge about a Problem and a       possible Solution    Problem        Solution
Based on Continuous Synthesis                                                                 knowledgeLearning by doing  ...
Both Iterative and Incremental                                   IteratimentalITERATIVE            • To find out “what” an...
Software emerges and growscontinuously along the process ofcreation (iterative + incremental) Idea                        ...
Requires Understanding “What” and   “How” at multiple levels of detail                                 Domain             ...
Software Developers work at the  highest level of detail and complexity                    Problem                        ...
Software Developers are Essential                                   Source   Executable                                   ...
Software is a form of KnowledgeProblem   Solution                     What                     How                        ...
3. Dealing effectively with Software   Pieces of advice to understand agile      and software crafting practices
Work in small Short Steps            • Each Cycle Delivering “Working” Software               – Measure of Progress = Work...
Be Value Driven                                Fixed                       Fixed                                 Scope    ...
Grow-Emerge the system• From Idea to Realization based on continuous  synthesis-feedback and adaptation
Avoid BUFs                   Big Up Front Designs, Specifications, Plans…• Make your Design and Specification Emerge  – Pl...
Have Customers in the Team
Blend a Multiple Disciplines in a Team       Collaborating together                               Users                   ...
Have a Creative Environment  Foster and attract Creative minds
Have the Conditions that Inspire Creativity    Creativity needs both the “connected mind” and the “creative pauses”
Do not set Goals, create Challengesgive Directions                  Facilitate, Support and Help
Simplify Essential Complexity     Diminish Accidental Complexity*Essential complexity is caused by the problem to be solve...
Adapt Methods to the Team                                                    Not the oppositeFDD         Crystal DSDM     ...
Treat Software Code as an Asset
Have a Team of Talented Individuals               passionateinspired                      creative               team player
ConclusionBE SOFT-AWARE        http://agilemanifesto.org/        http://manifesto.softwarecraftsmanship.org/
Agile ManifestoWe are uncovering better ways of developing software by doing it and helping others do it.                 ...
Craftsmanship ManifestoAs aspiring Software Craftsmen we are raising the bar of professional software development bypracti...
Upcoming SlideShare
Loading in...5
×

Dealing with Software by being softaware

579

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
579
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Dealing with Software by being softaware"

  1. 1. Dealing with Software Development By being aware of software Ruben Gonzalez Blanco rubenb@tid.es Telefonica Digital Product Development and Innovation
  2. 2. Agenda1. Raising Awareness2. Understanding Software Development3. Dealing Effectively with Software DISCLAIMER Following are a set of personal opinions and understandings about software development and software engineering profession. The purpose of this presentation is just sharing those not convincing you or changing your mind.
  3. 3. 1. Raising AwarenessA view about software that many have forgotten
  4. 4. Dealing with Software. Evolution Agile Methods Scrum, XP, FDD, DSDM, OpenUP… Iterative Processes Spiral, RAD, Objectory, RUP Predictive Processes Waterfall, CMM, ISO9000 Crafting 1950 1960 1970 1980 1990 2000 2010 Evolutionary Rapid Prototyping Software Crisis Waterfall Incremental IterativeCrafting CMM Software Engineering Agile Manifesto No Silver Bullet Craftsmanship Manifesto
  5. 5. Software Development Cliché
  6. 6. Dennis the Software Developer
  7. 7. Observing Dennis coding Problem & Coding Idea Code Run & Test Outcome Programmer
  8. 8. Leonard the Artist
  9. 9. Observing Leonard painting Scene & Painting Idea Paint Review Outcome Painter
  10. 10. Humm…Find the Differences Problem & Scene & Coding Idea Painting Idea Code Paint Run & Test Review Outcome OutcomeProgrammer Painter
  11. 11. The Artist continuous flow SynthesisIntention Realization Feedback
  12. 12. The Artist continuous flow The SW Developer SynthesisIntention Realization Feedback
  13. 13. The Artist attributes Knowledge Mastery Talent Motivation Creativity Inspiration Passion Genius
  14. 14. The Artist attributesThe SW Developer Knowledge Mastery Talent Motivation Creativity Inspiration Passion Genius
  15. 15. Art vs pure EngineeringUnpredictable Planned Practices VS Process Tacit Explicit Human Industrial
  16. 16. Art vs pure EngineeringSoftware Development Unpredictable Planned Practices VS Process Tacit Explicit Human Industrial
  17. 17. Crafting or Engineering?Software Development seems to be closer toCrafting and Artistic work rather than pureEngineering work…. …but some good practices of Engineering disciplines can still be applied.
  18. 18. Craft or Art? Just a matter of genius and talentSoftware code written by humans can have “beauty” in the way iswritten, run, structured and how collaborate/ interact between its parts
  19. 19. 2. What it is Software and Software Development? A practitioner view
  20. 20. Software Development is a process ofcontinuous Knowledge TransformationCreative Human
  21. 21. Knowledge about a Problem and a possible Solution Problem Solution
  22. 22. Based on Continuous Synthesis knowledgeLearning by doing Time Knowledge transformation What How Source Executable Code SW Human
  23. 23. Both Iterative and Incremental IteratimentalITERATIVE • To find out “what” and “how” • To improve the SystemINCREMENTAL • To release functionality incrementally • To gradually add parts to the System when “what” and “how” are known From Jeff Patton : http://www.agileproductdesign.com/blog/dont_know_what_i_want.html
  24. 24. Software emerges and growscontinuously along the process ofcreation (iterative + incremental) Idea System “Specs” Need Architecture Problem Software System Emergence is the key characteristic of complex systems.
  25. 25. Requires Understanding “What” and “How” at multiple levels of detail Domain What System User Component What What What How How What What How How How How TeamMultiple Levels Multipleof Iteratimental Disciplines Cycles Individuals
  26. 26. Software Developers work at the highest level of detail and complexity Problem User Space Level of Detail Software SpaceDeveloperswork here Technical Solution
  27. 27. Software Developers are Essential Source Executable Code SW They do the most complex and relevant task : Transforming Knowledge into Code
  28. 28. Software is a form of KnowledgeProblem Solution What How Source Executable Code SW
  29. 29. 3. Dealing effectively with Software Pieces of advice to understand agile and software crafting practices
  30. 30. Work in small Short Steps • Each Cycle Delivering “Working” Software – Measure of Progress = Working Software • Each Cycle Embraces the Change naturally Team Cycles or Sprints (1-4 weeks) • New Features • New Features • Changes • ChangesIntention • Enhancements • Enhancements IT1 IT2 IT3 Adapt Adapt Adapt Value Driven Feedback Feedback Feedback Synthesis Working Software Individuals Cycles (minutes, hours, day) Incremental + Iterative Development Cycles = Iteratimental Cycles
  31. 31. Be Value Driven Fixed Fixed Scope Resources Time Value Driven Plan Driven The Plan creates feature intent & commitment tocost/schedule estimates deliver the max value Resources Time Scope Estimated Intentional & Max Possible SOURCE : DSDM BasedFrom Dean Leffingwell
  32. 32. Grow-Emerge the system• From Idea to Realization based on continuous synthesis-feedback and adaptation
  33. 33. Avoid BUFs Big Up Front Designs, Specifications, Plans…• Make your Design and Specification Emerge – Plans, Estimations and Designs must be Intentional
  34. 34. Have Customers in the Team
  35. 35. Blend a Multiple Disciplines in a Team Collaborating together Users Ux Designers Domain Experts Business Analysts Testers Developers Architects Product Managers Deployment Engineers System Engineers Human Factors Foster Open Communications and Collaborations
  36. 36. Have a Creative Environment Foster and attract Creative minds
  37. 37. Have the Conditions that Inspire Creativity Creativity needs both the “connected mind” and the “creative pauses”
  38. 38. Do not set Goals, create Challengesgive Directions Facilitate, Support and Help
  39. 39. Simplify Essential Complexity Diminish Accidental Complexity*Essential complexity is caused by the problem to be solved, and nothing canremove it. Represents the difficulty inherent in any problem.Accidental complexity grows from the things we feel we must build tomitigate essential complexity. Relates to problems that we create on our ownand which can be fixed. *By Neal Ford in “97 things every architect should know”.
  40. 40. Adapt Methods to the Team Not the oppositeFDD Crystal DSDM Pragmatic Programming Adaptive Software Development Remember: There is No Silver Bullet…. Fred Brooks
  41. 41. Treat Software Code as an Asset
  42. 42. Have a Team of Talented Individuals passionateinspired creative team player
  43. 43. ConclusionBE SOFT-AWARE http://agilemanifesto.org/ http://manifesto.softwarecraftsmanship.org/
  44. 44. Agile ManifestoWe are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a planThat is, while there is value in the items on the right, we value the items on the left more http://agilemanifesto.org/
  45. 45. Craftsmanship ManifestoAs aspiring Software Craftsmen we are raising the bar of professional software development bypracticing it and helping others learn the craft. Through this work we have come to value: Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnershipsThat is, in pursuit of the items on the left we have found the items on the right to be indispensable. http://manifesto.softwarecraftsmanship.org/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×