Direkt zum Hauptbereich

How the new approaches “Agile methods”, “Microservice Architecture” and “Minimum Viable Products” (MVPs) perfectly fit together.

Although the new approaches originate from different disciplines, they share the same two old and well known concepts: Divide & conquer and Inspect & adapt.

Why these approaches? – Because we naturally fail.

Today’s digital globalization requires highly integrated IT systems with rich functionality. In order to develop and operate such large and complex IT, we cannot simply scale the projects. Instead, we come up with new approaches such as MVPs in product management, Microservices in IT architecture and agile methods in project management.

Why these aspects? – Because they are crucial for successful IT products.
Product management focusses on the outcome - the IT product – from an external perspective. Whereas IT architecture defines the internal structure of the IT product. And project management considers the people and processes in order to manage limited time, resources and features respectively quality, since products are usually developed as project.

Agile methods

In project management, agile methods, such as Kanban, Scrum or Design Thinking, successes the classical waterfall process model (and its close friends such as the V-model), to quickly respond to changing requirements instead of following a plan.

Today, we build not only products for but with the customer. And we struggle planning an IT project, since stakeholder cannot exhaustively define the complex requirements a priori and technology, that helps us solving the requirements, rapidly changes. Using agile methods and not following a predefined plan optimizes outcome for such uncertain goals. Additionally, adaption enables taking advantage of technical innovation that might come up along the way. To run a project without a predefined plan, agile development divides the process into manageable time-boxes and induce people to learn from their output. We build, measure, and learn. Hence, we get most out of the resources in the long run by developing the product the right way.

MVPs

In product management, Minimum Viable Products (MVPs) forces the developers to get feedback about their output from real customers as early as possible. MVPs are usable, valuable and feasible products for early adopters. But MVPs strictly cut down the product to its core features – like a walking skeleton - and force early validation by the people that will actually use the product. We build, learn, and measure. This reduces the risk of potentially wasting resources and increases confidence about developing the right thing.

Microservices

In IT architecture, Microservices divide the IT product into small chunks (or services) that are developed and operated independently in order to not block time waiting for integration, like big, chunky monoliths. To me, micro means as small as possible and as big as necessary in this context.

Dividing the software into slices (services) along the business domains keeps functionality in one piece (from GUI to database) while the overall system evolves stepwise and operates more robustly, resilient and highly scalable due to the distribution onto several machines. See The Reactive Manifesto. On the downside, storing data redundantly is - for example – accepted, if decoupling the services leads to less coordination and increased overall performance.

What do the three new approaches share? – Essentially, two old principles!

The three new approaches from different perspectives have (at least) two old principles in common: Divide & conquer and Inspect & adapt.

Divide & conquer is a structural principle.

It splits up a large problem into smaller chunks, solves them separately and eventually merge the solutions. Here is an example:
You cannot carry the heavy bag to your car? Try to split it up and go multiple times.
Eventually, you willget the job done. That’s what matters.
In IT, this principle is, for example, used in A* search algorithms or the mapReduce pattern, although machines carry bags in parallel.

Inspect & adapt is a process principle.

The methods assumes that a process does not run perfectly right from the start. In order to get better in the long run, the method splits up the overall process into steps that are first executed, measured (inpect) and finally improved (adapt). Here is an example:
You are not good in surfing? (Surfing is a tough sport!)Try it out, swallow some salty water, recap, and then try again – you will learn at least how to fail. Eventually, you will learn something. That’s what matters.
In IT, this principle is, for example, used in evolutionary algorithms and reinforcement learning, although virtually.

As shown in the figure, both principles, Divide & conquer and Inspect & adapt, are the common core of the three discussed modern approaches Agile development, MVPs and Microservices.

Agile development splits the development process into repeating manageable steps (time-boxes or sprints) and induce people to learn (backlog grooming, review and retrospective meetings). MVPs reduce the product to core features and force early customer validation, which leads to stepwise software validation for every feature. And Microservices divide the software into slices that are evolved individually, stepwise in releases.

Do the new approaches fit together? Yes, they complement each other and make complex IT project successful!

Although the three inventions were developed independently, the principles are essentially the same and, hence, fit together perfectly.

As modern IT professionals,
  • we develop early customer-validated MVPs following agile processes and continuously improve products and people
  • we develop and run the business logic chunks as decoupled Microservices and get, as a result, resilient and scalable IT systems
  • we do not just optimize a single step of the waterfall process without knowing if the product come to live at all. We are a cross functional between managing projects, engineering requirements, usability, developing, testing, integrating and operating our products. 
Considering IT comprehensively, i.e. the product, processes and architecture promotes its success. Continuous adaption can lead to success. But there is no such thing as a free lunch. We need time to improve and the motivation to learn in several disciplines.

Get it done. Let’s get brave and move together towards this exciting new world!

I thank Xenium AG, and in particular our CEO Sebastian Kutscha and my account manager Nico Seemann for supporting me writing this article.

Kommentare

Beliebte Posts aus diesem Blog

Agile product teams

In this article, I’d like to share my condensed view on agile product development teams. It might help you to find your personal role in such a team or even setup a team based on my blueprint, as a team architect. Let me know, if you need any additional input. I’m happy to learn, help and speak about this topic. In the last years, I gained experience in different projects from delivering individual software with a single small team to developing large IT platforms with multiple agile teams (and non agile management) involved. In parallel, I deduced the principles from frameworks, i.e. Scrum, Kanban, Scrumban, LeSS and SAFe , and adapted them to our specific problems in the project. In the following sections, I will cover the process, the roles and responsibilities inside the team and how to combine them as well as supportive methods and tools to develop products. The following drawing provides an overview of these aspects, which I will describe in greater detail below. Agile

Leading the agile way

What about leadership in the agile world? Do we still need leaders if we run agile? Due to my experience in agile teams my answer is: "Yes, we need leadership but less managers! " The tasks itself are straight forward. But leading agilely means solving them different, new, agile. That means,no power to micro-managers by transparency. Instead, accomplishment and affiliation driven smart enabler and servant leaders without ego. But this is easier said than done. Lots of stuff is written about working agile. Frameworks, such as Scrum , define the basic team structure, processes and tools about organizing small teams of about 7 people. Other methods, such as SAFe , sketch how to interact between teams and scale agile to enterprise level. And lot’s of best practices (e.g. Spotify engineering culture ) describe how to run agile companies by example. However, I'd like to share my thought on the topic "agile leadership"  I gained from agile projects and teams in the

Building great APIs - the art of developer experience

Developing successful business by adapting your products to the diverse global market, relies on quick and sustainable technical integration. Hence, designing a great interface (API) is the key for product success today. Classical IT architects, however, don't really care for design, but developer experience people do. I show 5 techniques to design great APIs based on the experience in my last project. Let me start with a story about the importance of integrated systems for customer experience. I'm humanistic nerd and triathlete. So, I enjoy to track and analyze my sport performance. I train with a Polar M400 watch and use training plans from the corresponding cloud service Polar Flow . Now, I missed an additional navigation system to not ride the same track all the time and I'd liked to track cadence, which is, unfortunately, not possible with the Polar M400. However, I neither liked the bicycle computer Polar M460 , since it's just the features of watch in a b