Random Ramblings on LabVIEW Design

Community Browser
Labels
cancel
Showing results for 
Search instead for 
Did you mean: 

Re: Let's Talk Technical Accounting

Active Participant

Hello My Bug-Destroying-Bean-counters,

Hope all is well, I have about 5 half-written articles, so like a typical programmer I will start a completely new one.

 

Technical Debt

Technical Debt is now a fairly common term and it's a great metaphor for describing the process of accruing implied cost in a project due to not choosing a better approach that may initially take more effort. So from a design perspective an example would be rushing into programming with little investment in time.

 

To mitigate against technical debt you should make some Technical Investments.

 

Technical Investments

This is time (and money) spent building your tool-set, process and skills. The reward from this work will be your Technical Assets

 

Technical Assets

For us it's our process, our re-use framework templates, our documentation, our methodology, hardware designs and any re-use components we have. It can also be our training and experience.

In a pure and ideal world (like can be observed in presentations, books and keynotes), these assets come at no cost and lot's of benefit. In the real world there is usually a technical tax to pay.

 

Technical Tax

This term came from a conversation Fabiola had with someone at a party, I liked it so much I stole it! I don't go to parties so miss out on this type of conversation.

Every design decision will have a cost associated with it. You will sacrifice ease-of-use for functionality, flexibility for simplicity and so-on. Every decision has a positive and negative affect. The key is to pick the assets that improve the things that benefit you at the lowest rate of technical tax.

An example of this would be in choosing a framework. The framework will have advantages, but the cost will often be in bloat, difficulty in debugging, lack of understanding, performance. The design decision will then be:- is this taxation too high to realise the benefits?

 

Can we push this analogy further?

 

In other news GDevCon#2 place and time has been announced in Birmingham, UK in 21st, 22nd August 2019. Balti triangle here I come! eCLA Summit in Krakow from 2nd April 2019 and I've submitted 2 presentations for NIWeek (plus hopefully my code will be in the exhibition hall).

Lot's of Love

Steve

 

Comments
Active Participant

 


@swatts wrote:

 

 

 

 

 

 

 

Technical Tax

This term came from a conversation Fabiola had with someone at a party, I liked it so much I stole it! I don't go to parties so miss out on this type of conversation.

 

 

 

 


 

And I attend very nerdy parties! Smiley Happy

 

You missed the final takeaway home message: Stop focusing on technical debt and start focusing on technical wealth!

 

I have written and presented about this topic. There is also a great article from Andrea Goulet. When I get back home, I will come back and add those links.

 

We can push further the analogy:

 

I was teaching Advanced Architectures in LabVIEW and we started talking about reusable code. Students said they went back at the end of a project and identified reusable code, of course they rarely have the time to do that.

 

I suggested instead to identify reusable code as they start coding. For example, we ended up with the Delacor Configuration Editor because we identified we would probably need that again. We created first a project template and that first project was the first "customer" for the project template.

 

By focusing on investing in our reusable code, we have the wealth for a down payment for a complete project that includes the editor and other features. The number of times we need to take on technical debt are fewer.

 

We still have to take on technical debt from time to time. For example, a start up that was in a hurry to show something to investors might need us to take some shortcuts. That is OK, as long as they understand we will have to throw away most of that code.

 

Focus on technical wealth!

 

Happy wiring,

Fab 

Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor
Active Participant

Thanks for filling in some gaps Fab,

I guess the counter-point to technical wealth is technical poverty.

So a project from a technically wealthy company should, by all expectations, be more feature rich, predictable, robust etc than a project from a technically impoverished company.

So next it might be worth thinking how you would distinguish between the two..

 

The metaphor still holds.

 

 

Active Participant

Just thought of another one:

 

Technical Insurance

We pay for insurance in advance so when there is an accident, we are covered and we don't go bankrupt.

In software projects, our technical insurance are the unit tests, us creating testable code from the beginning, comments that describe intent, bookmarks (when used as breadcrumbs to indicate "if you change things here, you might want to checkout all the places where this bookmark is because chances are you need to change that too"). Anything that is there so if something not planned happens (for example a nasty bug), we are covered and don't go bankrupt!

 

Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor
Active Participant

Technical Insurance

Unit Testing, Regression Testing, Source Code Control, Design Reviews (learning this lesson harshly this month!)

Active Participant

Technical Depreciation

Your technical assets will become less valuable over time, usually due to a realisation that they require more functionality or that there are better or more suitable tools and methodologies available.

 

Sensible businesses acknowledge depreciation, and will tend to invest in new technical assets ahead of the current ones being worthless. They'll also know that because depreciation is inevitable, they will use what assets they currently have for a period of time before starting a new investment cycle.

 

---
CLA
Active Participant

That is a thing of beauty!

I think it also plays into the concept of constant technical investment is needed in your tools and processes.

Proven Zealot

And of course for the moments where we just have to throw it away (salvaging whatever we can) we have Technical Bankruptcy.

 

Otherwise, I suppose basically all of these could be made into "technical X" terms although some of the reporting may be a bit OCD, even for the best (worst) of us.

Active Participant

So does that mean that when the process I've previously developed (Technical Investment) saves me time later that I've earned Technical Interest?

Sam Taggart
CLA, CPI, LabVIEW Champion
DQMH Trusted Advisor
automatedenver.com
Active Participant

 Compound Technical Interest if your team start using it too

Active Participant

 I had forgotten to add the links, so here they are

 

Andrea Goulet's article https://firstround.com/review/forget-technical-debt-heres-how-to-build-technical-wealth/

 

My blog post that includes a video of the presentation at CLA Summit https://delacor.com/first-thoughts-about-technical-wealth/

and the similar presentation at NI Week https://www.youtube.com/watch?v=RPL94qCoJZQ&feature=youtu.be

Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor