从接到一个新需求到完成交付,我做了这些工作

简介: 从接到一个新需求到完成交付,我做了这些工作

大纲

一、需求分析

二、Bug处理

三、新功能实现

四、测试



一、需求分析


需求分两种,一种是Bug处理,就是处理程序的报错行为;另一种是新功能的实现,包括现有功能改进(Enhancement),修改功能等。


1.Bug处理。当测试跟你反馈有bug的时候别紧张,先观察一下报错,是不是程序的报错,有可能是测试的环境问题,集群部署问题等等。如果是自己的程序出错,接着看下文。


2.新功能的实现。跟提需求的人多确认几遍需求,最好有明确的PRD(product requirement document) 或者邮件等说明。先聆听需求,别急着反驳能不能实现。这也是我在工作初期犯的错,经常心太急急着去反驳能不能实现。正确的做法应该是先听完全部需求,自己梳理一下,再去针对具体需求进行分析实现的可行性。



二、Bug处理


1.观察报错。俗话说的好:日志打的好,处理Bug没烦恼。除了打好log之外,对程序异常的正确处理也非常重要,但这个属于代码规范的范畴,后续针对打log和代码规范再写文章。


2.精读代码。许多人一遇到报错,立马就上debug,debug本身没错,但至少先定个范围,而且有些Bug根本用不着debug。正确的做法是对着这段出现Bug的代码进行精读,一行也别落下,在一些判断或者传参的时候是否考虑空值情况,是否包括了临界条件等等。先把大段的代码缩小为可疑的一个小区间,后面再针对性的debug。


3.谷歌。有些报错可以直接复制黏贴搜索栏上,但有些报错需要自己先把问题抽象出来再进行搜索。搜索遵循由精确到模糊,当精确查找的方案不能解决你问题的时候,需要通过关键字搜索,让其他方案给你思路。举个例子:


a.精确:cause by ***。类似这种报错直接贴在搜索栏上,会针对性给你解决方案。


image.png


b.模糊:Zookeeper + timeout。


image.png


4.Stack Overflow定制化提问。针对你的问题,先去Stack Overflow搜一圈,优先看votes和answer多的。如果都没有的话,可以把你代码和问题贴上面,没过几分钟就会有热心的外国小哥来给你解答的,顺便纠正你的语法错误。



三、新功能实现


1.借鉴现有项目或其他好的项目源码。如果你现在的项目是一个大型项目,并且这个新功能跟之前的类似,那么直接找到那部分代码直接模仿就可以了。我在我电脑保存着很多优质的开源代码,当遇到一些类方法不会使用时,也会直接进行搜索借鉴。


2.官方文档。当需要使用一个技术栈去实现某个功能的时候,可以先去查阅官方文档,根据文档写个demo。多花点心思看官方文档,就可以节约大把查阅博客的时间。demo一定要投入最少的精力,保证方案的可行性就可以。


3.Github。Github有两种搜索方法,一种是针对项目功能,一种是针对技术栈的。当你知道什么样的项目有你想要的功能的时候,可以用项目去搜索,然后再分析里面的实现。当你知道实现的技术栈的时候,直接用技术栈去搜索更加精确。以登陆功能举例:


a.功能搜索:


image.png


image.png


四、测试


测试分为功能测试和代码质量测试等,具体测试的粒度和方法根据公司的要求和开发者的习惯。

1.针对Bug的测试,只需要按照原来的报错步骤再走一遍,看是否报错即可。


2.针对新功能的测试,开发者除了补上完整的UT之外,应该给予测试同事一些测试用例,对新功能进行完整测试,而不是简单的happy path。



你的开发流程是怎么样的呢?欢迎留言谈谈你的看法~

相关文章
|
3月前
|
测试技术 持续交付 UED
|
3月前
|
数据采集 安全 测试技术
软件交付质量问题之在软件交付的生命周期里,要合理安排全方位的测试,该如何实现
软件交付质量问题之在软件交付的生命周期里,要合理安排全方位的测试,该如何实现
|
4月前
|
监控 测试技术
软件交付问题之如何进行自我总结以提高软件交付的质量和效率
软件交付问题之如何进行自我总结以提高软件交付的质量和效率
|
安全 架构师 中间件
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
谨以此文,分享一些我加入阿里云后,我和我所在团队的成长经历。这里既有我个人如何从程序员成长为一个技术经理,也有我的团队如何把事情越做越大的过程和思考,希望能够帮到有需要的人。
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
|
6月前
|
监控 安全 项目管理
项目成功秘诀:高效管理策略确保按时交付
项目成功对企业生存发展至关重要,需要明确目标和范围,运用SMART原则和设计思维确保目标与市场需求相符。通过工作分解、优先级排序管理需求,建立变更和风险管理流程。制定详细项目计划,考虑约束条件、关键节点和风险。优化团队协作,明确角色责任,建立有效沟通机制,激励团队成员。实施PDCA循环控制项目进程,关注交付和复盘,以实现高质量的项目成果。
237 1
|
6月前
|
敏捷开发 Devops jenkins
DevOps、瀑布模型与敏捷开发:关系解析与对软件交付工程师的影响
DevOps、瀑布模型与敏捷开发:关系解析与对软件交付工程师的影响
149 1
|
6月前
|
存储 数据处理 项目管理
交付工程师准备工作
交付工程师准备工作
360 0
|
6月前
|
监控
项目总延期:确保软件开发公司按时交付项目,实用方法
在当今竞争激烈的商业环境中,软件开发项目的按期交付不仅是技术实力的体现,更是保障业务连续性和客户满意度的关键。面对可能存在的项目延期风险,一套有效的预防与应对机制显得至关重要。以下是参考“东莞梦幻网络科技”软件开发公司,有哪些保障条例,保证软件开发项目能够如期交付:
|
人工智能 运维 Cloud Native
质量工程化,交付快速化
质量工程化,交付快速化
62 0
|
敏捷开发 开发工具 Windows
Scrum敏捷开发工具:提高团队协作与交付效率
Scrum敏捷开发工具:提高团队协作与交付效率
下一篇
无影云桌面