Should application architects write code?

2019-01-15 23:51发布

This is an often-asked question that has views on both side. Those in favour will argue:

  • To design a system for coders you must understand how to code (and be coding)
  • You can't design a system without being aware of what is happening at ground level
  • Architecture is not just about broad stroke design but about adapting to changing needs at the code level

on the other hand,

  • Architecture is a high-level role and should be not be concerned about implementation details
  • Coding is a detailed oriented, heads-down funtion which is at odds with the risk management, broad view nature of architecture
  • Architecture is about technical risk management and not implementation
  • Architecture is about leadership. It's difficult to lead from behind

In my experience architects should not be spending a lot of time coding but must keep in touch with the code base primarily through lead developer communication, review and stand ups. If you spend a lot of time coding you lose sight of the high level issues and become ineffective at managing technical risk.

22条回答
ゆ 、 Hurt°
2楼-- · 2019-01-16 00:23

Architecture is a high-level role and should be not be concerned about implementation >details

The code is the design. Imagine an architech who designs pretty buildings but refuse to go into implementation details like where to put the mergency exits, plumbing, electricity, elevators or builiding legal issues.

* Coding is a detailed oriented, heads-down funtion which is at odds

with the risk management, broad view nature of architecture

When you code, at first, focus on the details. Then you refactor with a broader focus.

Architecture is about leadership. It's difficult to lead from behind

The battle front of software development is coding. May be the product manager or the project manager does not code. But the architect needs to do it. May be he should spend more time refactoring showing how good can code be. This way he leads by example.

查看更多
劫难
3楼-- · 2019-01-16 00:26

Yes. Software architects who haven't written code for years lose touch with the realities of building a product. They start producing grand designs with ever-higher levels of abstraction, which seem to keep slipping their ship dates.

查看更多
别忘想泡老子
4楼-- · 2019-01-16 00:27

You're asking this on a coding site. You're going to get basically everyone falling on the "yes" side.

My perspective is, yes, but only enough to keep up with the changing needs, no more

查看更多
放荡不羁爱自由
5楼-- · 2019-01-16 00:30

I've come to believe that, more often than not, "implementation details" are not details (in the sense that many problems arise when you consider some specific implementation problems as mere details that could be disregarded as minutiae from an "architectural" perspective)

查看更多
做自己的国王
6楼-- · 2019-01-16 00:30

An application architect must be able to define an application architecture, design the application, implement the patterns and coach other to code. If you can't do those things then you are not an application architect.

查看更多
我想做一个坏孩纸
7楼-- · 2019-01-16 00:31

Architecture is a core skill for software developers. There may be a few rare occasions when it might make sense for an architect not to code, but I can't recall ever encountering such occasions in my own experience.

The architect must either code on the project or at a bare minimum, be fully capable of coding on the project. The second part of this means that they have to be able to code using the tools and techniques being used by the rest of the team. (Without continuing to code, it must be very difficult to maintain these skills.)

Finally, when architects are responsible for choosing the tools and techniques to be used by others, they can not make such a choice well without actually using the proposed tools. In this scenario, the non-coding architect rapidly degenerates into a pointy-haired-boss with a pile of brochures on his desk.

查看更多
登录 后发表回答