Advertisement

ACCU 2013 Exploration of Phenomenology of Software Development

Apr. 13, 2013
Advertisement

More Related Content

Similar to ACCU 2013 Exploration of Phenomenology of Software Development(20)

Advertisement

ACCU 2013 Exploration of Phenomenology of Software Development

  1. An Exploration of the Phenomenology of Software Development Charles Tolman ct@acm.org http://charlestolman.com ACCU 2013 12th April 2013 © Charles Tolman 2013
  2. Why Explore Phenomenology? • And just what has it got to do with Software Development? • There has been a major change in the form of tools, from physical to virtual. Dijkstra 1972: “[computers] have had a great impact on our society in their capacity as tools…[this] will be but a ripple…compared with the much more profound influence they will have in their capacity of intellectual challenge which will be without precedence in the cultural history of mankind.” • In tune with the underlying Cartesian, dualistic world-view, we focus primarily on results. Though necessary - there are significant negative consequences. • Phenomenology can lead us to a more integrated world-view which I believe this industry needs to be more balanced, and human, if it is to progress. © Charles Tolman 2013
  3. Talk Structure • Background : Novice – Journeyman – Old Grump. • Key Observations : Boundary Crossing. • Philosophy : Descartes – Goethe. • Software : Knowledge – Imagination – Patterns. • The Future? © Charles Tolman 2013
  4. Background: Novice – The Early Years • Started out with Electronics at 17 back in 1974! Originally a shy young adolescent ‘nerd’. Found comfort within the ‘inner world’ of thought. • Southampton University Electronic Engineering Degree in 1979. Moving swiftly from hardware to software developer in 1980. • Moved into the field of Media. TV/Film Editing systems. Worked with cool tech and was enticed by the faerie glamour of the toys! Implemented a multi-tasking scheduler in Assembler. © Charles Tolman 2013
  5. Background: Journeyman - The Dangerous Years! • Playing with more complex, generic, structures. Many of which don’t get used. Focusing on the tools rather than the problem. Creating unnecessarily complex solutions. Letting the Idea overshadow the Problem Context. • Optimism & arrogance about what can be done, soon followed by… SHEER PANIC as the system gets away from you. • Lack of realisation that debugging requires more complex thought than coding. • Highlighting the fact that the programmer needs to become more self-aware in order to progress through this phase. © Charles Tolman 2013
  6. Background: The Grumpy Old Programmer • Very aware of the limitations of one’s thinking: One is too frequently WRONG! Again and Again and Again and Again… Particularly easy to see when debugging. • Maintenance becomes a priority, leading to: A drive towards simplicity/clarity/minimalism. Code can look like novice code but will use complexity when required. • This Appropriate Minimalism shows the wish to find the TRUE ESSENCE of a problem: Yet there is balanced judgement between Perfection and Pragmatism. © Charles Tolman 2013
  7. Key Observations: The Importance of Energy • It takes a significant amount of mental energy to do this job. • We are making many decisions minute to minute. • The difference in the rate of progress when there is more energy. As a technical lead a significant concern is the level of ENERGY in a team. • Obvious points: but easily forgotten in the heat of trying to hit deadlines. © Charles Tolman 2013
  8. Key Observations: The Foundation in Play • Many early programmers were amateur electronics/radio enthusiasts. Then the amateurs turned professional. • At the beginning of the PC ‘revolution’ many programs were games. • Transition from programming as PLAY to programming as ECONOMIC. But we forget this foundation in PLAY at our peril: • It is a fundamentally human activity that fosters resourcefulness. • It helps us to understand the world. • Of course there is always a need to balance: • Play & Economics • Quality & Utility • But the scales have tipped too far away from Play. © Charles Tolman 2013
  9. Key Observations: Boundary Crossing • Tools/Technology are Amplifiers. Industrial Revolution: Devices to amplify physical capabilities. Information Technology: Devices to amplify thought. The need to be more awake, not less. • This is a transition of many people from EXTERNAL to INTERNAL problem solving. It is a significant shift and has many side-effects. THIS HAS LARGELY GONE UNNOTICED! • Robert Glass’ Fact 13: “There is a disconnect between management and their programmers.” • This means that we are not ‘just’ programming and will need a larger view of the discipline in order for there to be constructive progress. © Charles Tolman 2013
  10. Key Observations: The Inner World • Programming involves the creation of a completely human-made world. With little feedback and few checks against external reality. • The process of software development can be seen as follows: • We engage in THINKING. • We create MENTAL MODELS or THOUGHT CONSTRUCTS. • We transcode these into SOFTWARE. • A good programmer needs to be SELF-AWARE about this Process and their own Learning. The computer can be seen as a ‘Thought-Mirror’. • Initiation in Thinking: formerly mystical/religious experience. But now religion is not adequate! © Charles Tolman 2013
  11. Philosophical Interlude: Some Dudes From History • Bacon 1561 – 1625 • Descartes 1596 – 1650 • Newton 1642 – 1727 • Goethe 1749 – 1832 • Gadamer 1900 – 2002 © Charles Tolman 2013
  12. Philosophical Interlude: Descartes : Dualism • Descartes : 1596-1650 • Cleared the decks to be sure of what we can really know. Cutting down to the minimum by getting away from the senses. • Split between Mind/Body. • But trying to fit in with the church’s religious ideas. e.g. 4th Law of Impact! • Subject vs Object res cogitans : Thinking – Mind/Soul : Active. res extensa : Extension – Body/Nature : Passive. © Charles Tolman 2013
  13. Philosophical Interlude: Goethe : Delicate Empiricism • Goethe : 1749-1832 • Natural Scientist around at the time of the Industrial Revolution. Against the Baconian approach of the separation from natural world. • Focus on the phenomenon - not on abstract ideas. Warned of the danger of over-hypothesizing… • The need for a Delicate Empiricism during observation. The importance of Exact Sensorial Imagination - not ungrounded fantasy! • Rudolf Steiner (1861-1925) realised that the same methods could be used for thinking. i.e treating Thought as a Phenomenon in the same way. © Charles Tolman 2013
  14. Philosophical Interlude: Phenomenology • The process of ‘Coming into Being’, i.e. Appearance (verb), of a Thing. A very difficult concept for us to understand. But it is this idea that deals with, and heals, the destructive consequences of the Cartesian subject-object split. • We need to understand that the Appearance and the Thing are ONE item. • The primary enduring insight about brain function [McGilchrist]: RIGHT: Immediacy of Lived Experience. Appearance LEFT: Re-Presents what is Lived – in order to Know. Thing • We cannot continue to keep focusing on Results as primary. [Agile does have the beginnings of this focus on process - but primarily as an externalised idea.] © Charles Tolman 2013
  15. Software: Knowledge or Preconceptions? • The ‘Tracer Bullets’ experience of knowledge generation highlighted the dangers inherent in over-hypothesizing. It is too easy to become automatic and habituated in one’s thinking. [Workshop at OT2001 facilitated by Paul Simmons/Tom Ayerst] • Just how aware are we about: • The limits of our own knowledge? • The process by which we expand our knowledge? • How often do we jump to conclusions rather than carefully collect data or information – whether it be debugging or problem analysis? • A DELICATELY EMPIRICAL method is a MUST HAVE when dealing with fault-finding or user requirements. © Charles Tolman 2013
  16. Software: Imagination • Generally we believe we are in the visual/geometric domain when considering software structures… • But is it visual? • REALLY? • Or are we thinking in terms of FLOW such that the images drop away… • And how fit are the structures we are imagining i.e. ‘building’. • A DISCIPLINED IMAGINATION of structures and behaviour is a MUST HAVE for good design. © Charles Tolman 2013
  17. Software: Christopher Alexander & Patterns • Alexander’s comments about Patterns relate to PHYSICAL space. Software deals with a MENTAL space, yet his world-view is still relevant. • There is a difference between True Liking and Apparent Liking. Alexander uses the concept of the Mirror of the Self test to tell the difference. True Liking is an art and a skill that needs developing. • I agree with Jim Coplien that we need to “revisit the Alexandrian roots of Patterns”. Although Agile is based upon Alexander’s core values we have not properly embraced his idea of patterns. [See http://www.youtube.com/watch?v=VV4KXKa5ZdQ] • If these ideas are developed we can get away from the subjectivity of ‘Beauty is in the eye of the beholder’. But we need to put ourselves into the picture. • We need to properly understand the perspective of PERSONAL & PROFESSIONAL DEVELOPMENT implicit in Alexander’s world-view. © Charles Tolman 2013
  18. Cartesian Split or Goethean Unity? This underlying dynamic of ‘The Split’ occurs in many places: • Descartes: Subject & Object. • Brain Function: Left & Right Hemisphere. • Career: Playful Child & Clever Adult. • Problem-Solving: Abstract Idea & Grounded Perception. • Judgement: Perfection & Pragmatism. This Split is healed by truly understanding the UNITY of APPEARANCE & RESULT that Phenomenology talks about. © Charles Tolman 2013
  19. A VISION FOR THE FUTURE : A CHOICE We can either: A. BE UNCONSCIOUS: Allow humans to become harnessed to the technology & the economics, so they become just a more effective Software Development Tool within a mechanistic world-view. OR B. BE CONSCIOUS: Re-assess our world view and work with both our personal and technical development so we can better shape technology towards human needs. © Charles Tolman 2013
  20. Todo list if you want to take it further: • READ: ‘Taking Appearance Seriously’ by Henri Bortoft. Probably the best introduction to Goethe’s method and Phenomenology and a very good historical overview of the pertinent philosophy. • STUDY: ‘The Nature of Order’ by Christopher Alexander. A lot to read but a master work giving insight into Alexander’s world-view. • READ: ‘The Master and His Emissary’ by Iain McGilchrist. Another excellent master work dealing with brain function. • DISCUSS: Get in touch! © Charles Tolman 2013
  21. Thank you Blog charlestolman.com Email ct@acm.org © Charles Tolman 2013

Editor's Notes

  1. This is still a work in progress.
  2. Idea/Perception: Christopher Alexander reference “Nature of Order” Book 2 p130 cf Le Corbusier etc.
  3. Truth & Method extracts. Gadamer.P350:“Being experienced” does not consist in the fact that someone already knows everything and knows better than anyone else. Rather, the experienced person proves to be, on the contrary, someone who is radically undogmatic; who, because of the many experiences he has had and the knowledge he has drawn from them, is particularly well equipped to have new experiences and to learn from them. P351:The truly experienced person is one who has taken this to heart, who knows that he is master neither of time nor the future. The experienced man knows that all foresight is limited and all plans uncertain. In him is realised the true value of experience.
  4. SergioPellis notes about self-directed play.Picture encapsulates how I wish to be remembered – sharing the playing of flying!
  5. THIS IS A KEY SLIDE!Dijkstra 1972:Automatic computers have now been with us for a quarter of a century. They have had a great impact on our society in their capacity of tools, but in that capacity their influence will be but a ripple on the surface of our culture, compared with the much more profound influence they will have in their capacity of intellectual challenge without precedent in the cultural history of mankind.Rober Glass’ Fact 13:419% Over Budget.193% Over Schedule - 27 months vs estimate of 14130% Over Size for SW, 800% Over Size for FirmwareSuccessfully completed.Did what it was supposed to do (control a medical instrument).Fulfilled its requirement of "no postrelease software defects.”
  6. THIS IS A KEY SLIDE!We run THOUGHT networks in our heads.Attitude is as important as technical ability – if not more so.Cannot take ideas from Eastern traditions as-is.East and West are different!
  7. Please note that I am not an academic philosopher!
  8. Psychologists call this process where we go from sensory experience direct toabstract generalisation without thinking, ‘automatisation’ or ‘habituation’.
  9. McGilchrist:LEFT:Static, Isolated, Fixed, Decontextualised, Abstract -> Clarity, Denotative.Deals with Closed Systems, Perfection.RIGHT:Individual, Changing, Evolving, Interconnected, Implicit, Incarnate, Living.Never fully Graspable, Never Perfectly known. Epistemologically:When we look at something we do not understand or have the concepts to fit, we take some part and SPLIT it out from the context (Cartesian), but then we know it only when we reunite the concept with the percept (Steiner).There is no difference in the external world but now we have knowledge about what we are looking at.
  10. Nature of Order: Book1p342/3 Liking.p453 Appendix 3 Cognitive Difficulty in Seeing WholenessAlexander seemed Bemused at OOPSLA 96.At Stanford, Sceptical about prevailing perspectives in the software industry.We have focused too much on Results rather than Inner Process
  11. Plan A is the hired gun protocol.Time for Plan B.A parting thought:Lest we think that when we talk about technology we are only considering software and hardware:The Hungarian psychology professor MihalyCsikszentmihalyi (author of Flow) considers that human culture can be seen as a technology for mediating interactions.We are NOT just talking about programming…
  12. References:Christopher Alexander : The Nature of Order.Henri Bortoft : Taking Appearance Seriously.Robert Glass : Facts and Fallacies of Software Development.Iain McGilchrist : The Master and His Emissary.
Advertisement