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.

Change vector tracking doesn’t prevent customers from coming up with requirements that would invalidate previous design assumptions, it helps us in monitoring these changes and aids in making informed decisions of where and when to redesign. It helps us keep a check on design debt which otherwise would be overseen and not addressed at the right time .Design debt is invisible to tools initially, only when it grows beyond a scale tools can catch it. Change vector tracking is a technique to capture this design debt in a very early stage. “A stitch in time saves nine”.

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

Outline/structure of the Session

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

Learning Outcome

  1. Attendees will clearing understand the problem related to  a type of 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

Software developers ,Test architects , Scrum Masters

schedule Submitted 1 year ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Aditya Garg
    By Aditya Garg  ~  1 year ago
    reply Reply

    Hi Ranjith,

    Can you please explain a little more on the way the vector tracking is being done. The abstract does not talk about the technique itself. It is really abstract and too vague at this moment to understand it further.

    Regards

    Adi

     

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

      Change vector tracking doesn’t prevent customers from coming up with requirements that would invalidate previous design assumptions, it helps us in monitoring these changes and aids in making informed decisions of where and when to redesign. It helps us keep a check on design debt which otherwise would be overseen and not addressed at the right time .Design debt is invisible to tools initially, only when it grows beyond a scale tools can catch it. Change vector tracking is a technique to capture this design debt in a very early stage. “A stitch in time saves nine”.

      • Renu Rajani
        By Renu Rajani  ~  1 year ago
        reply Reply

        This is a good topic around Design Reviews.  Knowing the design change is important for carrying our design reviews.  However, topic does not suggest the importance and how of design review as such.  We should ask him to focus on Design Review aspect.

         

        Regards

        Renu

         

        From: Global Test Retreat [mailto:info@confengine.com]
        Sent: Sunday, April 03, 2016 12:03 PM
        To: Anish Cheriyan; Schalk Cronjé; Aditya Garg; Brijesh Deb; Ashish Mishra; Amit Janorikar; Dinesh Madne; Rajani, Renu
        Subject: Speaker replied to a comment on Change Vector Tracking in emergent design

         

        Dear Committee Members,

        Your proposal Change Vector Tracking in emergent design has received a new comment from ranjith-tharayil

        Change vector tracking doesn’t prevent customers from coming up with requirements that would invalidate previous design assumptions, it helps us in monitoring these changes and aids in making informed decisions of where and when to redesign. It helps us keep a check on design debt which otherwise would be overseen and not addressed at the right time .Design debt is invisible to tools initially, only when it grows beyond a scale tools can catch it. Change vector tracking is a technique to capture this design debt in a very early stage. “A stitch in time saves nine”.


        Visit https://confengine.com/global-test-retreat/proposal/2191#comments to respond to the suggestion OR simply reply to this email (Please make sure, you delete the previous comment's content from the email before replying.)

        Regards,
        Global Test Retreat Team
        aditya.garg@agiletestingalliance.org
        https://confengine.com

        You are receiving this email from ConfEngine on behalf of Global Test Retreat. Thanks for using ConfEngine's Conference Submission System.

        This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.

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

          I agree Renu , the topic is about a technique that will help in design reviews , in the talk I  will be  emphasizing the importance on design reviews.