企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 产品设计体会(四五)——外行眼中的技术分工 技术人员的全面介入,可以简单的看作以“需求分析初稿完成”为界,需求完成以后,派生出几个设计:交互设计、编码设计、数据库设计、测试设计,各自设计完成并执行以后,再部署发布。   具体的说一下,交互设计这块,主要是做软件和用户交互的工作,分工有从最直接的**视觉设计师**到使用感受上的**用户体验师(交互设计师)**再到偏代码实现的**前端工程师**。   编码设计,比较偏概要设计的有**软件架构师**(比如整个系统的表结构设计),具体到coding的层面就是最常见的**开发工程师**,他们也会有分工,比如偏应用、偏底层数据库、专做搜索引擎,等等。   数据库设计,对于大用户量的应用特别重要,而阿里的用户数实在是比较多,所以相应的人员——DBA,**数据库管理员**,在业界也确实是比较强的。   测试设计,就比较单纯了,相应的人员就是**测试工程师**,再细分一点就有功能、性能等等,一般来说性能测试会写一些自动执行的脚本,感觉更高科技一点。   上述各项工作完成之后,就要把各方面准备好的产出物拼在一起部署发布,那么就牵涉到硬件方面的管理,这就是SA,**系统管理员**。对于BS应用,感觉部署方面的工作比传统CS软件简单一些。   对于软件项目的整个过程,需要在流程/规范上做控制以防止低级失误的发生,比如有时候需求人员会觉得某个功能的改动很小,就直接叫开发人员改而跳过测试人员,这样违反流程的行为对于复杂的系统是极其危险的。所以产生了SQA,也就是软件**质量控制人员**,这块和测试不一样。   对于多次不断发布的产品、多分支开发的产品,**配置管理员**(SCM)就显得非常重要了,有他们的控制,就不会发生“某个bug在新代码发布之后重新出现”这样的低级失误。像简单的用SVN、CVS来管理文档、代码的更新、软件版本的变更、日构建/发布的控制,就是SCM的雏形。