background preloader

Managing software debt

Facebook Twitter

Engineering Blog: Push it! At Yelp, we push new code live every day.

Engineering Blog: Push it!

Pushing daily allows us to quickly prototype new features and squash bugs in a proactive manner. Because we aim to deploy new code so often, we're always looking for ways to make the process efficient and painless. There are four main stages to the Yelp push process: code review, integration, testing, and finally, live deployment. Each step is important, and there are ways to maximize the efficiency of all of them. Code Review This first stage of the push process happens before a push request is even made: all code destined for the live site is subject to a full review by at least one other developer. We use the excellent open-source Review Board to simplify the process. Integration. Forrester on Managing Technical Debt « The Agile Executive. Forrester Research analysts Dave West and Tom Grant just published their report on Agile 2010.

Forrester on Managing Technical Debt « The Agile Executive

Here is the section in their report on managing technical debt: Managing technical debtDave: The Agile community has faced a lot of hard questions about how a methodology that breaks development into short iterations can maintain a long-term view on issues like maintainability. Does Agile unintentionally increase the risk of technical debt? Israel Gat is leading some breakthrough thinking in the financial measures and ramifications of technical debt. This topic deserves the attention it’s beginning to receive, in part because of its ramifications for backlog management and architecture planning. I will be responding to Tom’s good question in various posts along the way. From a governance perspective, technical debt techniques give us the opportunity to carry out consistent governance of the software process based on a single source of truth. Untitled.

In this paper, we propose an agile approach, for the migration of legacy software which combines a user story-based iterative process with automated acceptance testing.


The proposed approach, named Storytest-Driven Migration (STDM), requires that acceptance tests are written both on the legacy and target versions of a software system. Because of their relevance, the quality of automated acceptance tests is assured through software inspections. Merciless Refactoring. Home → Blog → Merciless-Refactoring Let's Code: Test-Driven JavaScript, my new screencast series on rigorous, professional JavaScript development, is now available!

Merciless Refactoring

Check out the demo video here. Print by James Shore 02 Sep, 2005 Ron Jeffries started an interesting topic on the XP mailing list. I thought this was a great topic. Here are the most common refactoring problems I see with XP teams: Teams that don't refactor enough. Continuous Integration. I vividly remember one of my first sightings of a large software project.

Continuous Integration

I was taking a summer internship at a large English electronics company. My manager, part of the QA group, gave me a tour of a site and we entered a huge depressing warehouse stacked full with cubes. I was told that this project had been in development for a couple of years and was currently integrating, and had been integrating for several months. My guide told me that nobody really knew how long it would take to finish integrating. Clean Code: A Handbook of Agile Software Craftsmanship (9780132350884): Robert C. Martin. Refactoring to Patterns. Advance Praise “For refactoring to be valuable it must be going somewhere, not just an abstract intellectual exercise.

Refactoring to Patterns

Patterns document program structures with known good properties. Put the two together and you have Refactoring to Patterns. Refactoring Home. Spock - Project Hosting on Google Code. What is it?

spock - Project Hosting on Google Code

Spock is a testing and specification framework for Java and Groovy applications. What makes it stand out from the crowd is its beautiful and highly expressive specification language. Thanks to its JUnit runner, Spock is compatible with most IDEs, build tools, and continuous integration servers. Spock is inspired from JUnit, RSpec, jMock, Mockito, Groovy, Scala, Vulcans, and other fascinating life forms. How Do I Get Started? Read ten reasons why Spock is for you, run your first spec in Spock Web Console, fork the spock-example project, learn how to write a specification, or dive into the reference documentation. Where Are The Docs? How Can I Get Involved? Latest News 2013-12-20 Presentation on Functional Web Testing available from

Home - pyccuracy - GitHub. Main Page - STIQ. Continuous Integration with Hudson - the book. Jenkins: The Definitive Guide Continuous Integration, or CI, is a cornerstone of modern software development best practices.

Continuous Integration with Hudson - the book

Jenkins, an Open Source Continuous Integration tool, is by far the most popular Continuous Integration tool on the market, and for good reason! It's intuitive user interface and powerful features make setting up a Continuous Integration service a real breeze. Continuous Integration: Improving Software Quality and Reducing Risk (9780321336385): Paul M. Duvall, Steve… Fit for Developing Software: Framework for Integrated Tests. "The unique thing about Fit for Developing Software is the way it addresses the interface between customers/testers/analysts and programmers.

Fit for Developing Software: Framework for Integrated Tests

All will find something in the book about how others wish to be effectively communicated with. A Fit book for programmers wouldn't make sense because the goal is to create a language for business-oriented team members. A Fit book just for businesspeople wouldn't make sense because the programmers have to be involved in creating that language. The result is a book that should appeal to a wide range of people whose shared goal is improving team communications.

" --Kent Beck, Three Rivers Institute "Even with the best approaches, there always seemed to be a gap between the software that was written and the software the user wanted. --Dave Thomas, coauthor of The Pragmatic Programmer. FrontPage.