SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Dealing with Software Development




        By being aware of software         Ruben Gonzalez Blanco
                                                  rubenb@tid.es
                                                 Telefonica Digital
                                Product Development and Innovation
Agenda
1. Raising Awareness
2. Understanding Software Development
3. 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.
1. Raising Awareness

A view about software that many
         have forgotten
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         Iterative
Crafting                                                CMM
                           Software Engineering                                          Agile Manifesto
                                                             No Silver Bullet
                                                                                             Craftsmanship
                                                                                             Manifesto
Software Development Cliché
Dennis the Software Developer
Observing Dennis coding

                  Problem &
                  Coding Idea


                     Code



                  Run & Test
                   Outcome
     Programmer
Leonard the Artist
Observing Leonard painting

                    Scene &
                  Painting Idea

                     Paint


                   Review
                   Outcome
        Painter
Humm…Find the Differences

             Problem &                 Scene &
             Coding Idea             Painting Idea

                Code                    Paint



             Run & Test               Review
              Outcome                 Outcome
Programmer                 Painter
The Artist continuous flow

               Synthesis




Intention                  Realization


               Feedback
The Artist continuous flow
    The SW Developer


                       Synthesis




Intention                          Realization


                       Feedback
The Artist attributes
      Knowledge
       Mastery
         Talent
      Motivation
       Creativity
      Inspiration
        Passion
        Genius
The Artist attributes
The SW Developer

         Knowledge
          Mastery
            Talent
         Motivation
          Creativity
         Inspiration
           Passion
           Genius
Art vs pure Engineering


Unpredictable         Planned
  Practices     VS    Process
    Tacit             Explicit

  Human              Industrial
Art vs pure Engineering
Software Development



   Unpredictable             Planned
     Practices         VS    Process
       Tacit                 Explicit

      Human                 Industrial
Crafting or Engineering?


Software Development seems to be closer to
Crafting and Artistic work rather than pure
Engineering work….

        …but some good practices of Engineering
        disciplines can still be applied.
Craft or Art?



               Just a matter of genius and talent




Software code written by humans can have “beauty” in the way is
written, run, structured and how collaborate/ interact between its parts
2. What it is Software and
 Software Development?
     A practitioner view
Software Development is a process of
continuous Knowledge Transformation




Creative                     Human
Knowledge about a Problem and a
       possible Solution

    Problem        Solution
Based on Continuous Synthesis
                                                                 knowledge
Learning by doing


                                                                  Time


                             Knowledge
                           transformation

                    What                    How
                                                  Source   Executable
                                                   Code        SW
                              Human
Both Iterative and Incremental
                                   Iteratimental
ITERATIVE




            • To find out “what” and “how”
            • To improve the System


INCREMENTAL




            • 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
Software emerges and grows
continuously along the process of
creation (iterative + incremental)




 Idea                                                                System “Specs”
 Need                                                                Architecture
 Problem                                                             Software System


           Emergence is the key characteristic of complex systems.
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

                   Team
Multiple Levels                                                                   Multiple
of Iteratimental                                                                 Disciplines
      Cycles       Individuals
Software Developers work at the
  highest level of detail and complexity
                    Problem

                               User Space




                                                     Level of Detail
                                    Software Space




Developers
work here      Technical Solution
Software Developers are Essential



                                   Source   Executable
                                    Code        SW



   They do the most complex and relevant task :

        Transforming Knowledge into Code
Software is a form of Knowledge

Problem   Solution


                     What

                     How
                            Source   Executable
                             Code        SW
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 = Working Software
            • Each Cycle Embraces the Change naturally

              Team Cycles or Sprints (1-4 weeks)
                                      •   New Features         •   New Features
                                      •   Changes              •   Changes
Intention                             •   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
Be Value Driven
                                Fixed                       Fixed
                                 Scope          Resources                Time




                                                            Value
                                                            Driven
                                 Plan
                                Driven
    The Plan creates                                                 feature intent & commitment to
cost/schedule estimates                                                   deliver the max value




                    Resources            Time                Scope

                           Estimated                  Intentional &
                                                      Max Possible
                                                                               SOURCE : DSDM
                                                                          BasedFrom Dean Leffingwell
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
  – Plans, Estimations and Designs must be Intentional
Have Customers in the Team
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
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 Challenges




give Directions


                  Facilitate, Support and Help
Simplify Essential Complexity
     Diminish Accidental Complexity*
Essential complexity is caused by the problem to be solved, and nothing can
remove it. Represents the difficulty inherent in any problem.

