Acquisition Archetypes Seen within the Wild, DevSecOps Version: Cross-Program Dependencies

Acquisition Archetypes Seen within the Wild, DevSecOps Version: Cross-Program Dependencies


This publish examines issues that come up from a shared DevSecOps platform. As a result of a DevSecOps platform and gear pipeline is simply too advanced and costly to create and handle individually for every program, the platform typically must be a shared functionality. This example creates dependencies and cooperation points.

These issues are examples of an acquisition archetype, which is how we confer with a sample of organizational system behaviors which have been seen throughout the SEI’s experiences in conducting invited unbiased technical assessments (ITAs) on technical and programmatic points of the DoD acquisition applications. In these ITAs, program administration workplace (PMO) employees, contractor employees, customers, and different exterior stakeholder organizations present open and candid responses below the situation of anonymity that present the SEI staff perception into what is actually occurring in a program. These insights counsel that related, recurring issues in software program acquisition and growth—archetypes—come up throughout separate and seemingly dissimilar applications.

A earlier SEI Weblog publish examined an archetype of clinging to the outdated methods. On this publish, I focus on the recurring drawback of cross-program dependencies. I describe the conduct within the context of a real-world state of affairs and supply suggestions on recovering from and stopping future occurrences of this drawback.

About Acquisition Archetypes

Our use of the phrase, “acquisition archetypes” is predicated on the extra normal notion of system archetypes and is supposed to explain recurring patterns of failure noticed in acquisition applications to lift consciousness, together with offering approaches to mitigate or keep away from these adversarial patterns. The incentives that drive these patterns are related throughout applications and have a tendency to drive related behaviors.

Cross-Program Dependencies

Typically a corporation might must construct a brand new frequent infrastructure functionality. For example, a corporation would possibly deploy a DevSecOps platform and gear pipeline (e.g., compilers, code scanners, containers, and orchestration) that’s too advanced and costly to create and handle individually for every program or challenge. These applications or initiatives may be reluctant to simply accept an exterior dependency on the infrastructure program providing a standard infrastructure functionality, resulting in inner rigidity. If the frequent infrastructure has points comparable to poor efficiency, problem of integration, lack of ability to totally carry out its operate, or unavailability throughout the required timeframe, the initiatives offering and supporting that functionality are more likely to change into disenchanted or reluctant to proceed to help the infrastructure, and should criticize and even undermine it. For instance, current applications migrating to make use of the infrastructure may be aware of utilizing a selected model-based techniques engineering (MBSE) instrument or a code scanner that implements a particular set of scanning guidelines. Making the change from utilizing the instrument they’re aware of to utilizing a wholly totally different instrument could have each up-front prices by way of modifications to the instruments and the system, and longer-term prices as customers should study new methods to perform the identical impact.

Initiatives utilizing DevSecOps infrastructure will typically must make important modifications to their parts of the potential to accommodate the brand new infrastructure (e.g., modified interfaces, further performance, or architectural variations). Supporting the brand new infrastructure will make their very own work more difficult, require further effort and sources, adversely have an effect on their current techniques, and require rework of points of these techniques. Consequently, these initiatives have little incentive to totally help the brand new system. Slightly than being a win-win throughout the group, the frequent DevSecOps infrastructure might change into primarily a win for headquarters on the expense of the opposite initiatives.

Report from the Discipline

The best way a program is established impacts the flexibility of a number of, semi-independent organizations to cooperate to realize a standard aim (Determine 1). In the midst of supporting acquisition applications, the SEI typically encounters and should assist deal with these kind of organizational points. In a single such dialog a program chief mentioned, “Some applications get involved after they have dependencies on different applications. It’s an issue when totally different teams management totally different companies, and also you don’t have all of it below your management…. The infrastructure program asks us for stuff, and typically there’s funding, and typically there isn’t.” One other chief acknowledged that, in delivering capabilities, “Totally different organizations are in cost, funded individually, with totally different budgets, and they also’re required to ship towards necessities that don’t keep in mind issues they may need.”

figure1_crossfunctional

Determine 1: The best way a program is established impacts cooperation towards a standard aim.

In a single case, “[a] PMO wasn’t ready for the inevitable bow wave of latest work that was coming their means. They didn’t like being instructed what to do [by a higher authority akin to a program executive office or PEO]. That created some competition.” This example typically devolved into finger pointing, reasonably than producing outcomes: “The totally different organizations concerned all should work collectively to share necessities and make choices—however nobody owns it, in order that they blame one another.” If the directing authority had been in a position to supply schedule reduction and/or funding for the extra work, it may not have been considered by the PMO as basically an “unfunded mandate.”

On this case there was a misalignment of targets that every totally different group was making an attempt to realize. One official noticed, “The motivation at our program workplace is to satisfy price and schedule efficiency, whereas the infrastructure program is about functionality supply and high quality. Subsequently, the connection mismatch distracts from effectivity.”

Evaluation

