Developers have a tendency to overbuild their code. This is frequently due to not knowing exactly when they're done and not knowing how robust a feature needs to be. Acceptance test-driven development (ATDD) is a great way to avoid this practice because when the acceptance test passes, the developer knows they're done building that particular feature.
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.
Mob programming is a software development approach where the whole team works on the same thing at the same time, in the same space, and at the same computer. Collaborating like this can have great benefits for everyone involved. Here, Woody Zuill details some practices his team uses to make this collaboration work for them.
Prakash Pujar writes about his team's experience adopting some of the best agile practices to make their process extra lean and increase efficiency by increasing throughput—all without any change to the agile framework his team was following before and after. Here, he talks about some of the lean practices that worked for them.
When task completion falls behind and more work is lined up for later, you've entered the land of technical debt. This is particularly true in mobile app development. Brian Westendorf presents practical advice to avoid this situation.
Common practice suggests that lower severity defects shouldn't hold up a product release. Jennifer Gosden believes that, just as broken windows in a home can invite crime, letting lower severity defects linger results in poor overall product quality.
Alan Crouch addresses the question most commonly raised by those who are new to security testing: "How does security testing fit in my QA process?" Alan explains that security testing shouldn't be limited to the QA process, but instead should be applied throughout the entire software development lifecycle. Read this FAQ column for suggestions on how to improve your chances for success in catching security issues.
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!
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.
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.
Much has been written about how to write microservices, but not enough about how to effectively deploy and manage them. Microservices architecture multiplies the number of deployables IT has to manage by at least ten. In that world, tooling to manage cloud deployments and related infrastructure has become essential for success, and Terraform and Docker are increasingly being leveraged to facilitate microservices environments. Derek Ashmore will share his hard-learned best practices for deploying and managing microservices in production. He will leverage true infrastructure as code using Terraform, the leading coding framework for building and managing change in cloud environments. That code is easily reused and makes it simple to deploy and scale software, including Docker images. You will learn not only how to establish that environment initially, but how changes can be effectively managed.
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...
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...
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...