Managing software debt
Engineering Blog: Push it! At Yelp, we push new code live every day. 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.
Forrester on Managing Technical Debt « The Agile Executive Forrester Research analysts Dave West and Tom Grant just published their report on Agile 2010. 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?
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. As a proof of concept, we conducted a first migration project of a web application towards both a web application framework and a mobile platform. unnamed pearl
I vividly remember one of my first sightings of a large software project. 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. From this I learned a common story of software projects: integration is a long and unpredictable process. Continuous Integration
Which door represents your code? Which door represents your team or your company? Why are we in that room? 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. Patterns document program structures with known good properties. Put the two together and you have Refactoring to Patterns.
Refactoring Home To learn more about Refactoring, the natural starting point is the Refactoring Book. Although I wrote this book back in 2000, it focuses on a basic programming technique that doesn’t change over time. The examples are in Java, but are easily applicable to other programming languages. Although the original Refactoring book is worthwhile for other languages, if you program in Ruby you’ll probably prefer the Ruby edition, which was adapted by Jay Fields and Shane Harvie. As well as using Ruby examples, this book includes several refactorings that are more applicable to Ruby. These refactoring books provide the basic explanation and catalog of example refactorings, but many readers enjoy examples to work from.
spock - Project Hosting on Google Code What is it? 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.
Home - pyccuracy - GitHub Pyccuracy is a Behaviour-Driven-Development-style tool written in Python that aims to make it easier to write automated acceptance tests. It improves the readability of those tests by using a structured natural language – and a simple mechanism to extend this language – so that both developers and customers can collaborate and understand what the tests do. Go to the “ overview ” section for more details.
From STIQ StoryTestIQ (STIQ) is a test framework used to create Automated Acceptance Tests or Story Tests. STIQ is a mashup of Selenium and FitNesse. 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. 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… Paul Duvall is the CEO of Stelligent, a firm that helps clients create production-ready software every day. A featured speaker at many leading software conferences, he has worked in virtually every role on software projects: developer, project manager, architect, and tester. He is the principal author of Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley, 2007), a 2008 Jolt Award Winner. Paul contributed to the UML 2 Toolkit (Wiley, 2003), writes a series for IBM developerWorks called Automation for the people, and contributed a chapter to No Fluff Just Stuff Anthology: The 2007 Edition (Pragmatic Programmers, 2007). He is passionate about automating software development and release processes and actively blogs on IntegrateButton.com and TestEarly.com. Stephen M.
Fit for Developing Software: Framework for Integrated Tests