系统架构工程师到底要不要会写代码
我觉得关键是楼主找人的意图。我个人觉得软件架构师更看重其对于整个软件开发的思路,以及如何设计一套软件架构,使得这个软件架构能够灵活的适应业务和系统发展,而不会出现太多的耦合类,导致后期的扩展和开发无法进行。至于写代码我觉得更重要的是看他对于一个系统如何设计的思路,如果他能有严谨的思路和解决方案去提出架构。细节的代码编写可以忽略。但是对于代码能够敏捷的发现问题,即读代码的能力和对于代码质量的东西是要能够把握的。
我个人觉得目前国内的软件开发大部分基本都是MIS系统。包括企业的ERP系统。在我们拿到一个项目的时候,这个时候最需要的是一个系统架构师(系统分析员),他能够把握客户的业务数据流,提出一套完整可行的IT信息架构。这个架构可以使客户的业务数据流高效的信息化管理和流转。实质上面这个架构就是整个系统的数据模型架构,如果一套灵活可用,且有一定前瞻性的和扩展性的数据模型是整个项目成功的关键。因此系统架构师需要是沟通能力强,能够准确把握客户需求并转化为高效数据模型的人。他从整体上面觉得整个IT信息系统的发展和功能实现。
之后才出现软件架构,我觉得一个好的软件架构师应该能够熟悉系统架构模型,并以此进行软件的功能和架构体系划分。使之底层的代码具有良好的独立性,并让对象之间的耦合性最低。这样客户端开发人员进行开发的时候能够使用好的底层代码,快速的开发。
因此,我觉得楼主完全是在找高级程序员。我觉得找架构师应该更看重其对于一个问题的思路和解决方法是否清晰和有前瞻性。如果他能够对于某个系统提出一个很好的架构划分,每个实现方面可以有软件开发人员完成。但是他必须能够把握开发的质量。至于实际的写代码可能不是很重要,但是读代码和找问题的能力需要强。
从我们涉及到的大型软件系统开发来看,很多的问题实质在于系统架构师部分的数据模型。这个才是关键的关键,现在很多项目基本都是到了后期无法支撑,因为模型不适应业务的发展,之后产生大量的垃圾库表。对于数据的优化和软件开发都无能为力。所以架构师我认为是思维而不是具体的东西,因为具体的代码分工体系不一样的。但是度与代码的阅读和类之间功能体系划分是需要的。