agile

Software engineer looking at her computer monitors and integrating code Code Integration: When Moving Slowly Actually Has More Risk

Many decisions about code branching models are made in the name of managing risk, and teams sometimes pick models that make integration harder in the name of safety. Moving slowly and placing barriers to change can seem safer, but agile teams work best when they acknowledge that there is also risk in deferring change.

Steve Berczuk's picture
Steve Berczuk
Agile team coming up with three-point estimate for a project 3 Questions for Easier, Less Stressful Project Estimates

In agile development, the idea of precise estimates is unrealistic. But estimates are needed to inform decision-makers about whether it's worth solving a problem as it is currently understood. It sounds counterintuitive, but instead of asking for one estimate of cost and schedule, ask for three. Here's why it's more useful.

Payson Hall's picture
Payson Hall
Looking at code through eyeglasses Fearless Refactoring, Not Reckless Refactoring

Fearless refactoring is the agile concept that a developer should be able to incrementally change code without worrying about breaking it. But it's not believing that you don't need a safety net to detect and correct defects quickly when changes are made—that's just reckless. Here's how to avoid reckless refactoring.

Jeffery Payne's picture
Jeffery Payne
Basketball player playing defense Defensive Design Strategies to Prevent Flaky Tests

Flaky tests could be the result of issues in the code, but more often they are due to assumptions in the test code that lead to non-relatable results. There are many reasons that tests can fail intermittently, and some can be easily avoided by applying good defensive design strategies. It's all about making your code agile.

Steve Berczuk's picture
Steve Berczuk
Repeating geometric pattern Achieve Repeatable Builds with Continuous Integration

Continuous integration is essential to provide the feedback needed to keep a team’s code agile. One crucial aspect to a successful CI process is a repeatable build. There are two parts to maintaining a repeatable build: the idioms and practices to define it, and the feedback cycle to maintain it. Here's what you need.

Steve Berczuk's picture
Steve Berczuk
Mary Poppendieck Driving Agile Change: A Slack Takeover with Mary Poppendieck

Thought leaders from the software community are taking over the TechWell Hub to answer questions and engage in conversations. Writer, speaker, and author Mary Poppendieck hosted this Slack takeover and discussed all things agile, including how development has evolved over the decades and how to implement agile changes.

Kelly McGee's picture
Kelly McGee
Scientist holding up a slide with a plant on it to examine it Reality-Driven Testing in Agile Projects

Agile teams can drive down rework and devise more useful tests quicker by prioritizing reality-driven testing. This means tests based on reality, or relevant test activities above and beyond those derived from requirements. Learn some strategies to get real and design tests to locate important bugs that truly matter.

Robert Sabourin's picture
Robert Sabourin
Two agile teammates using a kanban board with sticky notes Is the Problem with Your Agile Tool, or How You’re Using It?

While using index cards and a wall can function just fine as a kanban or Scrum board, issue-tracking tools such as Jira can make it easier to manage a backlog, especially with a distributed team. But these tools are more complex to use and can add their own overhead to the process. You need to keep things simple.

Steve Berczuk's picture
Steve Berczuk