Linking the left brain and the right brain

Category: Principle

Great agile teams have diverse skill sets and share a common vision. This is the fifth in a series of posts about building great software using agile techniques. The series started here. If you read any books on agile software development, you’ll see references to multidisciplinary teams. That means the development team is largely self-contained. […]

They are known for rapid responsiveness and swarming behavior. This is the fourth in a series of posts about building great software using agile techniques. The series started here. I’ve said before, “Plan less, deliver more.” Others have said, “Stop starting and start finishing.” Sounds crazy, right? How can your team deliver more software by […]

Constant feedback cycles are the key ingredient to continuous improvement. This is the third in a series of posts about building great software using agile techniques. The series started here. Perhaps the biggest mistake software development teams make when adopting an agile approach like Scrum or Kanban is assuming they can lay out the perfect […]

This is the second in a series of posts about building great software. The series started here. In my last post, I introduced the idea that great agile teams exhibit a set of attributes that clearly distinguish them from legacy teams using waterfall approaches. Their techniques are also quite different from software teams who claim […]

There are many Internet debates about what agile software development really is. Unfortunately, the term “agile” is misleading. The dictionary lets us down with definitions like “move quickly” or “think quickly”. Synonyms for agile lead us to fleet, graceful, nimble, spry or supple. Do any of those terms describe how your development team operates? Agile […]

It happens all the time. As companies grow, they take on bigger and bigger software projects. Why is that? Small companies work on small projects. Why? Simply because they can only handle small ones. They don’t have the staffing, equipment, office space or budget to handle big, long-term projects. Makes sense, right? Big companies have […]

A lot of attention is given to the term value. We want to know how much value a software development team creates with each deliverable. Unfortunately, value is a difficult thing to measure so it may be better to view the problem differently. What has value? The simple answer is everything — everything is valuable […]

Greatness is hard to achieve and even harder to maintain. Few agile software development teams ever achieve greatness and that’s probably a good thing — they wouldn’t be happy anyway. The best agile teams never get complacent; they never stop improving; they never get too comfortable; they are never happy with their performance. The good […]

Software is finding its way into almost every aspect of our daily lives. Everything from our kitchen appliances and entertainment systems to our automobiles is controlled by software. Regrettably, much of that software suffers from poor design, UX inconsistencies, obvious defects, and sluggish performance. I focus this blog on enterprise software development because it’s a […]

Every software development approach has its flaws and its critics. Though at times, it seems like everyone is looking for a panacea — a cure-all or ultimate remedy. Sadly, there is none. Here are a few criticisms leveled at the major development approaches. All have some validity, especially when the approach is applied improperly (which […]

There are two critically important elements to agile software development that are often either overlooked or ignored. Continuous Improvement A Willingness to Fail Any team committed to being agile will seek continuous improvement through regular retrospectives. There’s always room for improvement. Who among us believes that he is the best he can be — there’s […]

Large enterprises have lots of rules — do this, don’t do that, ad nauseum. Thus, it’s no surprise that software development teams in large enterprises are forced to follow lots of rules — document this, approve that, wait for something else. Then, along come the agilists promising a better way. You can build software systems […]

We spend a lot of time examining software project failures but it’s equally important to understand why some projects succeed. Here’s a short list. Commitment. The business stakeholders and the technologists are committed to the project — not just at the outset but throughout. This takes intense collaboration. There is also an executive sponsor or […]

Have you ever heard of the principle known as Occam’s Razor (or Ockham’s Razor)? I like to think of it as the law of simplicity — simpler explanations are better — all things being equal. Another way to think about it is that you should always start with what you know in trying to understand […]

Seems contradictory, right? We spend a lot of time preparing software development estimates. Yet, I claim that the end result has no value. None. I also claim that the effort required to prepare estimates is time well-spent. That doesn’t make any sense! Or does it? Everyone wants to know how long the project will take […]

What are you assuming? Every project plan, user story and task list contains assumptions. An assumption is something that’s taken for granted by the software development team — something presumed to be true. This is in contrast to risks, in that risks are adverse events that we believe are unlikely to occur. Some assumptions will […]

Technical-Debt-Driven Development (TDDD) is about to become the hottest craze. Here’s how it works. The software development team doesn’t waste time thinking about solution elegance or future considerations. They simply focus on getting the code working. If it works, it ships. Technical debt is leveraged as a means of accelerating the team’s efforts just as […]

Saying ‘No’ can make agile software teams and their companies more successful. How can that be? Doesn’t the team have to deliver what the business wants? Let me explain. Obviously, when a business stakeholder makes a request, the team has an obligation to evaluate the request and add it to the product backlog after appropriate […]

Here’s one of my big problems with some agile software developers and Scrum in particular — deliver potentially shippable software at the end of every sprint. That mantra puts a lot of pressure on the team to build, build, build. Planning? Designing? There’s no time for those. They need to build something that’s potentially shippable! […]

Intro

Welcome to BrainsLink.com - a blog written by Vin D'Amico about enterprise agile and its use in software development and business operations with occasional forays into open-source software and emerging technologies.