I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to the earth.
When American President John F. Kennedy made this speech in 1961, did anyone know if it was possible to get a man to the moon? If you are going to build rockets you need a certain tolerance for explosions – and you will learn the importance of testing and when to be careful!
In Scrum, the Whole Team collaborates to identify the best step forward each sprint. This includes identifying and handling risks. The Team advises the Product Owner, who has the final say about deciding which backlog items come to the top of the backlog and into the sprint. Business value usually trumps technical issues, but the Product Owner should be an educated client and listen to the Team.
An insidious form of technical risk is the ‘Technical Debt’. Technical Debt is the consequence of poor engineering practices that make a program difficult and expensive to modify. Technical debt is pretending something is really done and fixing the problems (bugs) later.
Financial debt is what happens when you buy something that you don’t really have the money for. You pay it off later, paying both principal and interest. Like financial debt, technical debt has to be paid off in the form of maintenance and support costs. These support costs are a substantial multiple of the initial development costs.
Like financial debt, technical debt must be paid off or technical bankruptcy will follow. A change here causes a problem there, which also has to be fixed. As the code quality declines, the time spent fixing problems increases, while the Team’s velocity and its ability to develop new features decline.
By the time the Team is spending two-thirds of its time or more on ‘daily business’, i.e. bug fixing, you are close to achieving technical bankruptcy. You have little choice but to throw away the code and write it again from scratch.
From the perspective of total cost of ownership, emphasizing the quantity of features delivered over the quality of features delivered is an expensive choice.
The antidote to technical debt is good engineering practices and a focus on quality over quantity.
To prevent this, Scrum requires that all features be completed according to the definition of done. This agreement among the Scrum Team members covers more than just the individual acceptance criteria, it also ensures the quality of the code produced.
Scrum does not prescribe particular engineering practices, because they are context-specific and are improving all the time. The definition of done is expected to become more inclusive, that is to define higher quality standards, as the project advances.
Extreme Programming and Software Craftsmanship are two movements focusing on the quality of software. Automated testing is critical to ensure that what was delivered last month still works this month.
A contract that focuses on delivering scope without a corresponding emphasis on technical excellence and internal quality could result in a product with high technical debt that is expensive to maintain.
Cookie | Duration | Description |
---|---|---|
cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Cookie | Duration | Description |
---|---|---|
mailchimp_landing_site | 1 month | The cookie is set by MailChimp to record which page the user first visited. |
Cookie | Duration | Description |
---|---|---|
CONSENT | 2 years | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
_ga | 2 years | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors. |
_gat_gtag_UA_42152348_1 | 1 minute | Set by Google to distinguish users. |
_gcl_au | 3 months | Provided by Google Tag Manager to experiment advertisement efficiency of websites using their services. |
_gid | 1 day | Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously. |
Cookie | Duration | Description |
---|---|---|
NID | 6 months | NID cookie, set by Google, is used for advertising purposes; to limit the number of times the user sees an ad, to mute unwanted ads, and to measure the effectiveness of ads. |
test_cookie | 15 minutes | The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies. |
VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
Cookie | Duration | Description |
---|---|---|
COMPASS | 1 hour | No description |
cookies.js | session | No description available. |
S | 1 hour | No description available. |