• maryjayjay@lemmy.world
      link
      fedilink
      arrow-up
      43
      ·
      edit-2
      7 months ago

      They do the same thing building architects do. They draw pretty pictures of the end product that may of may not be structurally sound, then rely on engineers to build it and make sure it doesn’t collapse.

    • fruitycoder@sh.itjust.works
      link
      fedilink
      arrow-up
      7
      ·
      7 months ago

      I always saw architects roles in modern development being the person trying to find synergies between different teams andcoordinateing them working with each other.

      Like if some team makes a sick project for managing streams of data streams the architect should be promoting it for other teams to leverage.

      • xmunk@sh.itjust.works
        link
        fedilink
        arrow-up
        5
        ·
        7 months ago

        That’s one role, as a software architect I also often served as the sunk cost fallacy bad news delivery system. It’s a good idea to keep some eyes from outside your team on your project just to do the occasional sensibility check.

        There is also a large responsibility to make sure different teams are well coordinated and not building the system in directly opposing directions. It really fucking sucks to have your work, as a developer, invalidated by someone else’s work suddenly without any warning.

    • rimjob_rainer@discuss.tchncs.de
      link
      fedilink
      arrow-up
      5
      ·
      7 months ago

      A good software engineer is also an architect. You don’t need dedicated architects if you have good developers.

      But on the other hand there are much more questionable and unnecessary jobs like product managers or managers of managers.

      • xmunk@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        ·
        7 months ago

        I disagree with not needing dedicated architects at least once you reach a certain size. If there are 50 plus developers working on a dozen or more projects there’s a large communication cost to stay on top of everything.

    • Aceticon@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      The good ones: design and adjust software development processes, standards for cross-project functionality and reusability and in general try and improve at a high level the process of making, maintaining and improving software in a company.

      The bad ones: junior/mid-level software design with a thick layer of bullshit on top to spin it as advanced stuff.

      If you want to see bad software architecture, just look at most of Google’s frameworks and libraries.