Accidental complexity grows from the things we feel we must build to
mitigate essential complexity. Relates to problems that we create on our own
and which can be fixed.




                                                 *By Neal Ford in “97 things every architect should know”.
Adapt Methods to the Team
                                                    Not the opposite




FDD
         Crystal
 DSDM

           Pragmatic Programming



        Adaptive Software Development



                               Remember: There is No Silver Bullet…. Fred Brooks
Treat Software Code as an Asset
Have a Team of Talented Individuals
               passionate




inspired                      creative




               team player
Conclusion



BE SOFT-AWARE


        http://agilemanifesto.org/
        http://manifesto.softwarecraftsmanship.org/
Agile Manifesto
We 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 plan
That is, while there is value in the items on the right, we value the items on the left more


                                                          http://agilemanifesto.org/
Craftsmanship Manifesto
As aspiring Software Craftsmen we are raising the bar of professional software development by
practicing 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 partnerships

That is, in pursuit of the items on the left we have found the items on the right to be indispensable.

                                               http://manifesto.softwarecraftsmanship.org/

Weitere ähnliche Inhalte

Ähnlich wie Dealing with Software by being softaware

Value driven - the future of software development
Value driven - the future of software developmentValue driven - the future of software development
Value driven - the future of software developmentCJ Marsh
 
Lean Manufacturing's Influence on Agile
Lean Manufacturing's Influence on Agile Lean Manufacturing's Influence on Agile
Lean Manufacturing's Influence on Agile Stephen Forte
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Lemi Orhan Ergin
 
GENERATOR V1.0 (Shenzhen)
GENERATOR V1.0 (Shenzhen)GENERATOR V1.0 (Shenzhen)
GENERATOR V1.0 (Shenzhen)HAX
 
Human Thinking Applied To Software Testing Discipline
Human Thinking Applied To Software Testing DisciplineHuman Thinking Applied To Software Testing Discipline
Human Thinking Applied To Software Testing DisciplineLalatendu Rath
 
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Burr Sutter
 
We Can't Do That Here
We Can't Do That HereWe Can't Do That Here
We Can't Do That HereKmanthei
 
Simon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architectSimon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architectdrewz lin
 
On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115
On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115
On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115jeffreylancaster
 
Big Event Looping Deck
Big Event Looping DeckBig Event Looping Deck
Big Event Looping DeckSteve Lange
 
Programming for non-Programmers
Programming for non-ProgrammersProgramming for non-Programmers
Programming for non-ProgrammersEvgeny Tsarkov
 
OnePointech company profile
OnePointech company profileOnePointech company profile
OnePointech company profileOnePointech
 
Software and all that comes with it
Software and all that comes with itSoftware and all that comes with it
Software and all that comes with itAlberto Brandolini
 
Effective Software Development in the 21st Century
Effective Software Development in the 21st CenturyEffective Software Development in the 21st Century
Effective Software Development in the 21st CenturyAgileee
 
Alfresco Day Madrid - John Newton - Keynote
Alfresco Day Madrid - John Newton - KeynoteAlfresco Day Madrid - John Newton - Keynote
Alfresco Day Madrid - John Newton - KeynoteToni de la Fuente
 
Alfresco day madrid john newton - key note
Alfresco day madrid   john newton - key noteAlfresco day madrid   john newton - key note
Alfresco day madrid john newton - key noteAlfresco Software
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010Klocwork
 

Ähnlich wie Dealing with Software by being softaware (20)

Value driven - the future of software development
Value driven - the future of software developmentValue driven - the future of software development
Value driven - the future of software development
 
Lean Manufacturing's Influence on Agile
Lean Manufacturing's Influence on Agile Lean Manufacturing's Influence on Agile
Lean Manufacturing's Influence on Agile
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
 
GENERATOR V1.0 (Shenzhen)
GENERATOR V1.0 (Shenzhen)GENERATOR V1.0 (Shenzhen)
GENERATOR V1.0 (Shenzhen)
 
Human Thinking Applied To Software Testing Discipline
Human Thinking Applied To Software Testing DisciplineHuman Thinking Applied To Software Testing Discipline
Human Thinking Applied To Software Testing Discipline
 
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
 
We Can't Do That Here
We Can't Do That HereWe Can't Do That Here
We Can't Do That Here
 
Hcsd talk ibm
Hcsd talk ibmHcsd talk ibm
Hcsd talk ibm
 
Simon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architectSimon brown archsummit2012 the-frustrated-architect
Simon brown archsummit2012 the-frustrated-architect
 
On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115
On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115
On the Future of Libraries: How? not What? (Skills Assessment) - METRO - 13_0115
 
