Engineering and Agility

While engineering allows the right products to be designed on time and cost, agility promotes fast design of products, iteratively and incrementally, by delivering first what offers the most value to users.

Engineering addresses a range of activities related to the study, analysis, design, development, integration, verification and validation of systems and software. It is a rigorous and interdisciplinary approach that allows the delivery of quality products.Agility is both a mindset and a new way of designing products. The two are not incompatible, but on the contrary, engineering and agility must influence each other to achieve the best results.

System Engineering (SE)

  • is an interdisciplinary approach that brings together all the technical efforts to evolve and verify an integrated set of systems, people, products and process solutions in a balanced way over the life cycle to meet customer needs (AFIS),
  • is both a practice and a process:
    • Practical: SE offers a robust and structured approach to the development of complex systems, which can be applied at the level of the system and its constituents (subsystems and components),
    • Process: SE takes a look at the overall picture: the overall functions and behavior of a system, interfaces with users and other systems, the interaction of subsystems and components.

Requirements Engineering (RE)

  • is an important component of system engineering,
  • is a set of activities, methods, techniques and tools that consists primarily of establishing and maintaining a product-specific requirements repository,
  • applicable regardless of how a product is developed (cascading, V-shaped, iterative, incremental, spiral, agile),
  • is present throughout the life cycle of a product (from its definition to its obsolescence),
  • is applicable to any type of product (complex system, SI application, technical/boarded/real-time software),
  • is a principled discipline (separation of the problem and the field of solution, …).

Agility

  • is an organization's ability to create value and delight its customer, while promoting and adapting -on time – to changes in its environment (Grosjean, 2011),
  • is one (new!) how a product is developed,
  • is based on values and principles (see Agile Manifesto for Software Development),
  • implementation through practices (Scrum, Kanban, …) (SAFe, …),
  • is easy to understand, but difficult to implement!
  • is above all a state of mind!