Better Software Magazine Articles

It Takes a Village

Pair programming is an Agile practice that has been shown to greatly improve code quality without a huge increase in development time. This article explains the ins and outs of pair programming and some things you need to consider before you tell team members to grab a partner and get programming.

Ronica Roth's picture Ronica Roth
Software Longevity Testing: Planning for the Long Haul

How long do you let your software run during testing? An increasing number of software applications are intended to run indefinitely, in an always-on operating environment. And yet, few test plans include more than a brief memory leak test case. Learn how to test for problems due to the passing of time and problems due to cumulative usage.

Steven Woody's picture Steven Woody
Food for Thought

Ideas about testing can come from many different and unexpected sources, including reductionism, agronomy, cognitive psychology, mycology, and general systems. Michael feasts on Michael Pollan's "The Omnivore's Dilemma" and finds much to whet the tester's appetite for learning about how things work.

Michael Bolton's picture Michael Bolton
How Agile Practices Reduce the Top 5 Requirements Risks

Requirements risks are among the most insidious risks threatening software projects. Whether it is having unclear requirements, lack of customer involvement in requirements development, or defective requirements, these troubles are a major culprit in projects that go awry. As requirements expert and agile coach Ellen Gottesdiener explains, agile practice can go a long way in mitigating the top five requirements risks.

Ellen Gottesdiener's picture Ellen Gottesdiener
Adapting Inspections to the Twenty-first Century

How do you adapt inspections to a twenty-first century distributed workforce? A key part of the inspection process is the team meeting, which provides peer pressure to participate and consensus on defects. Teams working in multiple time zones have limited opportunities for the team meeting. A list of requirements and the functions needed to solve this problem based on real-world experiences should help anyone faced with this problem.

Ed Weller's picture Ed Weller
Software to Go: Developing Applications for a Wireless World

The mobile arena is in constant evolution, changing the way we approach software development both from a business and a technical perspective. Taking the time to set your plan can make the difference between success and just a good idea. In this article, Luis Carvalho shares some guidelines for bringing new applications into the mobile ecosystem.

Luis Miguel  Carvalho's picture Luis Miguel Carvalho
Testing the Contract Metaphor

A contract represents a service agreement between two parties, the bounded provision of service by one party to the other. This metaphor also applies to how we can think about the relationship between unit tests and code. A contractual mindset encourages test names and partitioning based on clear propositions, backed up with executable examples.

Kevlin Henney's picture Kevlin Henney
Crash Course in Proficient Presenting

Ben has to make a presentation at the next all-hands meeting. It'll be his very first presentation, and just thinking about it has sent him into a panic. Fortunately, he has the support of an experienced speaker and coach who offers advice and encouragement to help him become a proficient, panic-free presenter.

Naomi Karten's picture Naomi Karten
Issues about Metrics about Bugs

Managers often use metrics to help make decisions about the state of the product or the quality of the work done by the test group. Yet, measurements derived from bug counts can be highly misleading because a "bug" isn't a tangible, countable thing; it's a label for some aspect of some relationship between some person and some product, and it's influenced by when and how we count ... and who is doing the counting.

Michael Bolton's picture Michael Bolton
GUT Instinct

Whether or not a unit test is considered good is not simply about what it tests: It is also very much about "how" it tests. Is the test readable and maintainable? Does it define the expected behavior or merely assume it? To be sustainable, the style of a unit test is just as important as the style of any other code. Perhaps a little surprisingly, the most commonly favored test partitioning style does not meet these expectations.

Kevlin Henney's picture Kevlin Henney


AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.