Skip to content
Bits&Chips
×
×
Memberships
Advertising
Magazines
Videos
Contact

Log in

Han Schaminee is a self-employed professional in product creation.

Opinion

Do Agile and architecture really clash?

30 October 2024
Reading time: 4 minutes

Software engineering students should be offered practice with design for changing requirements, including the unknown unknowns that aren’t typically included in today’s curricula, argues Han Schaminee.

Some years ago, I attended a graduation ceremony at a university and started a chat with a professor in software architecture. When he learned I lectured about Agile principles, his immediate reaction was that he and I were teaching conflicting concepts. Although I’m aware of the many misconceptions about Agile, I still got a bit irritated to hear this from a professor in software engineering.

There’s a widespread impression that Agile is a trial-and-error method – no plans, no structure, and we’ll see what and when the activity will deliver. It’s true that with an Agile way of working, the teams often deliver something quite different from what was expected at the start. But that’s on purpose; it’s because the expectations change! As a result of a strong collaboration with various stakeholders and a continuous discussion on what deliverables are really needed, the scope of the activities is continuously adapted rather than just blindly executing the plan drafted a long time ago. To reduce avoidable waste, decisions are postponed until they’re really needed.

Sometimes, however, we need to make early decisions, even if that would potentially lead to waste. In Agile, contrary to what people may think, we think carefully and use the available information to come to the best possible decision, even when it’s early in the process. Agile is just a way to deal with the intrinsic uncertainty in many things we do rather than deny and neglect it or recover in a late phase when waste can no longer be avoided. It’s about being ready for change and this requires a lot of upfront thinking.

Architecture and implementation are a joint responsibility

A lot has been written on Agile architecting, an adaptive process of continuously updating the architecture and postponing architecture decisions to avoid waste. Moreover, in Agile, the responsibility for architecture isn’t just with a few architects throwing a design over the fence and leaving the implementation to a team; architecture and implementation are a joint responsibility. I won’t go into detail here, and instead focus on one aspect, which some people may simply consider good craftmanship, but what I like to refer to as the ability to deal with uncertainty.

More than a decade ago, I was involved in the development of a new consumer navigation device. The software on that device consisted of three parts: the navigation core with all the business logic, the navigation user interface and the user interface dealing with non-navigation topics like connectivity, subscription management and downloading new maps. These were all delivered by different teams.

I remember that one day, the hardware design department had decided – without looking into the possible software consequences, a common phenomenon in many companies – to implement a last-minute change and modify the pixel aspect ratio of the display. In those days, this had quite some impact on both user interfaces. The navigation UI team changed some settings and within hours, the user interface looked nice and neat again as expected. The other UI team struggled; their text was all over the display and not aligned at all. The navigation user interface clearly was more robust against these late hardware changes and designed with the possibility of changes in mind.

For me, this is also an important aspect of product architecture: it should be robust against changes. Textbooks talk about modifiability and often start with the question: what’s likely to be changed? That’s a valid question. However, architecture must also deal with unknown unknowns, and we may face some unexpected changes. But even when something isn’t likely to be changed, it’s good software engineering practice to be explicit on our assumptions and minimize the dependencies on these assumptions. And don’t assume something will never change.

When I look at the curriculum of university software engineering programs, they’re a lot about how to design complicated architectures for well-defined problems and even create robustness against unexpected inputs, sometimes using formal methods to prove correctness under all circumstances. However, I see few opportunities for the students to practice design for changing requirements. Why not let them take existing software and implement a new or changed requirement and identify what past architectural design decisions have now blocked an efficient implementation of the change? That’s probably closer to the real world of software engineering than designing from scratch. It’s closer to the Agile world, where we organize ourselves for uncertainty and are ready for change.

So, I agree with the professor that Agile principles conflict with the current curriculum in many universities. But isn’t he in the driver’s seat to make that curriculum a better fit with the real needs of the industry?

Related content

ASML deserved better: Nieuwsuur’s report on China was recklessly thin

“AI won’t replace designers – but it will change everything”

