Change Vector Tracking in emergent design

A reflective design approach to achieve software design agility by modelling change as a vector and tracking it to aid refactoring decisions.

 

Preface about the talk

Software design is a field that has always fascinated me and I have tried to be an obedient student trying to learn this art. Like any other design problem, software design is also a wicked problem. Horst Rittel and Melvin Webber defined a “wicked” problem as one that could be clearly defined only by solving it, or by solving part of it .This paradox implies, essentially, that you have to “solve” the problem once in order to clearly define it and then solve it again to create a solution that works.

Hence you need an architect with magical powers to get your design correct in the first go .This is the core philosophy behind emergent design in which we do not think too much about future . As Uncle Bob sarcastically points out, your customers somehow knows your design and they will come up with a requirement that will break your assumptions and thus your design. In emergent design you embrace aggressive refactoring religiously and few teams rebelliously for the good. It has also been observed that during emergent design refactoring step more focus is towards class design than higher abstract architecture elements. This creates technical debt which can go unnoticed for a long time.

In this talk I will be introducing a novel technique called change vector tracking that will address the above described problem. Change Vector Tracking is a reflective design approach to achieve software design agility by modelling change as a vector and tracking it through ceremonies like Change Vector Tracking meetings.

 
1 favorite thumb_down thumb_up 6 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

Structure of the talk

  1. Introduction: 3 min
  2. Problem definition: 7 min
  3. Solution, Change vector tracking: 10 min
  4. Modelling change as a vector: 5 min
  5. Weighted vectors: 5 min
  6. Process and ceremonies: 5 min
  7. Future work : 5 min
  8. Q&A : 5 min

Learning Outcome

  1. Attendees will clearing understand the problem related to design debt that could accumulate during emergent design.
  2. They will be in a position to correlate the discussed problems with their project.
  3. An in-depth understanding of the solution called change vector tracking
  4. Knowledge of how change can be modeled as a weighted vector to aid to take decision related to architecture refactoring.
  5. They can readily apply the solution to the project without the need of any tools and reap the benefits by reducing technical debt

Target Audience

Developer , Architect ,Scrum Master

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Steven Mak
    By Steven Mak  ~  1 year ago
    reply Reply

    "Hence you need an architect with magical powers to get your design correct in the first go ." Are you serious?

    • Ranjith Tharayil
      By Ranjith Tharayil  ~  1 year ago
      reply Reply

      It's extremely difficult to get your design right in the first go.  Change is the culprit , change is something constant . This change in requirements will break our assumptions made and hence our design.Let me know your thoughts ?

  • Daryl Chan
    By Daryl Chan  ~  1 year ago
    reply Reply

    Hi Ranjith, thanks for your submission. Just wondering if this is mainly experience based or if it is driven by any theory?

     

     

    • Ranjith Tharayil
      By Ranjith Tharayil  ~  1 year ago
      reply Reply
      • Thank you for reading my submission.
      • The core of Change Vector Tracking technique is based on the Open Close Principle and Inspect and adapt principle.
      • This is a novel concept , my experience (failures + wins) has helped me in crafting this technique.
      • Daryl Chan
        By Daryl Chan  ~  1 year ago
        reply Reply

        Thanks Ranjith for the clarification.