What is Agile thinking? Let’s start with the problem first.
Modern software products, especially the creation of said products, fall victim to many mistakes. One of the biggest is that in building software we compare the work to the building of anything else.
Especially the building of physical structures and objects. Mostly, because we have been building physical things for a very long time. It is easy to make that comparison. But we haven’t been building software as long. And the comparison is not an accurate one to make.
Agile thinking – let’s get started
Take, for example, the building of a fence. The work to be done and how to do it is known. Or even take the construction of a large and complex building. Sure, there are surprises along the way, but the work to be done is relatively known. Now take the building of software or updating of software. The work, and more specifically, the how to do that work, is largely unknown. Yet, we apply the same time estimation, work completion reasoning, work management and more, from the first to the second.
Which, leads to some of the common mistakes associated with building software products. These are things that are very applicable to other types of work, but when used in solving software problems, they create issues.
Mistakes when not leveraging Agile thinking
- trying to hit a date just to hit a date
- trying to apply simple problem solving and frameworks to complex software problems
- not understanding goals or needs
- not building the right thing
- building something just to build something
- not understanding the user or audience of the software product
- not embracing user feedback and the ability to learn
- holding to a plan because it is the plan
Agile thinking empowers the team and team members
All of these things make the proper approach to building software products so important. Which in a nutshell is all about understanding the needs of your users or the goals for your software product. This involves an element of design thinking, needed to help make sure you build the right things.
Which, is only strengthened by Agile thinking in the building of software products. Because Agile teams use the understanding of needs and goals to go and build the right things, they will need to employ some level of design thinking, right alongside their Agile thinking. This lets the team build the most valuable software they can.
Agile software development empowers teams to understand the needs and goals and to go and solve them. In order to do this, there is an aspect of needing to understand how to create valuable products. And how to avoid pitfalls and things that will hurt the product development.
Additional reading and books that help with Agile thinking
Level up your Agile thinking. Avoid the mistakes above. Empower the team. These things will boost up your Agile process and enable true team success.
Also available at Leanpub, a great text on Vertical slicing of user stories. This practice allows breaking up the work into more manageable, and easier implemented pieces. But pieces that function and can deliver value. Available here. Another great piece of information on Vertical Slicing is available here.