The Agile Mindset: A Big Picture Overview For Self-Taught Developers

Agile means having an Idea for what you want to accomplish and in what order, while also being flexible

Arno Slabbinck
Project Management Knowledge

--

Photo by Lala Azizli on Unsplash

The truth is solving coding challenges won’t elevate your career to the next level. Don’t get me wrong. Good problem-solving abilities are essential. But software development is a team sport; soft skills like good communication skills, being driven, and being curious have a bigger impact.

Now the “how to” approach for a project can be done in two ways

Either we can have a project where everything about our end goal is determined and doesn’t change like when building a house or a bridge. In that case we use what is called a waterfall approach; in linear fashion we make a big plan upfront, move step by step towards our solution, and hope there’s no change along the way.

However software development works like evolution; business needs and so constraints change all the time.

When a user want a different feature we deliver.

So our mechanisms need to be fluid to handle those business needs. This goes for our requirements, knowledge, the programming language we use.

With changes also comes necessary complexity.

So we need to have patterns to simplify and reduce the complexity of our tasks

To deliver successful software products, we need adaptive planning evolutionary development, provide often and early, provide value to the business sooner.

Every organization creates value and growth through project initiatives, and that’s why successful project management is crucial for our business to survive.

What Is Agile?

Waterfall vs. Agile Development

In the 1990s, software developers came together to develop a different approach to software development

They came up with four fundamental values:

  1. People and interactions over processes and tools(Question how things are being done and the impact on people)
  2. Working Software over comprehensive documentation(Don’t spill too much time focusing on writing extensive requirements. Software constantly changes)
  3. Customer collaboration over contract negotiation(Involve customers into the development process for reliable feedback)
  4. Responding to change over following a plan

In the early 2000s, the history of Agile — and the future of development — changed forever.

Since the 2000s, Agile Development has picked up steam. You can no longer ignore agile development from software development today. But for new developers, Agile development can seem very complex. But it doesn’t have to be.

Agile is about having a flexible response to change.

Change is at the heart of every software project.

But that doesn’t mean we don’t need to define our requirements. Every successful new project has started in a new way with careful planning, and we still need to focus on how to do things. Except, the traditional focus on processes must be put in perspective when embracing Agile.

Agile mentality requires us to embrace change by defining the project vision every step of the way.

The Agile Mindset

The highest priority is to satisfy the customer through early and continuous delivery software. We need to deliver software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.

Working Software is the primary measure of progress, and continuous attention to technical excellence and good design enhances agility. We only make progress in Agile if we have delivered working Software for the user.

This also means we only focus on what’s most important. Simplicity, the art of maximizing the amount of work not done, is essential.

That’s why Agile processes promote sustainable development. The sponsors, developers, and users should maintain a constant pace indefinitely. That’s why we put more enfaces on relationships over methods.

That’s not to say processes aren’t necessary. Standard processes are good if they work, and there’s nothing wrong with it. We don’t want to change something if it’s not needed. A problem only arises when a process becomes too rigid.

When we stop to question why things are done the way they are. If something is done that doesn’t bring value; we should always change our approach. Everybody on the team has that responsibility. Maybe you aren’t in the position to make a change. So you will have to make a case for why that change is necessary.

Only That’s why we when need to build projects around motivated individuals. We need to create an environment of support and trust, not where we have no room to grow and transparency.

It’s important to remember that agile isn’t a holy grail. Agile is only an approach for making good Software. Nothing more, nothing less. It empowers project teams to adapt and enhance performance.

If you are a developer beginning, you don’t need to understand the Agile development process in detail. That comes gradually over time. With the Agile mindset, you have the most important thing down by focusing on the right things :-)

--

--

Arno Slabbinck
Project Management Knowledge

Passionate software engineer about Code and Cloud. I enjoy simplifying life, love sharing ideas and boosting code productivity.