Design & Code

Articles

Branching example Picking the Right Branch-Merge Strategy

A good branch-merge strategy facilitates processes among multiple developers and is the basis for any well-functioning DevOps pipeline that uses continuous integration. Let’s explore branching strategies, merging strategies, and how you can put them together in a way that’s right for your team in order to bring quality features to production faster.

Alan Crouch's picture Alan Crouch
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
Circle made of arrows Why You Need Continuous Testing in DevOps

DevOps is more than adopting the right set of tools; it's a cultural shift that incorporates testing at each stage of the agile project lifecycle. Continuous testing is key to unlocking this culture change because it weaves testing activities into every part of the software design, development, and deployment processes, which helps everyone involved communicate more, collaborate better, and innovate faster.

Tom Alexander's picture Tom Alexander
A developer and a tester looking at each other warily Examining Cross-functionality Bias on Software Development Teams

Cross-functionality means having all the necessary people and skills on one self-organizing team. Unfortunately, the execution of cross-functionality is often biased. The main traps we fall into are misunderstanding the value of specialization, hero worship, and not “walking the cross-functional talk” as organizations. Let’s examine each of these pitfalls in the hope that your teams may avoid them.

Natalie Warnert's picture Natalie Warnert
A partially open laptop shows a colorful screen, photo by Ash Edmonds When Software Development Becomes a True Profession

David Bernstein describes the software profession as an industry of amateurs. He argues that it does not yet have many of the things that a true profession has, such as a defined path of entry or good apprenticeship opportunities. A big reason is that computer programming hasn't been around as long as other industries, but what else will it take for software to rise in the ranks?

David Bernstein's picture David Bernstein
Three different colored keys 3 Keys to Mastering Test-Driven Development

From his decade of teaching thousands of professional software developers how to be effective with test-driven development, David Bernstein has learned that there are three key ingredients for mastering TDD: understanding what it really is, making code reliably testable, and getting hands-on experience. Let’s look at each of these factors to see what it takes to use TDD effectively on your projects.

David Bernstein's picture David Bernstein
Diagram showing how continuous engineering is part of continuous planning and delivery Focus on Agile Engineering Methods in Your Digital Transformation

Organizations undergoing a digital transformation must adopt new and meaningful ways of working. For a successful transformation, in addition to agile processes, teams must also leverage agile engineering techniques and models. Continuous focus on agile engineering principles will provide a solid ground for teams to enhance their agility and deliver better software, faster.

Uday Varma's picture Uday Varma
Server stack with a line through it The Pros and Cons of a Serverless DevOps Solution

The dream of any product owner is fully customizable production software without the expense of the hardware it rests upon. While not completely free of infrastructure, serverless infrastructure significantly reduces overhead costs by abstracting away physical hosting, physical security, server maintenance, and OS patching. Here's what you need to know to decide if serverless infrastructure is right for you.

Glenn Buckholz's picture Glenn Buckholz
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
Icon showing an automated system Why You Need to Be Doing Continuous Integration

It’s usually easy and inexpensive to set up a continuous integration environment for either an agile or a waterfall project. Perhaps the most obvious benefit of CI is the elimination of the integration phase that existed in traditional waterfall projects, where we typically slip the worst on deadlines. But there are many other benefits to continuous integration that you may not have considered.

David Bernstein's picture David Bernstein

Pages

AgileConnection is a TechWell community.

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