Articles

Laptop with code on the screen Agile Development: Focusing on the Health of Your Code

In Scrum, the product owner and the ScrumMaster are supposed to drive sustainable development. But there's a third force missing from the formula: the health of the code itself. We often forget that our code is also a member of our team, and we have to be concerned about its health and well-being as much as any other team member. That means using practices to develop good code from the beginning.

David Bernstein's picture David Bernstein
Partially open computer showing a bright screen Software Development: An Industry of Amateurs

David Bernstein says the software industry is an industry of amateurs. It's a young field, and he doesn’t think it's yet graduated into a true profession. Here, David contrasts the software industry with other, more established fields, and he talks about what software professionals need to do in order for the industry to become accepted and esteemed.

David Bernstein's picture David Bernstein
Sticky tags that say "Hello, my name is," photo by Jon Tyson What's in a Name? Build Better Software by Naming Classes and Methods Clearly

One of the most important things to pay attention to when writing software is how we name our symbols. Data and behavior should be named in a way that represents the essence of what we're trying to do. Naming affects understandability and reflects code quality, so use names that clearly communicate your intentions, and refactor those names when your intentions change.

David Bernstein's picture David Bernstein
Changeable code The Value of Test-Driven Development when Writing Changeable Code

Writing changeable code makes it easier and more cost-effective to add features to existing software. Writing changeable code doesn’t take longer, but it does require paying attention to certain things when building a system. It's important to have a good suite of unit tests that support refactoring code when needed, and test-driven development helps you create independently testable code.

David Bernstein's picture David Bernstein

Better Software Magazine Articles

Do You Really Want to Be a Manager Do You Really Want to Be a Manager?

The majority of managers are promoted due to their software development expertise. But becoming a successful manager requires a drastic change of focus. There is a set of expectations to consider before making that leap to the “dark side.”

Ron Lichty's picture Ron Lichty MW Mantle
Playing Games to Improve Software

You may not have heard about gamification, but instructional designers are now using game principles to help with retention of learned material in many forms of training. Ross Smith and Rajini Padmanaban believe that developers' UX and app design can benefit from gamification.

Ross Smith's picture Ross Smith Rajini Padmanaban
When Software Smells Bad

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.

Leveraging A Learning Culture

Mistakes happen. It's how you respond to them that matters. Teams might react to a bug with panic and blame, leading to a quickly hacked fix and possibly more issues. Taking time to investigate and learn leverages problems into process and practice improvement and a higher quality product.

Lisa Crispin's picture Lisa Crispin

Interviews

Melissa Benua discusses continuous integration Employ Continuous Integration Processes to Make Your Code Work: An Interview with Melissa Benua
Video

In this interview, Melissa Benua, senior backend engineer for PlayFab, explains the new way of life that continuous integration brings. She imparts practical advice for creating builds and running automation on the fly without spending hundreds of hours or thousands of dollars.

Jennifer Bonine's picture Jennifer Bonine
Mobile software developer Josh Michaels Mobile Development and Aggressive Testing: An Interview with Josh Michaels
Video

Josh Michaels is an independent software developer who makes apps for the iPad, iPhone, and Mac under the company name Jetson Creative. In this interview, Josh discusses mobile development, testing aggressively, and keeping users happy. 

Jonathan Vanian's picture Jonathan Vanian
Joe Justice inventor of the Extreme Manufacturing project management method For Maximum Awesome: An Interview with Joe Justice
Video

Joe Justice is a consultant at Scrum Inc. and inventor of the Extreme Manufacturing project management method. He also is the founder of Team WIKISPEED, an all-Scrum volunteer-based, "green” automotive prototyping company.

Cameron Philipp-Edmonds's picture Cameron Philipp-Edmonds
Maintaining the Programming Mob: An Interview with Woody Zuill
Video

"Fun" and "kindness" aren't the first things that come to mind when thinking of the mob, but in software development—they're mandatory. Woody Zuill discusses how mob programming takes a very agile and collaborative effort at delivering great software on time, and with the respect of everyone on board.

Noel Wurst's picture Noel Wurst

Conference Presentations

Agile DevOps West Mobbing, Pairing, Soloing, and Pipe Fires: A Personal History of Collaboration
Slideshow

Pair programming: the practice you love to hate! Twenty years after being introduced as part of Extreme Programming, the collaborative practice is still a thing. And if you thought pairing was nuts, now there's mobbing, where the entire team works together on one thing at a time. Yet we often hear teams say, "We go faster because we are mobbing." In this anecdote-heavy session, you'll hear Jeff Langr's history of working through various models for collaboration (or not) across the past several decades, including solo programming, pairing, and mobbing. He'll show you his office blueprints to help put you in his shoes and understand what contributed to the ups and downs of each model. You'll learn tips for success, pitfalls to watch out for, and Jeff's take on why mobbing or pairing might help us go faster. Come with a willingness to lose your preconceptions.

Jeff Langr
Agile DevOps East A Personal History of Collaboration: Soloing, Pairing, Mobbing, Cube Farms, and Pipe Fires
Slideshow

Pair programming is the practice you love to hate! It's been nearly twenty years since Extreme Programming promoted pair programming as a collaborative practice, and it's still here. And if you thought that was bad, now there's mobbing, where the entire team works together on one thing at a time. Does that seem nuts? Yet we often hear teams say, "We go faster because we are mobbing." In this anecdote-heavy session, you'll hear Jeff Langr's history of working through various models for collaboration (or not) across the past several decades, including pairing, solo programming, and mobbing. He'll show you his office blueprints to help put you in his shoes and understand what made for the ups and downs of each model. You'll learn tips for success with each model, pitfalls to watch out for, and Jeff's take on why mobbing or pairing might help us go faster.

Jeff Langr
STARCANADA Mobbing for Test Design: Connecting with Your Colleagues’ Test Ideas
Slideshow

Do you have trouble generating test case ideas? Are there seemingly obvious bugs getting through your test plan? Are you considering revamping your current test analysis and design? If you answered yes to any of these questions, then this session is for you. You may have heard of mob...

Jeff MacBane
Mobile Dev Test Threads, Queues, and More: Async Programming in iOS
Slideshow

To keep your iOS app running butter-smooth at 60 frames per second, Apple recommends doing as many tasks as possible asynchronously or “off the main thread.” Joe Keeley introduces you to some basic concepts of asynchronous programming in iOS. He discusses what threads and queues are, how...

Joe Keeley

AgileConnection is a TechWell community.

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