1

DDD targets software with complex domains, which is usually the case with enterprise information systems. Traditionally, in the organizations developing this kind of software, there is a "systems analyst" (SA) role which faces the stakeholders, translating their needs into software requirements which drive software development activities.

This way, the SAs disconnect communication between the domain experts and the developers who do the design. Effectively, an SA creates a (maybe implicit) model based on her own perception of usefulness and possibly filters out knowledge useful for design purposes.

The question is whether the role of systems analyst should be eliminated at all in a DDD setting. If the answer is positive, this will make an unexpected change in the organization which may be hard to justify, as we are just going to adopt a "design" method. Are there any guidelines on how to make such a transformation? Or else, we must somehow fit the SA role into the DDD setting.

5
  • Why would you eliminate the systems analyst? What direction of thought motivates such a suggestion? Apr 29 at 9:34
  • @RobertHarvey I can think of many. Having a shorter communication path, give the team more control over their product, giving the team the complete picture vs. a filtered/distorted one, potentially getting rid of overhead that just produces ppt or docs that the developers ultimately ignore (been there on both sides), etc. Apr 29 at 9:51
  • 1
    @RobertBräutigam: I guess a better question would be "Why would you eliminate your systems analyst over DDD?" The two don't seem to be incompatible to me. Apr 29 at 10:52
  • @RobertHarvey Yes, I'm with you there. :) The two are orthogonal. Apr 29 at 11:24
  • 1
    @RobertHarvey Since the DDD emphasizes on creating knowledge-rich designs, it would be better to let the developers communicate directly with the domain experts. It's possible that the SAs filter out some information useful for creating a good design, because they may be unaware of the design concerns. I agree with Robert Bräutigam that the problem is not specific to DDD, but I think it's more important here as DDD emphasizes direct communication between the designers and the domain experts.
    – Ramtin
    Apr 29 at 17:39

1 Answer 1

2

This is a broader question not specifically related to either DDD nor Systems Analysts.

It's pretty easy to see and even test that all layers of communication will distort, compress, remove signal, add noise to some degree between the two end points. I think this is not disputed, ymmv.

So the next question is, what is your goal? If your goal is to unquestionably serve the users, it would seem the logical thing to do is to eliminate as much intermediary layers of communication as possible.

Note: this does not necessarily mean to eliminate any position or task. It just means that it needs to fit into the "team" more seamlessly. This is what a lot of modern approaches actually point to, such as "Agile" and "DevOps" teams. Both of which want the team to be more independent and self-reliant.

There are however reasons to not just serve the users and to retain a bit more control and therefore possibly introduce more indirection. Reasons may include: standardization across teams, standardization across customers, cost issues, teams that are unable or unwilling to perform such role, rigid company structures, etc.

Summary: DDD does not depend on the existence or lack of a SA. Whether you want to have a separate SA, or have one at all, depends on the trade-offs you are willing to make, described above.

1
  • There are a lot of true things in this answer, but I think adding an SA does not necessarily mean to serve users less. This is more a question of numbers: if there are many users and stakeholders, it may be simply more effective to have one person collect, analyse and priorize all their wishes, and pick some representative user(s) or domain expert(s) for a certain category features to work with the devs directly. An SA could moderate the communication process, not interrupt it.
    – Doc Brown
    Apr 30 at 10:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.