Articles

Four Techniques to Wrap Your Head Around Complicated Code

Software people love challenges and want to exercise their brains by tackling difficult problems. Our nature is to understand complicated problems, become familiar with various business domains, and generate a solution that helps the world become a better place. Nirav Assar explains four techniques to wrap your head around complicated code.

Nirav Assar's picture Nirav Assar
branching strategies chart End-of-Release Branching Strategies

This two-part article explores branching strategies—development tactics that allow teams to work concurrently on different features and maintain the relationship between them. In part one, Steve Berczuk explains what branches are, common types of them, and the tradeoffs between branching styles.

Steve Berczuk's picture Steve Berczuk
taking notes Test Software before You Code

Testing doesn't have to begin after the code has been written. In this column, Jeff Patton resurrects the oldest and most overlooked development technique, which can be used to test a product before any piece of it materializes.

Jeff Patton's picture Jeff Patton
settings database table How to Merge XML Data with a Database

In his article "Data Crunching Tips and Techniques," Greg Wilson taught us how to translate legacy data into XML. In the second half, he explains how to merge new data into an existing database. Developers will always face these types of data crunching problems, and knowing the standard data crunching tools can save you a lot of time. Greg also shares the basic knowledge about relational databases that every developer should possess.

Greg Wilson

Better Software Magazine Articles

cyber thief What if Someone Steals Your Code?

Bob Zeidman, an expert in software forensics, provides a great overview of how to protect your software from predators. You'll learn the difference between copyrights, trade secrets, and patents.

Bob Zeidman's picture Bob Zeidman
The Rules for Writing Maintainable Code

We've all been burned working with software code that, if not designed for long-term maintainability, results in expensive support over a product's lifetime. Kaushal explores three approaches that provide guidelines to ensure that software is designed with maintainability in mind. If you're a software developer, read this!

Kaushal Amin's picture Kaushal Amin
Alternative JVM Languages For Java Projects

Java Virtual Machine has become a successful platform for applications written in many languages, not just Java. Alternatives like JRuby, Scala, Clojure, and Groovy can be more concise and offer new ways to approach problems.

Daniel Wellman's picture Daniel Wellman
An Introduction to Scala

Scala is a programming language that blends functional and object-oriented language features. Scala programs run on the Java Virtual Machine and can easily interact with Java code. Learn how Scala can yield concise, safe, and compatible code and how you can start learning Scala on your own.

Daniel Wellman's picture Daniel Wellman

Interviews

Clean code proponent Andrew Wulf Making Testers Miserable: An Interview with Andrew Wulf

Andrew Wulf runs TheCodist blog, is the lead iOS programmer for Travelocity, and owns Idle Diversions—an iOS game company. In this interview with Noel Wurst, Wulf discusses his role as a coder to "make testers miserable," the need for clean code, and practicing agile before it was a term.

Noel Wurst's picture Noel Wurst
Software development consultant Kevlin Henney Worse Is Better Revisited: An Interview with Kevlin Henney

Kevlin Henney believes that it's time to revisit the thinking behind "Worse is Better," which he does in this interview with Noel Wurst. Kevlin explains that by getting past the catchiness of the phrase, and really digging deep into its real meaning, there's a real sense of agile underneath.

Noel Wurst's picture Noel Wurst
Agile and lean software developer Cory Moy How to Hear Your Unhappy Code: An Interview with Cory Foy

Cory Foy uses more than a decade of experience with agile and lean development to help developers create cleaner code, and also be able to know—or "hear"—when their code is unhappy. In this interview, Cory shows why constantly learning and evolving your language skills is so important.

Noel Wurst's picture Noel Wurst

Conference Presentations

Mobile Dev Test Connected Devices, Connected Code, and Connected Teams: The Challenges of IoT Software Delivery
Slideshow

Developing software for the Internet of Things (IoT) comes with its own set of challenges and issues, including security, privacy, and unified standards. Each IoT product is comprised of (at least) three separate application components: the software embedded in the device, the backend...

Anders Wallgren
Mobile Dev Test IoT—Let’s Code Like It’s 1999!
Slideshow

Everyone is drawn to the cool new ways to connect devices to the Internet and make life easier—and a little more futuristic. But, do you know that IoT has been around since the past century? Theresa Lanowitz is one of the early advocates of what is now IoT and is thrilled that the pace of...

Theresa Lanowitz
Collocated West Logo The Soft Skills of Great Software Developers
Slideshow

Are you creating clean, high performing code? Are you following the right development practices, but still don’t feel you are getting the recognition or success you deserve? The truth is that working harder and improving your programming skills are not enough. Great developers must...

Raul Suarez
When Code Cries: Listening to Code
Slideshow

What is the best way to learn a new programming language or improve coding skills with the language you already use? Cory Foy has developed a new method for learning—and teaching—new programming languages and improving programmer expertise on their current languages. 

Cory Foy, Cory Foy, LLC

AgileConnection is a TechWell community.

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