Better Software Articles
We live in a consumer-oriented society, where we are taught to expect that everything that we buy or create must be the best. Clearly, quality is considered to be a top-selling feature in many of the products that we buy. But what if it shouldn’t be?
Analysts determine what needs to be created. Programmers create it. Testers find the holes in the work of both. That's one way to do it, but all three can collaborate to do these things better, and more easily, too.
Many people realize that the technical debt spiral is a perverse incentive—it ends up rewarding behaviors we don't want and causing long-term pain. In this article, Matt Heusser moves beyond cliché to talk about how tech debt happens and what we can do about it.
Get a head start on your New Year's resolution. Hone your business analysis skills or learn new ones, and make 2012 the highlight of your career.
Configuration management (CM) has matured into a "must-have" discipline. But, many CM experts have failed to keep up with what's required to implement CM best practices. Find out what needs to be done to raise the bar for CM.
Most software needs to be "maintainable" and have high "internal quality." But what does that mean in practical terms? Code smells form a vocabulary for discussing code quality and how well suited code might be to change. The smells also provide good indications as to what to refactor and how.
Most managers would consider management far too complicated to script. But the five key components of management—planning, staffing, organizing, directing, and controlling—are practiced just as often in testing. So, let's see some of those management scripts.
Scaling Agile to the enterprise can be challenging once you start looking at the Program and Portfolio level. How do you design an effective coordination system that encourages collaboration, communication, transparency and is flexible, easy to implement and rapidly evolvable? We will explore key aspects of creating a simple but effective agile-ready coordination system for managing such initiatives, based upon the authors' observations and experiences across widely differing companies.
We all want to satisfy our users, but tailoring software to customers is easier said than done. Personas—a method to synthesize your primary users into abstract entities—facilitates understanding of goals and experiences.
A cast-in-concrete delivery date looms on your project’s horizon. You have precious little time remaining, and the development team keeps delivering incomplete builds of unstable code. Is this a "death march" project, or can the testing team actually do something useful, or perhaps even save the day?