Principles for Effective Software Process Frameworks

Principles

The Disciplined Agile process decision framework is guided by the following principles:

  1. Choice is good, and making informed choices is better.  Every team is a collection of unique individuals that face a unique situation within the context of a unique organization. One process size does not fit all. To provide choice the DA framework supports several delivery lifecycles and is process goal driven. Most importantly the DA framework describes the tradeoffs involved with a myriad of agile and non-agile practices enabling people to make intelligent decisions regarding which practices to adopt given the current situation that they face.
  2. Optimize the whole. The DA framework addresses the full IT lifecycle, showing how it all fits together. Without an understanding of the larger process environment teams run the risk of locally optimizing their own processes to the detriment of the whole. For example, your data management team may have their own streamlined process based on traditional DAMA strategies, your delivery team may have their streamlined process based on the principles of the Agile Manifesto, and your operations team may have their streamlined process based on ITIL. Yet your overall process is ineffective because these three locally optimized strategies contradict and degrade one another when combined.
  3. Every team owns its process. Teams, and the individuals on them, must be free to improve the way that they work based on their learnings over time. In agile parlance we say that these teams “own their process”.
  4. Improve continuously. Individuals, teams, and organizations must strive to continuously learn and improve the way that they work. The DA framework includes the process goal Improve Team Process and Environment which describes options for doing exactly what its name implies. It also has an explicit process blade Continuous Improvement that describes strategies for sharing improvements across teams, thereby speeding up your organization’s process improvement efforts.
  5. Embrace process change. IT departments are complex adaptive systems. One implication of this is that any improvements that a team makes may change the way that they work with other teams, motivating process improvements within those teams. Those changes may motivate improvements within other teams and so on. Disciplined agile teams are enterprise aware and understand that they will need to work with other teams to help them to understand and adopt new innovations, and be prepared to be helped by others to do the same.
  6. Repeatable results are far more important than repeatable processes. Effective teams focus on producing repeatable results, such as delivering high-quality software that meets stakeholder needs in a timely and cost effective manner.  Because each team finds themselves in a unique situation, to be most efficient they need to follow a unique process tailored to reflect that situation.  That “unique process” may be comprised of a relatively standard lifecycle and common practices such as architecture envisioning, database regression testing, non-solo development, and many others (granted, those practices may be tailored to reflect the situation too).  Each team in your organization must be allowed to follow their version of the process, ideally sharing similar process components defined by a common process framework, to achieve the results required of them.
  7. Empiricism is far more important than theory. Observing how well a technique works in practice, and more importantly the context of the situations in which it (doesn’t) work is far more valuable to practitioners than theories or prognostications about what should work. Theory has its place, but it is a poor cousin to empiricism. The DA framework was originally developed based on observations of dozens of organizations worldwide, and has evolved since then based on learnings from many more. Furthermore it is backed up by our ongoing industry research.

IT departments are unique, complex adaptive systems. Anyone working in such environments needs a process framework that is sufficiently flexible to address the range of situations faced by your teams. The Disciplined Agile process decision framework is light-weight yet sufficiently flexible to support scaling at both the tactical and strategic levels.

Translations

