Top Banner
Assessing Technical Debt
42
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Jacques Van Niekerk Workshop on IWMC 2015

Assessing

Technical Debt

Page 2: Jacques Van Niekerk Workshop on IWMC 2015

Jacques van Niekerk- partner at Rosewood Due Diligence.

http://za.linkedin.com/in/jacquesvanniekerk

Page 3: Jacques Van Niekerk Workshop on IWMC 2015
Page 4: Jacques Van Niekerk Workshop on IWMC 2015
Page 5: Jacques Van Niekerk Workshop on IWMC 2015

● What do investors look for in technology ?

● What are the gaps ?

● How do we evaluate these gaps ?

● What do we consider technical debt ?

● How do we talk about technology ?

● How do we address technical debt ?

Page 6: Jacques Van Niekerk Workshop on IWMC 2015

[Mind the Gap]

Page 7: Jacques Van Niekerk Workshop on IWMC 2015

Topics

● People

● Infrastructure

● Process

● Technology

● Product

● Software Architecture

Page 8: Jacques Van Niekerk Workshop on IWMC 2015
Page 9: Jacques Van Niekerk Workshop on IWMC 2015

A few basic questions: 1

What are your preferences in terms of

architectural style ?

Page 10: Jacques Van Niekerk Workshop on IWMC 2015

A few basic questions: 2

Describe your software development process.

Page 11: Jacques Van Niekerk Workshop on IWMC 2015

A few basic questions: 3

How do you measure your team’s productivity ?

Page 12: Jacques Van Niekerk Workshop on IWMC 2015

A few basic questions: 4

How do you ensure that your software is of high

quality ?

Page 13: Jacques Van Niekerk Workshop on IWMC 2015

A few basic questions: 5

What are the set of skills that is essential to

your team ?

Page 14: Jacques Van Niekerk Workshop on IWMC 2015

A few basic questions: 6

Describe the software stack you use to build

your product.

Page 15: Jacques Van Niekerk Workshop on IWMC 2015

A few basic questions: 7

When is the last time you were “hacked” ?

Page 16: Jacques Van Niekerk Workshop on IWMC 2015
Page 17: Jacques Van Niekerk Workshop on IWMC 2015

People

● Team Structure

● Leadership

● Communication

● Incentives

● Churn

● Responsibilities

Page 18: Jacques Van Niekerk Workshop on IWMC 2015

People

Why do people want to work for your company

?

Page 19: Jacques Van Niekerk Workshop on IWMC 2015
Page 20: Jacques Van Niekerk Workshop on IWMC 2015

Technology

● Programming Language

● Toolset

● Frameworks

● Open Source … or not ?

● Databases ?

● Analytics and instrumentation ?

Page 21: Jacques Van Niekerk Workshop on IWMC 2015
Page 22: Jacques Van Niekerk Workshop on IWMC 2015

Infrastructure

● Where do you host your software - why ?

● How scalable is your infrastructure ?

● What does it cost ?

● Who looks after it ?

● Can I see a graph of bandwidth usage ?

● What does your office space look like ?

Page 23: Jacques Van Niekerk Workshop on IWMC 2015

Infrastructure

How long did it take you to recover during your

last server/network/infrastructure failure ?

Page 24: Jacques Van Niekerk Workshop on IWMC 2015
Page 25: Jacques Van Niekerk Workshop on IWMC 2015

Process

● Why did you choose Agile ?

● How do you measure productivity ?

● What does your backlog look like ?

● Can I see your development roadmap ?

● How do you drive deadlines ?

● What tools do you use ?

Page 26: Jacques Van Niekerk Workshop on IWMC 2015

and Operations

● Can I meet your QA lead ?

● Do you think devops is essential ?

● Where are your backups stored ?

● Who has access to production ?

● Who monitors uptime ?

● Does SEO matter in your business ? SEM ?

Page 27: Jacques Van Niekerk Workshop on IWMC 2015
Page 28: Jacques Van Niekerk Workshop on IWMC 2015

Product

● What are the main features ?

● What is your USP ?

● How many users do you plan to have ?

● How do you convey requirements between

product owners and developers ?

● Who is in charge of UX ?

Page 29: Jacques Van Niekerk Workshop on IWMC 2015
Page 30: Jacques Van Niekerk Workshop on IWMC 2015

[Pic of Wood and trees - what is this a picture

of ?]

Page 31: Jacques Van Niekerk Workshop on IWMC 2015

An architecture is the set of significant decisions about the organization of a software system, the selection of structural

elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations

among those elements, the composition of these elements into progressively larger subsystems, and the architectural style that

guides this organization -- these elements and their interfaces, their collaborations, and their composition.

The software architecture of a program or computing system is the structure or structures of the system, which comprise software

elements, the externally visible properties of those elements, and the relationships among them.

[Architecture is] the organizational structure and associated behavior of a system. An architecture can be recursively

decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts.

Parts that interact through interfaces include classes, components and subsystems.

The software architecture of a system or a collection of systems consists of all the important design decisions about the software

structures and the interactions between those structures that comprise the systems. The design decisions support a desired set

of qualities that the system should support to be successful. The design decisions provide a conceptual basis for system

development, support, and maintenance.

Page 32: Jacques Van Niekerk Workshop on IWMC 2015

4+1

Page 33: Jacques Van Niekerk Workshop on IWMC 2015

4+1Ph. Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, vol. 12 (6), pp. 45-50, 1995. DOI:10.1109/52.469759

Page 34: Jacques Van Niekerk Workshop on IWMC 2015

● Connects business to Technology

● Shows the dynamics of the system

● Shows the structure of the system

● Shows how to build the system

Page 35: Jacques Van Niekerk Workshop on IWMC 2015

Thanks

Wikipedia

Page 36: Jacques Van Niekerk Workshop on IWMC 2015

Language

Page 37: Jacques Van Niekerk Workshop on IWMC 2015

Use Case View

Page 38: Jacques Van Niekerk Workshop on IWMC 2015

Logical View

Page 39: Jacques Van Niekerk Workshop on IWMC 2015

Development View

Page 40: Jacques Van Niekerk Workshop on IWMC 2015

Process View

Page 41: Jacques Van Niekerk Workshop on IWMC 2015

Points to consider

● How do you do search ?

● How do you monitor ?

● What about page load speed ?

● Do you cache ? Where ?

● Can your database scale ? How ?

● Can you deploy across many servers ?

Page 42: Jacques Van Niekerk Workshop on IWMC 2015

?