Please enable JavaScript.
Coggle requires JavaScript to display documents.
项目管理 - Coggle Diagram
项目管理
管理工具
协同和沟通工具
文件共享
日常沟通
视频会议
版本控制和代码管理工具
软件开发协作
CI/CD
代码审查
客户关系管理工具
客户管理
销售管理
市场营销
项目计划和任务管理工具
IT项目管理
软件开发
跨部门协作
文档管理和协作工具
文档协作
文档管理
报告和分析工具
数据分析
数据报告
时间跟踪和资源管理工具
时间记录
工作时间分析
敏捷开发
12个原则
频繁交付可工作的软件,周期越短越好
业务人员和开发人员要天天在一起工作
欢迎需求变更,即使在开发后期
早交付和持续交付有价值的软件
以激励个体为核心,构建项目
面对面沟通是最有效的沟通方式
工作中的软件是衡量进度的主要标准
持续关注技术卓越和良好设计
保持简洁、尽量减少不必要的工作
最好的架构、需求和设计来自于自主组织团队
定期反思如何更有效,并据此调整行为
核心价值观
个体和互动高于流程和工具
工作的软件高于全面的文档
客户合作高于合同谈判
响应变化高于遵循计划
优势
频繁交付的产品增量,满足客户需求
定期回顾和反馈,不断优化工作流程和产品质量
短周期迭代,快速响应需求变化
强调团队的沟通和协作,提高团队士气和效率
敏捷开发框架
Kanban
一种注重持续交付和看板管理的敏捷方法
核心实践:可视化工作、限制在制品、管理流程、使用反馈循环
XP
一种强调技术卓越和持续改进的敏捷开发方法
核心实践:结对编程、测试驱动开发、持续集成、重构、简洁设计、集体代码所有权
Scrum
一种常用的敏捷开发框架,强调角色、事件、工件
角色:产品负责人、Scrum Master、开发团队
事件:冲刺、每日站会、冲刺计划会议、冲刺评审、冲刺反馈
工件:产品待办事项列表、产品冲刺事项列表、增量
实施
迭代和增量开发:短周期迭代、CI/CD
反馈和改进:定期回顾团队的开发过程,识别问题和改进措施,定期的产品演示和用户测试,收集客户反馈并进行调整
需求管理:以用户视角描述需求,依据需求的核心价值和风险,对需求进行优先级排序
概念
定义:敏捷开发旨在通过增量开发和持续反馈来快速响应变化和交付高质量的软件
特点:短周期迭代、持续反馈和自组织团队
代码审查
代码审查的关键点
整体把握
代码是否符合整体架构和设计模式
代码是否遵循编码规范和编码风格
代码的正确性
代码逻辑是否正确
代码的边界条件处理是否完善
代码的单元测试是否完全覆盖
理解上下文
明确代码的变更内容和目的
性能和资源
代码是否有性能(循环、计算)瓶颈
代码在资源管理方面(内存、CPU)是否有漏洞
安全性
敏感数据是否加密处理
输入数据是否验证和消毒,防止安全漏洞
可维护性
可读性:代码是否易读,变量名、函数名、注释是否清晰
模块化原则:是否遵循单一职责原则,函数和模块是否遵循模块化原则
重复代码:是否有重复代码
依赖管理
检查第三方依赖库是否有必要,版本是否稳定
是否有合理的依赖管理策略,避免潜在的版本冲突和不兼容问题
过程
1.提交代码
2.创建拉去请求,描述代码变更内容和目的
3.分配审查人员
4.代码审查:主要内容有逻辑错误、性能优化、安全漏洞、代码风格、文档和注释等
5.根据反馈进行修改
6.批准和合并:审查同意后,代码合并到主分支
工具
Bitbucket:代码审查工具和团队协作
Crucicle:专门的代码审查工具
GitLab:提供代码拉取和代码审查
目的
知识共享:学习新的技术和最佳实践
一致性:确保代码风格和规范一致,便于维护和开发
提高代码质量:集体代码审查,发现潜在的问题和漏洞
版本控制
目的
协作开发:多人协作并行开发,解决代码冲突
发布管理:管理不同版本的发布,快速回滚
跟踪变更:记录每次代码变更,便于回溯和问题跟踪
常见系统
Git:分布式版本控制系统,支持离线开发和分支管理
SVN:集中式版本控制系统,适合小团队
git流程
克隆仓库 -> 创建分支 -> 提交变更 -> 推送分支 -> 合并分支和解决冲突
测试驱动开发(TDD)
流程
编写测试:编写测试用例,定义代码的预期行为和输出
运行测试:运行测试用例失败,因为还未实现
编写代码:编写功能实现代码,使测试用例通过
运行测试:再次运行测试,测试通过
重构优化:重构和优化代码,同时保持测试通过
重复循环:不断重复上述步骤,逐步实现所有功能
工具
JUnit
Pytest
Jest
目的
提高开发效率、减少bug、设计驱动