»Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.«
—Melvin E. Conway (1968)
BPMN for example can be used to model and visualize business processes. Practice shows this is an appropriate way to generate common understanding with all stakeholders involved.
Furthermore a common terminology of the domain has to be evolved and optimal traceability of changes made has to be guaranteed. Throughout the entire lifecycle the »What & Why« of a requirement should be crystal clear to all participants.
These are challenges for both Team and Product Management – or in other words: the communication structures of the organization.
In contrast Project Management stresses the »When & How« focussing budget, timeline and policies. To achieve these commercial objectives and constraints it is necessary to ensure productive teamwork at continuous rhythm – in my opinion this is the key for reliable forecasting and predictable delivering.
In my opinion the cornerstone of an agile process is the automation and scheduled execution of routine tasks – to create scope for non-routine jobs. The stated aim should be the delivery of product increments on-demand at the push of a single button. I contribute to the development of packages, which help to solve such tasks (see zms3.deployment and zms3.behave).
Currently I am involved in Behavior-driven development (BDD) practices as an agile software development technique that encourages collaboration between developers, operations and non-technical or business participants.
BDD focuses on obtaining a clear understanding of desired software behavior through discussion with stakeholders. It extends Test-driven development (TDD) by writing test cases in a natural language. This may minimize translations between the domain language spoken by the business, users, stakeholders, project management, etc. and the technical language in which source code for test automation is written.