Is High Quality Software Worth the Cost? A common debate in software development projects is between spending time on improving the quality of the software versus concentrating on releasing more valuable features.
Usually the pressure to deliver functionality dominates the discussion, leading many developers to complain that they don't have time to work on architecture and code quality. Betteridge's Law of headlines is an adage that says any article with a headline or title that ends in a question mark can be summarized by "no". Those that know me would not doubt my desire to subvert such a law. But this article goes further than that - it subverts the question itself. The question assumes the common trade-off between quality and cost. Although most of my writing is aimed at professional software developers, for this article I'm not going to assume any knowledge of the mechanics of software development.
We are used to a trade-off between quality and cost Software quality means many things My changes also affect the future. The Human Cost of Tech Debt - DaedTech. 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.
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. Teach, Don't Tell. This post is about writing technical documentation.
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.
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. 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.
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. Analogies for sure are wonderful tools. Analogy is our best guide in all philosophical investigations;and all discoveries, which were not made by mere accident,have been made by the help of it — Joseph Priestley When physicists talk about “spins” in the electrons, or about “infrared”, they are using analogies to try to make the real way the world works fit in our limited capacity of picturing it.
How do we use code coverage for Unity? Previously we have written about our Runtime Tests, Performance Tests and Unity Test Tools.
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. 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.
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 for PMs. This article was originally featured at ProjectsAtWork and is reprinted here with permission.
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. I believe that project managers and product owners should make technical debt a priority and factor a “re-payment” program into project schedules as a regular part of planning.