1. 一点历史
在 90 年代互联网革命刚刚开始的时候,没有人知道怎么正确开发互联网服务。所有功能都立即对用户开放,这和传统的软件开发方式差别很大。
当时最大的搜索引擎公司 Yahoo 决定走新路子,借鉴 Hollywood 的方法——甚至他们的管理者都叫自己是制片人 :) 不过结果并不理想 🤷♂️
挺有趣的。 Yahoo 是收购其他公司最不成功的公司之一。曾经多次有人建议买下 Google 和 Facebook。最终,在事业的尾声,微软出价 400 亿美元想收购他们,但他们再次拒绝了。几年后,Yahoo 只值 30 亿美元就被收购了。在 90 年代,Yahoo 在巅峰时期估值达 2000 亿美元,如果他们买了 Google,现在的估值可能会达到几万亿。
别学 Yahoo啦 🙈
自互联网革命以来,测试了很多不同的软件开发方法,现在局势趋于稳定。存在标准的角色、标准的职责、标准的流程和标准的软件。
在学习过程中,你会知道所有你需要知道的内容,以便在现代 IT 公司中使用现代开发工具工作。 🎓
2. 产品团队
典型的开发团队包括:
- 决定产品功能和特性的人员
- Product Owner
- Business Analyst
- 决定产品外观的人
- UI Designer
- UX Designer
- 实现所有这些的开发者
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- 负责产品质量的人
- QA Automation
- DevOps
Product Owner 在软件开发中扮演关键角色,管理产品,确保开发团队专注于最重要的任务。他定义产品愿景,制定并优先排序任务列表(backlog),帮助确保每个开发阶段最大程度符合业务目标和用户需求。
UX Designer 负责创建用户友好且高效的界面,包括用户需求调研、原型设计和界面测试。这项工作旨在改善用户与产品的交互,使其尽可能直观和便捷。
DevOps 专家负责优化软件开发和运维流程,加快和简化产品的发布。他们的工作包括自动化测试、部署和监控系统,以及基础设施配置和持续集成/持续交付(CI/CD)。
3. 开发团队
实际开发由程序员完成。可以粗略分为五类:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Database Administrator
角色和职责会根据团队规模和产品特点有所变化,但大致情况如下:
- 🏗️ Software Architect:负责设计复杂的软件架构。Architect 开发技术基础设施,定义系统结构和不同组件的交互方式,确保系统的可扩展性、性能和安全性。
- ⚙️ Backend Developer:专注于开发服务器端逻辑。任务包括实现业务逻辑、数据库和数据管理系统的集成、处理用户请求,以及与前端的交互。
- 🖥️ Frontend Developer:开发网页应用的用户界面。需要掌握 HTML、CSS 和 JavaScript,以及相关框架和库,创建交互性强、响应快的界面,提升用户体验。
- 📱 Mobile Developer:开发移动端应用。为不同操作系统(如 iOS 和 Android)创建应用,考虑平台特性、设备性能和用户体验。
- 🗄️ DBA(数据库管理员):管理数据库,确保其可用性、安全性和性能。负责数据库的配置、监控、维护,以及备份和恢复策略。
GO TO FULL VERSION