4 thoughts on “Principles for Effective Software Process Frameworks

  1. Edson Portilho

    Usually organizations apply agile frameworks without a deep understanding of its principles and values.One important thing is to give teams a chance to decide and apply the practices and techniques they need in a contextual and decision framework that promotes enterprise awareness, but at the same time coach them about the reasons they are applying the practices.

    Reply
  2. Scott Ambler

    Edson, I fully agree. I would also say that organizations in general adopt process frameworks without a deep understanding of them, regardless of whether they’re agile.

    Reply
  3. Valentin Tudor Mocanu

    I have found very interesting more things.

    These principles could be used for any process approach, but Agile fits more naturally.

    Looking on my past experience, these principles are fits best with our struggle to improve the process in given context. … Just that we need years of tries and practice to discover some of them. Could be very useful for the teams and organizations to get this knowledge earlier.

    Reply
  4. Jean-Guy Lapierre

    Proposed French version
    Voici une traduction libre crée pour faciliter le partage et les discussions avec mes collègues francophones.

    Principes du cadre Disciplined Agile 2.0
    Traduction libre de : Principles for Effective Software Process Frameworks
    Scott Ambler, DAD Blog, Sept, 2015

    Le Cadre de décision de processus Disiciplined Agile est guidé par les principes suivants :
    1. Choisir est bon, faire des choix bien informés est meilleur.
    Chaque équipe est un ensemble d’individus uniques qui fait face à une situation unique dans le contexte unique d’une organisation. Un seul modèle de processus ne peut convenir à tous. Pour offrir le choix, le Cadre DA support plusieurs modèles de cycles de livraisons et est orienté sur la base des objectifs de processus.
    Plus important, le Cadre DA décrit les compromis associés à une myriade de pratiques agiles et non agiles permettant ainsi aux individus de décider intelligemment des pratiques à adopter compte tenu de la situation courante à laquelle ils font face.
    2. Optimiser le “Tout”.
    Le Cadre DA adresse l’entièreté du cycle TI en démontrant comment chacun des éléments s’intègre à l’ensemble. Sans une compréhension de l’environnement global des processus, les équipes courent le risque d’optimiser localement leurs processus propres au détriment de l’ensemble.
    Par exemple, l’équipe de gestion des données peut disposer de processus rationalisé sur la base des stratégies DAMA, l’équipe de livraison avoir des processus rationalisés selon les principes du Manifeste Agile et l’équipe d’opération avoir les siens rationalisés selon ITIL. Le processus global résultant peut encore être inefficace parce que ces trois stratégies locales se contredisent et se dégradent les unes les autres lorsque combinées.
    3. Chaque équipe est propriétaire de ses propres processus.
    Les équipes est les individus qui les composent doivent avoir la liberté d’améliorer leur façon de faire en se basant sur leurs apprentissages dans le temps. Dans le contexte Agile on parle d’équipes qui “sont propriétaires de leurs processus”.
    4. Améliorer constamment.
    Les individus, les équipes et les organisations doivent continuellement s’efforcer d’apprendre et d’améliorer leurs façons de faire.
    Le Cadre DA inclus un objectif de processus Améliorer les processus et l’environnement de l’équipe qui décrit les options pour réaliser exactement ce qui est impliqué par son nom. Il offre également un sous-processus d’Amélioration continue qui décrit les stratégies pour le partage des améliorations entre équipes ce qui accélère les efforts d’amélioration des processus de l’organisation.
    5. Adopter le changement de processus.
    Les secteurs TI sont des systèmes complexes et adaptatifs. Une implication de cela est que chacune des améliorations réalisées par une équipe peut affecter les façons de faire des autres équipes motivant des améliorations de processus à faire au sein de ces équipes. Ces changements peuvent eux-mêmes motiver des améliorations au sein d’autres équipes et ainsi de suite.
    Les équipes Disciplined Agile sont conscientes de l’entreprise et comprennent qu’elles doivent travailler avec les autres équipes pour les aider à comprendre et à adopter les innovations et, inversement, pour être préparées à être aidées par les autres.
    6. Des résultats répétables sont de loin plus importants que des processus répétables.
    Les équipes efficaces se concentrent sur l’atteinte de résultats répétables tels que la livraison de systèmes de haute qualité qui répondent aux besoins des parties prenantes en temps et de façon économiquement viable.
    Parce que chaque équipe se retrouve elle-même dans une situation unique, pour être plus efficace chacune doit suivre un processus particulier ajusté pour refléter son contexte.
    Ce « processus particulier » peut être basé sur un cycle standard et constitué de pratiques communes telles que : Élaboration d’architecture, Tests de non-régression de bases de données, Développement collectif et beaucoup d’autres (étant admis que ces pratiques peuvent également être ajustées à la situation particulière).
    Pour atteindre les résultats attendus, chacune des équipes de l’organisation doit pouvoir suivre sa propre version des processus, idéalement en partageant des éléments de processus semblables définis dans un cadre de processus commun.
    7. L’empirisme est de loin plus important que la théorie.
    Observer comment une technique fonctionne bien en pratique et, plus encore, les contextes situationnels dans lesquels elle fonctionne (ou ne fonctionne pas) est de loin plus profitable aux praticiens que les théories ou pronostics à propos de ce qui fonctionne.
    Les théories ont leurs places, mais il s’agit de parents pauvres à l’empirisme. Le Cadre DA a été originellement développé sur la base de l’observation de douzaines d’organisations à travers le monde et a évolué depuis sur la base des connaissances et apprentissages de plusieurs autres. De plus, il est supporté par nos recherches constantes sur l’industrie.
    Les équipes et les services TI sont des systèmes adaptatifs uniques et complexes. N’importe qui travaillant dans de tels environnements requiert un cadre de processus qui soit suffisamment souple pour adresser la diversité des situations rencontrées.
    Le “Cadre de décision de processus Disciplened Agile” est léger et suffisamment souple pour soutenir son extension tant au niveau tactique que stratégique.”

    Cadre DA : Cadre de décision de processus Disciplened Agile

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *