background preloader

Technical Debt

Facebook Twitter

The Human Cost of Tech Debt - DaedTech. If you're not already familiar with the concept of technical debt, it's worth becoming familiar with it.

The Human Cost of Tech Debt - DaedTech

I say this not only because it is a common industry term, but because it is an important concept. Coined by Ward Cunningham, the term introduces the idea that taking shortcuts in your software today not only means paying the price eventually -- it means paying that price with interest. In other words, introducing that global variable today and saving half a day's work ahead of shipping means that you're going to pay for it with more than half a day's labor down the line. The Power of the Metaphor I've spent significant time doing IT management consulting in recent years, after spending years and years writing code. Because of the metaphor's power and subsequent effectiveness for business concerns, it is often used to describe the health of projects, particularly vis a vis deadlines and milestones. But I'd like to talk today about the human side of the problem. Speeding up the Incremental Developer Build Scenario - Visual C++ Team Blog.

One of the major focus areas for Visual C++ lately has been improving developer productivity.

Speeding up the Incremental Developer Build Scenario - Visual C++ Team Blog

Keeping this in mind a plethora of improvements have been introduced with Visual Studio 2015 preview (download here) aimed at the developer incremental scenario. The developer incremental scenario is one where a developer changes a single or multiple source files (while fixing bugs) and builds. This scenario for Visual C++ is roughly equivalent to the amount of time spent in linking the portable executable (.dll or .exe). Naturally so, the features being talked about in this blog are mostly in the linker space. On average with the feature additions in this space we have seen roughly a 2X improvement for clean link scenarios and have added more scenarios that can now be incrementally linked or incrementally codegen'ed (when using Link Time Code Generation (LTCG)).

Table 1: Features introduced in VS2015 preview to speed up the incremental developer scenario. Teach, Don't Tell. This post is about writing technical documentation.

Teach, Don't Tell

More specifically: it’s about writing documentation for programming languages and libraries. I love reading great documentation. When I have a question and the documentations explains the answer almost as if the author has magically anticipated my problem, I get a warm, fuzzy feeling inside. I feel a connection with the writer that makes me smile. Speed in Software Development. Michael Dubakov, Targetprocess Founder June 5, 2014 Every single CEO of any IT company wants to build software faster.

Speed in Software Development

Time is the most expensive and valuable resource. You can't waste it on re-work, refactoring, meetings, physical activities. Right? It depends... Many companies grow up, slow down, and die. You have a team of dozens talented and experienced developers, you crunch and ship something in two years. Two Sides of Speed. Technical debt 101. Everything has an appointed season,and there is a time for every matter under the heaven.— Ecclesiastes, chapter 3 The problem of analogies In software development, the dreadful consequences of sacrificing quality are widely misunderstood by non technical managers.

Technical debt 101

They underestimate how detrimental it is to continued productivity and morale, and ultimately, to the overall strategy of the company. Given non technical managers have no actual first-hand experience building software, to explain to them these consequences we have to rely only on analogies. And here is where our problems start. How do we use code coverage for Unity? Previously we have written about our Runtime Tests, Performance Tests and Unity Test Tools.

How do we use code coverage for Unity?

In this blog post I will tell you about how we use code coverage. First and foremost code coverage is an ambitious thing and it should be used with caution. It would be an error to state that it measures quality of the test suites. You can easily write a test suite that doesn’t contain a single assertion, but produces 100% coverage. Code coverage gives us insight into the thoroughness of our test suites. Our first goal has been to see how much C++ code is exercised by our current test suites. We love what it measures (see below).Easy to integrate into our build systemWide platform supportLicensing and pricing model that fits our needsGood support quality Statement coverage The most widely known code coverage metric is probably statement coverage. Int* p = NULL; if (condition) { p = &variable; *p = 123;

Manage Debt. How not to Get Things Done. The single most dangerous type of programmer you can possibly have on a project is one who has a knack for Getting Things Done.

How not to Get Things Done

We all know the type of person I’m talking about – they’re the ones who can be pointed at any random bit of the project, given a description of the problem and a day later it’ll be fixed. Oh, there might be the odd knock-on bug, sure, but that’s to be expected when someone is working in unknown territory, right? Technical debt; is it only technical? The metaphor technical debt was introduced at the OOPSLA conference in 1992 by Ward Cunningham.

Technical debt; is it only technical?

The phrase was: Technical Debt for PMs. This article was originally featured at ProjectsAtWork and is reprinted here with permission.

Technical Debt for PMs

As a software project manager or product owner, the term ”technical debt” may not ring a bell. Over the last several years managing Agile teams, I’ve come to realize that lurking technical debt introduces risk and represents unplanned work that impacts schedules and ultimately the long-term health of projects.