Your SlideShare is downloading. ×
0
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
Dealing with Software by being softaware
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

Dealing with Software by being softaware

556

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
556
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
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. Dealing with Software Development By being aware of software Ruben Gonzalez Blanco rubenb@tid.es Telefonica Digital Product Development and Innovation
  • 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. 1. Raising AwarenessA view about software that many have forgotten
  • 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. Software Development Cliché
  • 6. Dennis the Software Developer
  • 7. Observing Dennis coding Problem & Coding Idea Code Run & Test Outcome Programmer
  • 8. Leonard the Artist
  • 9. Observing Leonard painting Scene & Painting Idea Paint Review Outcome Painter
  • 10. Humm…Find the Differences Problem & Scene & Coding Idea Painting Idea Code Paint Run & Test Review Outcome OutcomeProgrammer Painter
  • 11. The Artist continuous flow SynthesisIntention Realization Feedback
  • 12. The Artist continuous flow The SW Developer SynthesisIntention Realization Feedback
  • 13. The Artist attributes Knowledge Mastery Talent Motivation Creativity Inspiration Passion Genius
  • 14. The Artist attributesThe SW Developer Knowledge Mastery Talent Motivation Creativity Inspiration Passion Genius
  • 15. Art vs pure EngineeringUnpredictable Planned Practices VS Process Tacit Explicit Human Industrial
  • 16. Art vs pure EngineeringSoftware Development Unpredictable Planned Practices VS Process Tacit Explicit Human Industrial
  • 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. 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. 2. What it is Software and Software Development? A practitioner view
  • 20. Software Development is a process ofcontinuous Knowledge TransformationCreative Human
  • 21. Knowledge about a Problem and a possible Solution Problem Solution
  • 22. Based on Continuous Synthesis knowledgeLearning by doing Time Knowledge transformation What How Source Executable Code SW Human
  • 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. 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. 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. Software Developers work at the highest level of detail and complexity Problem User Space Level of Detail Software SpaceDeveloperswork here Technical Solution
  • 27. Software Developers are Essential Source Executable Code SW They do the most complex and relevant task : Transforming Knowledge into Code
  • 28. Software is a form of KnowledgeProblem Solution What How Source Executable Code SW
  • 29. 3. Dealing effectively with Software Pieces of advice to understand agile and software crafting practices
  • 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. 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. Grow-Emerge the system• From Idea to Realization based on continuous synthesis-feedback and adaptation
  • 33. Avoid BUFs Big Up Front Designs, Specifications, Plans…• Make your Design and Specification Emerge – Plans, Estimations and Designs must be Intentional
  • 34. Have Customers in the Team
  • 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. Have a Creative Environment Foster and attract Creative minds
  • 37. Have the Conditions that Inspire Creativity Creativity needs both the “connected mind” and the “creative pauses”
  • 38. Do not set Goals, create Challengesgive Directions Facilitate, Support and Help
  • 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. Adapt Methods to the Team Not the oppositeFDD Crystal DSDM Pragmatic Programming Adaptive Software Development Remember: There is No Silver Bullet…. Fred Brooks
  • 41. Treat Software Code as an Asset
  • 42. Have a Team of Talented Individuals passionateinspired creative team player
  • 43. ConclusionBE SOFT-AWARE http://agilemanifesto.org/ http://manifesto.softwarecraftsmanship.org/
  • 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. 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/

×