Organizational tensions can happen because of the reluctance of applications to simply accept an exterior dependency on one other program that will assist to offer a standard infrastructure functionality. The causal loop diagram (CLD) in Determine 1 represents a number of interacting applications and reveals that the way in which one program is established can have an effect on its skill to cooperate with different applications as all of them attain towards a standard aim. The leftmost loop (in inexperienced) reveals that the much less ready the “consuming” program is to realize their targets by themselves, the extra they want the shared infrastructure. The rightmost loop (in gold) reveals that when a “producer” group is tasked to offer shared infrastructure for a number of applications however is unable to satisfy all the “shopper” organizations’ expectations, the customers might change into dissatisfied and resolve to assemble their very own personal or customized variations of the infrastructure as an alternative. Nevertheless, the center loop (in crimson) reveals how doing so typically undermines the specified diploma of interoperability the shared infrastructure was supposed to allow. Developing a number of, less-interoperable, personal variations of the infrastructure prices considerably greater than a single shared model, utilizing up funding that would have been spent to construct the shared infrastructure. These personal variations are the results of needing an instantaneous profit (eradicating the dependency) that may price everybody else—but when everybody does the identical factor, everybody finally ends up worse off because of the further growth prices, non-standard techniques, and schedule spent in growth and rework of the outcomes. It is a balancing loop, which oscillates round an equilibrium worth as help for the infrastructure grows after which wanes. Observe that the static mannequin described by this CLD doesn’t predict how this dynamic will play out in all circumstances however does describe the way it typically ends with shopper applications opting out of the shared infrastructure association if they’ll.

Options and Mitigations

A public good is an economics time period for a service that’s made accessible to all members of a group the place use by one member doesn’t preclude its use by others. For instance, our nationwide protection itself is a public good for all residents. The dynamic of manufacturing a public good in human organizations has been researched extensively and has a big set of ordinary options. The event and provision of frequent infrastructure, comparable to a DevSecOps platform, is a sort of public good that’s topic to cooperation issues from cross-program dependencies.

In coping with cooperation issues, there are three courses of options: motivational, strategic, and structural. These are broadly characterised as follows:

  • Structural: Reframe the issue and guidelines so that folks should behave extra cooperatively as a result of there’s formal authority behind, and enforcement of, the foundations (e.g., penalties, legal guidelines).
  • Strategic: Give individuals a rational and self-interested purpose (i.e., incentive) to behave extra cooperatively.
  • Motivational: Make individuals really feel otherwise in order that they need to behave extra cooperatively.

The cross-program dependencies dynamic might be managed by management that may acknowledge these dependencies as they come up and take steps to mitigate them. Nevertheless, on this state of affairs the management would have to be at or above the PEO degree, and the anticipated adversarial ramifications of the problem would have to be raised to their consideration by a number of of the applications concerned. Hierarchical, authority-based organizations such because the army take this strategy, though normally after dialogue with the affected events. It’s a structural answer, sometimes called “regulation by an authority,” but it surely requires having an authority to impose the foundations, might have enforcement of compliance, and should encourage resistance from these it’s imposed upon.

If a standard infrastructure program has overarching authority over the initiatives offering supporting capabilities, it may well deal with lots of the points famous above. Nevertheless, the way in which such authority might be granted would range considerably all through the DoD, and in some circumstances might not at all times be doable. When it is doable, it could additionally occur that such authority is overused, even when the infrastructure program has the most effective of intentions in exercising it. The authority may override the needs or wants of the collaborating initiatives; for instance, it would drive collaborating applications to implement unfunded and even undesirable mandates.

Wherever doable, the authority of the frequent infrastructure program ought to be exercised in win-win preparations that attempt to present worth in each instructions, to each events. Win-win relationships can contain offering the supporting initiatives what they need (e.g., funding or sources), fixing points they may have by offering organizational experience, providing specialised coaching or help that they want, and/or discovering methods to burnish their repute.

The second option to deal with cross-program dependencies is thru strategic approaches, comparable to organising a significant incentive that rewards cooperation to drive profitable joint end-to-end outcomes for customers. These approaches are weaker than structural approaches, however can be utilized to enhance them and embody:

  • establishing cross-fertilization/cross-functional groups (exchanging individuals to interrupt down limitations and encourage cooperation)
  • creating extra interdependencies (encouraging individuals to work collectively out of necessity).

The third option to deal with cross-functional dependencies is thru much less formal motivational approaches. These approaches attempt to mitigate lack of belief and cooperation among the many totally different initiatives supporting the frequent infrastructure by utilizing actions that assist preserve or rebuild belief. Whereas weaker than both of the opposite two, these will also be used to enhance structural and strategic approaches. Potential motivational approaches for addressing the conduct may embody:

  • Consciousness: Enhance the notice of the issue and talk the significance of everybody making a distinction to resolve it.
  • Proof of high quality: Present compelling proof that the services or products will work as marketed earlier than asking organizations to help it or assist pay for it.
  • Setting expectations: Encourage voluntary cooperation in settings during which individuals are extra more likely to be public-minded because of historical past and custom (e.g., Peace Corps or Conflict Bonds).

The Outlook for Cross-Practical Dependencies

On this publish, I’ve investigated one recurring program conduct associated to the introduction of DevSecOps: cross-functional dependencies. DevSecOps is a robust strategy that raises new issues round cross-functional dependencies. The complexities of DevSecOps can require applications to make infrastructure modifications that may have important downstream results for different applications and initiatives. By growing mutually helpful options, the authority of the frequent infrastructure program can encourage cooperation and higher conduct.

author avatar
roosho Senior Engineer (Technical Services)
I am Rakib Raihan RooSho, Jack of all IT Trades. You got it right. Good for nothing. I try a lot of things and fail more than that. That's how I learn. Whenever I succeed, I note that in my cookbook. Eventually, that became my blog. 
rooshohttps://www.roosho.com
I am Rakib Raihan RooSho, Jack of all IT Trades. You got it right. Good for nothing. I try a lot of things and fail more than that. That's how I learn. Whenever I succeed, I note that in my cookbook. Eventually, that became my blog. 

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here


Latest Articles

author avatar
roosho Senior Engineer (Technical Services)
I am Rakib Raihan RooSho, Jack of all IT Trades. You got it right. Good for nothing. I try a lot of things and fail more than that. That's how I learn. Whenever I succeed, I note that in my cookbook. Eventually, that became my blog.