Book a Demo

Author Topic: Multiple projects sharing/working on a common baseline  (Read 62141 times)

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Multiple projects sharing/working on a common baseline
« on: September 27, 2019, 08:59:45 pm »
In a complex organisation like ours, we have a common architectural baseline and multiple projects working on it. To simplify the discussion, the Sparx EA repository has been structured using 2 root notes, a Baseline architecture root node and a "Projects" root node, with the latter being further split into a Package per project.

Needless to say that more than project uses and, is potentially modifying, the same baseline elements. This is particularly the case with abstract elements at the enterprise level.

The questions are as follows,
  • Is it possible to relate a baseline element to multiple projects in Sparx, perhaps using tags? [Note: Please, let's suspend judgement about whether duplicating elements is a good or bad idea.]
  • Is there any other way of doing this?

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Multiple projects sharing/working on a common baseline
« Reply #1 on: September 27, 2019, 10:45:26 pm »
I'm afraid you are on a dead-end road with this approach.

I've seen this type of setup dozens of times; it simply doesn't work!
The idea that you have something like a "baseline architecture" where only the chosen few architects (in their ivory tower) are allowed to work on, and a bunch of satellite project islands that are used by the people actually producing something is flawed I think.

Each and every time I've seen this, the copy from the baseline to the project island works, but never ever have I seen something flow back to the baseline.

What makes this even worse is that each project team is working on it's little island, unaware of the changes other project teams might be doing to the exact same components. Unaware, until they want to set their project into production, only to realize at that time that their assumptions about the baseline have been all wrong since the situation has changed in the meantime.

The only way (again my opinion) to avoid this is to truly work together in a single model. No satellites, no islands, just a single well structured model with no duplicates.

Now to answer your first question:
-  yes, you can relate elements either with actual relations (we often use «trace» for this purpose) or with refguid tagged values.

Geert

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #2 on: September 28, 2019, 12:21:30 am »
Now to answer your first question:
-  yes, you can relate elements either with actual relations (we often use «trace» for this purpose) or with refguid tagged values.
I presume that this requires the usage of an object/element representing projects, in the PMO sense of the word and not in the Sparx sense of the word. Does Sparx have a native element representing a project in the PMO sense of the word, the project MDG does not have it, at least in v13?

Regarding islands, ivory towers and so on: this post is about how to create a view of a much wider architecture to allow projects to focus on what they need to focus and ignore what is irrelevant to them but very relevant to other projects and the whole organisation.




qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #3 on: September 28, 2019, 12:44:51 am »
I fully agree with what Geert said. I favor a Lighthouse approach where you have a central root which is only editable by a central team. And this team is aware of the implication any change has on the island projects. It doesn't make things easy, but you can work this way. Communication is what keeps things consistent. You can use EA for that communication, but you need to discuss outside of the tool. I mean eye to eye and mouth to ear. And even sweat to nose.

q.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #4 on: September 28, 2019, 01:41:07 am »
I fully agree with what Geert said. I favor a Lighthouse approach where you have a central root which is only editable by a central team. And this team is aware of the implication any change has on the island projects. It doesn't make things easy, but you can work this way. Communication is what keeps things consistent. You can use EA for that communication, but you need to discuss outside of the tool. I mean eye to eye and mouth to ear. And even sweat to nose.

q.
None of this is answering my question. What type of Sparx technical device can be used to achieve project separation, to achieve a project view?

Views don't seem to do the trick.

Geert made a couple of good suggestions, but do they depend upon having an element to represent a project, in the project management sense of the word? Are you suggesting to link this to packages?


qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #5 on: September 28, 2019, 06:34:48 am »
Uhm. What is a "Sparx technical device" then? Can I use it to brew a coffee?

q.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #6 on: October 01, 2019, 02:26:56 am »
Uhm. What is a "Sparx technical device" then? Can I use it to brew a coffee?
Haven't managed to get Sparx to get me a coffee and croissant in the mornings. In fact my expectations are not that high, Sparx can do many things but I would not expect it to have breakfast ready when arrive to the office.

Seriously, what is the best repository structure to have a team of architects collaborating together in Sparx. Most of the architects in the team go for the islands approach, described in the OP, and not for your "lighthouse" approach.

In practical terms, how does the "lighthouse" approach look like? Or do we just allow everybody to duplicate elements without having a common architecture across the enterprise.

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #7 on: October 01, 2019, 03:16:23 am »
You don't duplicate anything in a lighthouse. Like in reality, there is only ONE. Except you're a pirate or ship wrecker. So since people only reference tho lighthouse elements you know what to do if anything needs to be modfied right there. That enables the system architects to get together and talk about the consequences.

q.

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1183
  • Karma: +30/-8
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #8 on: October 01, 2019, 03:27:48 am »
You don't duplicate anything in a lighthouse. Like in reality, there is only ONE. Except you're a pirate or ship wrecker. So since people only reference tho lighthouse elements you know what to do if anything needs to be modfied right there. That enables the system architects to get together and talk about the consequences.

q.
And how does a lighthouse look like in practical terms, considering the 4 disciplines/domains of architecture across multiple projects and programmes?

At the moment this lighthouse looks more like a fabled unicorn than a towering structure keeping seamen out of trouble.
« Last Edit: October 01, 2019, 03:33:03 am by Modesto Vega »

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #9 on: October 01, 2019, 08:17:06 am »
To me it looks more like you're chasing a not existing unicorn. There is no "Sparx technical device" and no "Godly technical device". It's just a lot of work for architects which you might ease with some instruments.

q.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Some Instruments
« Reply #10 on: October 01, 2019, 10:31:58 am »
[Edit:  This post has been edited, following later feedback]

I debated whether to get involved with this subject, but we might want to go in this rough direction sometime soon, so I thought I'd throw my "Molotov Cocktail".

As qwerty and Geert have said, there is no "magic bullet", Sparxian or otherwise for this problem at this stage.  I've thought about this issue over the decade or so and I believe had some insights into what some of the components of a possible solution might be.

As the others have said, it's about communication.  However, what is to be communicated? When and how is it to be communicated?  As Modesto has said, in complex organisations and even complex products or landscapes, leaving things to humans alone is not enough.  That's why we have a repository.  No single human can keep everything in their head nor visualise the complete landscape.

I think everybody agrees that you can't have a "free for all", where anybody can change anything at any time.  We also agree that we wish to have a single "model".  But what does that mean?  Over a decade ago, I introduced the concept of "Doppelgangers".  Shadow clones of a real item.  As qwerty says, you only want one X.  But that doesn't necessarily mean that you have one instance of X, so long as the instances communicate and cooperate correctly.  Sparx has "come to the party" (after a fashion) with their, so-called, time-aware modelling.

OK, so for the sake of this discussion, let us assume there is one master (the present state) [notice I didn't use current state].  If this present state item doesn't echo the present state "in real life" (or IRL as we say in the RC hobby :) ) then we've got bigger problems.  This present state item needs to be controlled (in terms of being able to change it) so that it doesn't drift from its tracking of the real-world item.  Let us also, again for the sake of this discussion, the "Enterprise" item, to distinguish it from other present state items (say in this or other projects)

The point of the repository is that there should be one item, so the projects, where they use an enterprise item, must use a link to the existing item; not their instance.  Consequently, any changes to the "present" item, are immediately surfaced to the project.  Except, how does it know?  When we create the project and link to the enterprise items, we need to persist the latest date of any such item into the project.  Why?  Well, we can then determine if any enterprise item has been modified.  We can then check back to see what has changed (if it's not obvious) and determine what effect that change has on the project.  Let's leave aside what is meant by the "enterprise item has changed".

The project works away (on defining its target state), creating any new items it requires and sometimes, there is a need to postulate a new target state of the enterprise item (say we wish to change the amount of memory on a hardware device).  We can't change the enterprise item since the new memory has not yet been applied.  We, therefore, need to convert the enterprise item from a link to a target state clone.  We link that back to present enterprise item, so we can keep the two in synchronisation as the enterprise item changes.

One insight I think I've had over the years is that when you have two doppelgangers liked by a relationship, that relationship should hold a summary of the changes between the master and the clone.  That way, you can compare the relative changes between the two (since both may be changing over time).  The relationship holds the state of the difference at a point in time and allows a "compare and contrast operation".

When the project is complete and in production, the enterprise and project items' states need to be consolidated (much in the same way as when one is trying to merge multiple repositories into one).  We have a consolidator function that can ease this problem, but it can't solve it.  We need to add the ability to interrogate the doppelganger link to highlight the difference and decide in which direction to consolidate.

If we're happy with this description of the process, we can look at how we can manage this.  If not, let's refine it to create a specific scenario we can agree on.

Paolo
« Last Edit: October 02, 2019, 09:23:54 am by Paolo F Cantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #11 on: October 01, 2019, 11:38:50 am »
From my perspective you seem to be asking how to mix one as-is, with four may-possible-be models.  And the common response is don't.  There is a reason for that.  When a project fails or is shut down early you suddenly no longer have a baseline model.  Instead you have a mess that rots all the other projects.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #12 on: October 01, 2019, 11:53:30 am »
From my perspective, you seem to be asking how to mix one as-is, with four may-possible-be models.  And the common response is don't.  There is a reason for that.  When a project fails or is shut down early you suddenly no longer have a baseline model.  Instead, you have a mess that rots all the other projects.
Hi, Glassboy,

By "You", I presume you mean Modesto.

In my scenario, there is no baseline model, just present and several possibly-to-be.  Is that the same thing?  I don't think so, but I'm not sure.  In my scenario, a project can stop at any time with no "loss of generality".  Indeed, we designed it specifically to handle multiple proposals at an early stage of which one, or none, would be selected.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Glassboy

  • EA Practitioner
  • ***
  • Posts: 1367
  • Karma: +112/-75
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #13 on: October 01, 2019, 12:29:22 pm »
Yeah I was replying to Modesto.  I do object to your use of "future state" tho.  Projects work on a target state.  They may be lucky and model one of the possible futures, but generally they don't.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Multiple projects sharing/working on a common baseline
« Reply #14 on: October 01, 2019, 12:58:12 pm »
Yeah, I was replying to Modesto.  I do object to your use of "future state" tho.  Projects work on a target state.  They may be lucky and model one of the possible futures, but generally they don't.
Yes, my bad, so used to misspeaking in this area.  Just to make sure I understand your point, while each project may be working on states which might exist in the future, they are not describing the future start since we are always in the present.  They are only describing the target the project is aiming for.   Have I understood correctly?  If so, I'll amend the original text appropriately (I hope).

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!