Top jobs
Cyber Security Architect
Alliander
Arnhem
Events
Benelux RF&IC Conference
27 May 2026
Eindhoven
Courses
Headlines
  • ASM plots major expansion on Almere’s new High Tech Campus

    18 December 2025
  • The Netherlands joins US-led push to secure AI and chip supply chains

    17 December 2025
  • Global semiconductor equipment sales continue to rise

    17 December 2025
  • Antennex to build a space-ready reverberation chamber for ESA

    16 December 2025
  • Intel completes acceptance testing of ASML’s EXE:5200B high-NA EUV scanner

    16 December 2025
  • Philips to integrate AI across coronary portfolio with Spectrawave addition

    15 December 2025
  • Microalign doubles fiber array density for quantum photonics

    15 December 2025
  • Neways absorbs Philips Micro Devices

    11 December 2025
  • NXP exits 5G radio power market, shutters Arizona GaN fab

    11 December 2025
  • Wingtech seeks talks with Nexperia

    11 December 2025
  • Imec advances 2D FET integration with record pFETs

    10 December 2025
  • DNP unveils 10 nm nanoimprint template for next-gen chip production

    10 December 2025
  • Sandgrain bags €13.5M Series A to advance hardware-anchored IoT security

    9 December 2025
  • ASML sales to Chinese military-linked institutes raise questions about Dutch export policy

    9 December 2025
  • Gartner tempers AI euphoria among carmakers

    9 December 2025
  • University of Groningen and ASML deepen research tie-up

    8 December 2025
  • Imec halves peak temperatures in 3D HBM-on-GPU AI chips

    8 December 2025
  • Delft Circuits taps BCG veteran as CEO, secures €8M in additional funding

    3 December 2025
  • XLight gets federal boost for EUV source

    2 December 2025
  • Keenfinity cuts one-fifth of former Bosch Security Systems in Eindhoven

    2 December 2025
Bits&Chips logo

Bits&Chips strengthens the high tech ecosystem in the Netherlands and Belgium and makes it healthier by supplying independent knowledge and information.

Bits&Chips focuses on news and trends in embedded systems, electronics, mechatronics and semiconductors. Our coverage revolves around the influence of technology.

Advertising
Subscribe
Events
Contact
High-Tech Systems Magazine (Dutch)
(c) Techwatch bv. All rights reserved. Techwatch reserves the rights to all information on this website (texts, images, videos, sounds), unless otherwise stated.
  • Memberships
  • Advertising
  • Videos
  • Contact
  • Search
Privacy settings

Bits&Chips uses technologies such as functional and analytical cookies to improve the user experience of the website. By consenting to the use of these technologies, we may capture (personal) data, unique identifiers, device and browser data, IP addresses, location data and browsing behavior. Want to know more about how we use your data? Please read our privacy statement.

 

Give permission or set your own preferences

Functional Always active
Functional cookies are necessary for the website to function properly. It is therefore not possible to reject or disable them.
Voorkeuren
De technische opslag of toegang is noodzakelijk voor het legitieme doel voorkeuren op te slaan die niet door de abonnee of gebruiker zijn aangevraagd.
Statistics
Analytical cookies are used to store statistical data. This data is stored and analyzed anonymously to map the use of the website. De technische opslag of toegang die uitsluitend wordt gebruikt voor anonieme statistische doeleinden. Zonder dagvaarding, vrijwillige naleving door je Internet Service Provider, of aanvullende gegevens van een derde partij, kan informatie die alleen voor dit doel wordt opgeslagen of opgehaald gewoonlijk niet worden gebruikt om je te identificeren.
Marketing
Technical storage or access is necessary to create user profiles for sending advertising or to track the user on a site or across sites for similar marketing purposes.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
View preferences
  • {title}
  • {title}
  • {title}

Your cart (items: 0)

Products in cart

Product Details Total
Subtotal €0.00
Taxes and discounts calculated at checkout.
View my cart
Go to checkout

Your cart is currently empty!

Start shopping