在很多人印象中,软件开发更多是一个研发过程,认为是技术的事情。然而,对于软件开发来说,是一个团队的共同努力的成果。
开发一个软件,是需要各种各样的角色去一起合作“开发”出来的。每个角色都有自己的职责,一起来了解下吧。
项目经理
项目经理主要把控整个时间节奏、人员安排,保证产品能够如期顺利开发完成,功能按时迭代上线。
但大部分企业很少有专职的项目经理,甚至没有项目经理。因此,项目经理会由产品、或者开发来替代。
产品经理
我们经常在社交平台看到“产品经理”这一词,也是存在非议最大的角色。不过,产品经理对于软件产品开发和交付都是必不可少的。
产品经理主要负责把控好一个产品具有什么样的功能,产出软件开发的需求说明、需求文档。他们可以根据开发需求,也会产出一些流程图、简单的产品界面原型,更直观地表达产品。
设计
设计与产品经理是紧密联系的两个角色。设计有很多种类,UI、UX、UE。UI指的是用户界面,UX和UE都指的是用户体验。设计师在拿到产经理的文档或原型后,通过设计润色和丰富细节,最终产出完整的设计图给到开发人员。
前端
前端用代码把设计图写出来,主要负责软件的界面、交互、从后端读写数据等工作。即用户在界面上能看到怎样的网页/APP页面,就是由前端来实现。
WEB前端\移动端包括安卓开发、ios开发,还有基于reactive navtive、Flutter等技术的跨平台开发,以及基于小程序的开发,都统称为前端。
后端
只依靠前端来实现交互是远远不够的,需要与后端连接,去实现相关的逻辑处理。
后端负责的就是所有用户”看不见的“代码和逻辑,使用编程语言(如Java、Python、PHP等)和数据库技术进行后端开发。
后端我们看不见、摸不着,但它却能“操纵”着软件的一切。
测试
测试是产品质量的把关人。一般会对应用程序进行自动化测试、用户界面测试等等。
虽然有时候开发人员虽然会自测,但只会按照个人理解的产品逻辑去自测。但测试人员的视角不同,以产品链路视角去测,能测到开发人员可能没想到的边界和场景。
运维
一个软件开发出后,不代表完事了,而是需要运维人员负责服务器的上架、巡检、维护等工作,以及服务器分配、网络分配等工作,确保软件稳定、安全、可靠地运行,并关注故障防范和修复。
随着云服务的发展,也演化出一个运维开发(也有的叫开发运维)DevOps这种角色,负责系统架构、服务容器化、自动化开发等。
运营
软件上线运维后,需要进行适当的人工干预,也就是运营。运营通过数据、和各种业务操作来体现这个软件“活得好不好”,体验、效率、效益的效果如何。运营也分很多种类,有商家运营、广告运营、用户运营、活动运营等等。
当然,部分规模很大的软件开发团队,还会细分到质量保证工程师、系统架构师、商业分析师、项目协调员、安全专家等角色,虽然情况少见,但不代表没有,即便没有专门设计岗位,也会有其它团队角色承担。
一个团队中,每个角色虽各有不同,但都在发挥着属于自己的作用,共同为一个项目而努力,开发出更有价值的软件应用。