Big Event Looping Deck
Big Event Looping DeckBig Event Looping Deck
Big Event Looping Deck
 
Programming for non-Programmers
Programming for non-ProgrammersProgramming for non-Programmers
Programming for non-Programmers
 
OnePointech company profile
OnePointech company profileOnePointech company profile
OnePointech company profile
 
Software and all that comes with it
Software and all that comes with itSoftware and all that comes with it
Software and all that comes with it
 
Effective Software Development in the 21st Century
Effective Software Development in the 21st CenturyEffective Software Development in the 21st Century
Effective Software Development in the 21st Century
 
Alfresco Day Madrid - John Newton - Keynote
Alfresco Day Madrid - John Newton - KeynoteAlfresco Day Madrid - John Newton - Keynote
Alfresco Day Madrid - John Newton - Keynote
 
Alfresco day madrid john newton - key note
Alfresco day madrid   john newton - key noteAlfresco day madrid   john newton - key note
Alfresco day madrid john newton - key note
 
SCA in an Agile World | June 2010
SCA in an Agile World | June 2010SCA in an Agile World | June 2010
SCA in an Agile World | June 2010
 
Pres_video.pdf
Pres_video.pdfPres_video.pdf
Pres_video.pdf
 
Will You Join Me
Will You Join MeWill You Join Me
Will You Join Me
 

Kürzlich hochgeladen

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Dealing with Software by being softaware

  • 1. Dealing with Software Development By being aware of software Ruben Gonzalez Blanco rubenb@tid.es Telefonica Digital Product Development and Innovation
  • 2. Agenda 1. Raising Awareness 2. Understanding Software Development 3. 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 Awareness A 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 Iterative Crafting CMM Software Engineering Agile Manifesto No Silver Bullet Craftsmanship Manifesto
  • 7. Observing Dennis coding Problem & Coding Idea Code Run & Test Outcome Programmer
  • 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 Outcome Programmer Painter
  • 11. The Artist continuous flow Synthesis Intention Realization Feedback
  • 12. The Artist continuous flow The SW Developer Synthesis Intention Realization Feedback
  • 13. The Artist attributes Knowledge Mastery Talent Motivation Creativity Inspiration Passion Genius
  • 14. The Artist attributes The SW Developer Knowledge Mastery Talent Motivation Creativity Inspiration Passion Genius
  • 15. Art vs pure Engineering Unpredictable Planned Practices VS Process Tacit Explicit Human Industrial
  • 16. Art vs pure Engineering Software Development Unpredictable Planned Practices VS Process Tacit Explicit Human Industrial
  • 17. Crafting or Engineering? Software Development seems to be closer to Crafting and Artistic work rather than pure Engineering work…. …but some good practices of Engineering disciplines can still be applied.
  • 18. Craft or Art? Just a matter of genius and talent Software code written by humans can have “beauty” in the way is written, 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 of continuous Knowledge Transformation Creative Human
  • 21. Knowledge about a Problem and a possible Solution Problem Solution
  • 22. Based on Continuous Synthesis knowledge Learning by doing Time Knowledge transformation What How Source Executable Code SW Human
  • 23. Both Iterative and Incremental Iteratimental ITERATIVE • To find out “what” and “how” • To improve the System INCREMENTAL • 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 grows continuously along the process of creation (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 Team Multiple Levels Multiple of Iteratimental Disciplines Cycles Individuals
  • 26. Software Developers work at the highest level of detail and complexity Problem User Space Level of Detail Software Space Developers work 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 Knowledge Problem 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 • Changes Intention • 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 to cost/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 Challenges give Directions Facilitate, Support and Help
  • 39. Simplify Essential Complexity Diminish Accidental Complexity* Essential complexity is caused by the problem to be solved, and nothing can remove it. Represents the difficulty inherent in any problem. Accidental complexity grows from the things we feel we must build to mitigate essential complexity. Relates to problems that we create on our own and which can be fixed. *By Neal Ford in “97 things every architect should know”.
  • 40. Adapt Methods to the Team Not the opposite FDD 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 passionate inspired creative team player
  • 43. Conclusion BE SOFT-AWARE http://agilemanifesto.org/ http://manifesto.softwarecraftsmanship.org/
  • 44. Agile Manifesto We 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 plan That is, while there is value in the items on the right, we value the items on the left more http://agilemanifesto.org/
  • 45. Craftsmanship Manifesto As aspiring Software Craftsmen we are raising the bar of professional software development by practicing 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 partnerships That is, in pursuit of the items on the left we have found the items on the right to be indispensable. http://manifesto.softwarecraftsmanship.org/