如何用正确的方法来写出质量好的软件的75条体会[收藏]hijustin

应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。

2.你们的项目组使用缺陷管理系统了么?

应该用。ClearQuest太复杂,我的推荐是BugZilla。

3.你们的测试组还在用Word写测试用例么?

不要用Word写测试用例(TestCase)。应该用一个专门的系统,可以是TestManager,也可以是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。

4.你们的项目组有没有建立一个门户网站?

要有一个门户网站,用来放ContactInfo、BaselinedSchedule、News等等。推荐SharepointPortalServer2003来实现,15分钟就搞定。买不起SPS2003可以用WSS(WindowsSharepointService)。

5.你们的项目组用了你能买到最好的工具么?

应该用尽量好的工具来工作。比如,应该用VS.NET而不是Notepad来写C#。用Notepad写程序多半只是一种炫耀。但也要考虑到经费,所以说是“你能买到最好的”。

6.你们的程序员工作在安静的环境里么?

需要安静环境。这点极端重要,而且要保证每个人的空间大于一定面积。

8.你们每个人都知道出了问题应该找谁么?

应该知道。任何一个Feature至少都应该有一个Owner,当然,Owner可以继续Dispatch给其他人。

9.你遇到过有人说“我以为…”么?

要消灭“我以为”。Neverassumeanything。

10.你们的项目组中所有的人都坐在一起么?

需要。我反对VirtualTeam,也反对Dev在美国、Test在中国这种开发方式。能坐在一起就最好坐在一起,好处多得不得了。

11.你们的进度表是否反映最新开发进展情况?

应该反映。但是,应该用Baseline的方法来管理进度表:维护一份稳定的Schedule,再维护一份最新更改。Baseline的方法也应该用于其它的Spec。Baseline是变更管理里面的一个重要手段。

12.你们的工作量是先由每个人自己估算的么?

应该让每个人自己估算。要从下而上估算工作量,而不是从上往下分派。除非有其他原因,比如政治任务工期固定等。

13.你们的开发人员从项目一开始就加班么?

不要这样。不要一开始就搞疲劳战。从项目一开始就加班,只能说明项目进度不合理。当然,一些对日软件外包必须天天加班,那属于剥削的范畴。

14.你们的项目计划中BufferTime是加在每个小任务后面的么?

不要。BufferTime加在每个小任务后面,很容易轻易的就被消耗掉。BufferTime要整段的加在一个Milestone或者checkpoint前面。

尤其当项目后期人困马乏的时候,要坚持。这会给产品带来质的区别。

16.登记新缺陷时,是否写清了重现步骤?

要。这属于Dev和Test之间的沟通手段。面对面沟通需要,详细填写ReproSteps也需要。

17.写新代码前会把已知缺陷解决么?要。每个人的缺陷不能超过10个或15个,否则必须先解决老的bug才能继续写新代码。

18.你们对缺陷的轻重缓急有事先的约定么?

必须有定义。Severity要分1、2、3,约定好:蓝屏和DataLost算Sev1,FunctionError算Sev2,界面上的算Sev3。但这种约定可以根据产品质量现状适当进行调整。

19.你们对意见不一的缺陷有三国会议么?必须要有。要有一个明确的决策过程。这类似于CCB(ChangeControlBoard)的概念。

20.所有的缺陷都是由登记的人最后关闭的么?

Bug应该由Opener关闭。Dev不能私自关闭Bug。

21.你们的程序员厌恶修改老的代码么?

22.你们项目组有TeamMoraleActivity么?

每个月都要搞一次,吃饭、唱歌、Outing、打球、开卡丁车等等,一定要有。不要剩这些钱。

23.你们项目组有自己的Logo么?

要有自己的Logo。至少应该有自己的Codename。

24.你们的员工有印有公司Logo的T-Shirt么?

要有。能增强归属感。当然,T-Shirt要做的好看一些,最好用80支的棉来做。别没穿几次就破破烂烂的。

25.总经理至少每月参加次项目组会议要的。

26.你们是给每个Dev开一个分支么?

反对。Branch的管理以及Merge的工作量太大,而且容易出错。

27.有人长期不Check-In代码么?

不可以。对大部分项目来说,最多两三天就应该Check-In。

28.在Check-In代码时都填写注释了么?

要写的,至少一两句话,比如“解决了BugNo.225”。如果往高处拔,这也算做“配置审计”的一部分。

29.有没有设定每天Check-In的最后期限?

要的,要明确Check-InDeadline。否则会BuildBreak。

30.你们能把所有源码一下子编译成安装文件吗?

要的。这是每日编译(DailyBuild)的基础。而且必须要能够做成自动的。

31.你们的项目组做每日编译么?

当然要做。有三样东西是软件项目/产品开发必备的:1.bugmanagement;2.sourcecontrol;3.dailybuild。

32.你们公司有没有积累一个项目风险列表?

要。RiskInventory。否则,下个项目开始的时候,又只能拍脑袋分析Risk了。

33.设计越简单越好越简单越好。

设计时候多一句话,将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scopemanagement。

34.尽量利用现有的产品、技术、代码千万别什么东西都自己Coding。BizTalk和Sharepoint就是最好的例子,有这两个作为基础,可以把起点提高很多。或者可以尽量多用现成的Control之类的。或者尽量用XML,而不是自己去Parse一个文本文件;尽量用RegExp,而不是自己从头操作字符串,等等等等。这就是“软件复用”的体现。

要。最好一个月左右一次。传言去年年初Windows组在Stevb的命令下停过一个月增强安全。Btw,“夯”这个字念“hang”,第一声。

36.你们的项目组每个人都写DailyReport么?

要写。五分钟就够了,写10句话左右,告诉自己小组的人今天我干了什么。一则为了沟通,二则鞭策自己(要是游手好闲一天,自己都会不好意思写的)。

37.你们的项目经理会发出WeeklyReport么?

要。也是为了沟通。内容包括目前进度,可能的风险,质量状况,各种工作的进展等。

38.你们项目组是否至少每周全体开会一次?

39.你们项目组的会议、讨论都有记录么?

会前发meetingrequest和agenda,会中有人负责主持和记录,会后有人负责发meetingminutes,这都是effectivemeeting的要点。而且,每个会议都要形成agreements和actionitems。

40.其他部门知道你们项目组在干什么么?

要发一些Newsflash给整个大组织。Showyourteam’svalue。否则,当你坐在电梯里面,其他部门的人问:“你们在干嘛”,你回答“ABC项目”的时候,别人全然不知,那种感觉不太好。

41.通过Email进行所有正式沟通

42.为项目组建立多个MailingGroup

如果在AD+Exchange里面,就建DistributionList。比如,我会建ABCProjectCoreTeam,ABCProjectDevTeam,ABCProjectAllTesters,ABCProjectExtendedTeam等等。这样发起Email来方便,而且能让该收到email的人都收到、不该收到不被骚扰。

43.每个人都知道哪里可以找到全部的文档么?

应该每个人都知道。这叫做知识管理(KnowledgeManagement)。最方便的就是把文档放在一个集中的FileShare,更好的方法是用Sharepoint。

44.你做决定、做变化时,告诉大家原因了么?

要告诉大家原因。Empowerteammember的手段之一是提供足够的information,这是MSF一开篇的几个原则之一。的确如此,tellmewhy是人之常情,tellmewhy了才能有understanding。中国人做事喜欢搞限制,限制信息,似乎能够看到某一份文件的人就是有身份的人。大错特错。权威、权力,不在于是不是能accessinformation/data,而在于是不是掌握资源。

45.Stayagileandexpectchange要这样。

需求一定会变的,已经写好的代码一定会被要求修改的。做好心理准备,对change不要抗拒,而是expectchange。

46.你们有没有专职的软件测试人员?

要有专职测试。如果人手不够,可以peertest,交换了测试。千万别自己测试自己的。

47.你们的测试有一份总的计划来规定做什么和怎么做么?这就是TestPlan。要不要做性能测试?要不要做Usability测试?什么时候开始测试性能?测试通过的标准是什么?用什么手段,自动的还是手动的?这些问题需要用TestPlan来回答。

48.你是先写TestCase然后再测试的么?

应该如此。应该先设计再编程、先testcase再测试。当然,事情是灵活的。我有时候在做第一遍测试的同时补上testcase。至于先testcase再开发,我不喜欢,因为不习惯,太麻烦,至于别人推荐,那试试看也无妨。

49.你是否会为各种输入组合创建测试用例?

50.你们的程序员能看到测试用例么?

要。让Dev看到TestCase吧。我们都是为了同一个目的走到一起来的:提高质量。

51.你们是否随便抓一些人来做易用性测试?

要这么做。自己看自己写的程序界面,怎么看都是顺眼的。这叫做审美疲劳——臭的看久了也就不臭了,不方便的永久了也就习惯了。

52.你对自动测试的期望正确么?

别期望太高。依我看,除了性能测试以外,还是暂时先忘掉“自动测试”吧,忘掉WinRunner和LoadRunner吧。对于国内的软件测试的现状来说,只能“矫枉必须过正”了。

53.你们的性能测试是等所有功能都开发完才做的么?

不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正,早死早升天。

54.你注意到测试中的杀虫剂效应了么?

虫子有抗药性,Bug也有。发现的新Bug越来越少是正常的。这时候,最好大家交换一下测试的area,或者用用看其他工具和手法,就又会发现一些新bug了。

55.你们项目组中有人能说出产品的当前整体质量情况么?

要有。当老板问起这个产品目前质量如何,TestLead/Manager应该负责回答。

56.你们有单元测试么?

单元测试要有的。不过没有单元测试也不是不可以,我做过没有单元测试的项目,也做成功了——可能是侥幸,可能是大家都是熟手的关系。还是那句话,软件工程是非常实践、非常工程、非常灵活的一套方法,某些方法在某些情况下会比另一些方法好,反之亦然。

57.你们的程序员是写完代码就扔过墙的么?

大忌。写好一块程序以后,即便不做单元测试,也应该自己先跑一跑。虽然有了专门的测试人员,做开发的人也不可以一点测试都不做。微软还有TestReleaseDocument的说法,程序太烂的话,测试有权踢回去。

58.你们的程序中所有的函数都有输入检查么?

不要。虽然说做输入检查是writesecurecode的要点,但不要做太多的输入检查,有些内部函数之间的参数传递就不必检查输入了,省点功夫。同样的道理,未必要给所有的函数都写注释。写一部分主要的就够了。

59.产品有统一的错误处理机制和报错界面么?

要有。最好能有统一的errormessage,然后每个errormessage都带一个errornumber。这样,用户可以自己根据errornumber到usermanual里面去看看错误的具体描述和可能原因,就像SQLServer的错误那样。同样,ASP.NET也要有统一的Exception处理。可以参考有关的ApplicationBlock。

60.你们有统一的代码书写规范么?

要有。CodeConvention很多,搞一份来发给大家就可以了。当然,要是有FxCop这种工具来检查代码就更好了。

61.你们的每个人都了解项目的商业意义么?

要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息化作先驱者,或者时不时的告诉teammember,这个项目能够为某某某国家部门每年节省多少多少百万的纳税人的钱,这样就有动力了。平凡的事情也是可以有个崇高的目标的。

62.产品各部分的界面和操作习惯一致么?

要这样。要让用户觉得整个程序好像是一个人写出来的那样。

63.有可以作为宣传亮点的CoolFeature么?

要。这是增强团队凝聚力、信心的。而且,“一俊遮百丑”,有亮点就可以掩盖一些问题。这样,对于客户来说,会感觉产品从质量角度来说还是acceptable的。或者说,coolfeature或者说亮点可以作为质量问题的一个事后弥补措施。

65.不要过于注重内在品质而忽视了第一眼的外在印象程序员容易犯这个错误:太看重性能、稳定性、存储效率,但忽视了外在感受。而高层经理、客户正相反。这两方面要兼顾,协调这些是PM的工作。

66.你们根据详细产品功能说明书做开发么?

要这样。要有设计才能开发,这是必须的。设计文档,应该说清楚这个产品会怎么运行,应该采取一些讲故事的方法。设计的时候千万别钻细节,别钻到数据库、代码等具体实现里面去,那些是后面的事情,一步步来不能着急。

67.开始开发和测试之前每个人都仔细审阅功能设计么?

要做。FunctionSpecreview是用来统一思想的。而且,review过以后形成了一致意见,将来再也没有人可以说“你看,当初我就是反对这么设计的,现在吃苦头了吧”

68.所有人都始终想着TheWholeImage么?要这样。项目里面每个人虽然都只是在制造一片叶子,但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领,反对过分的把软件制造看成流水线、车间。参见第61条。

69.Dev工作的划分是单纯纵向或横向的么?

不能单纯的根据功能模块分,或者单纯根据表现层、中间层、数据库层分。我推荐这么做:首先根据功能模块分,然后每个“层”都有一个Owner来Review所有人的设计和代码,保证consistency。

70.你们的程序员写程序设计说明文档么?

要。不过我听说微软的程序员1999年以前也不写。所以说,写不写也不是绝对的,偷懒有时候也是可以的。参见第56条。

71.你在招人面试时让他写一段程序么?

要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等,既不偏向过于考算法,也不偏向过于考特定的API。

THE END
1.设计logo的手机软件推荐下载,数据正版经典CCB版DFG56在当今这个视觉传达无处不在的时代,一个好的Logo往往能瞬间抓住人们的眼球,成为品牌的象征,对于设计师来说,拥有一款优秀的Logo设计软件至关重要,就让我们来推荐几款值得下载的设计Logo的手机软件,并深入解析其中一款备受瞩目的CCB版DFG56,带你领略正版经典的风采。 http://bbs.qywzy.com/post/10719.html
2.十大好用的logo设计软件推荐设计logo图标用什么软件好Logo是一个品牌或公司的核心形象,一个好的Logo设计会增添人们对其的好感度。那么你知道好用的logo设计软件有哪些吗?本文中Maigoo小编就带大家看看logo设计要用什么软件。例如Adobe Illustrator、CorelDRAW、Affinity Designer、Sketch、Inkscape等,都是知名度相对较高的设计logo图标的软件,下面来详细了解下。 排排榜 https://www.maigoo.com/top/442071.html
3.免费在线Logo设计:6款推荐生成器logo对企业来说非常重要。一个好的logo免费设计在线生成器往往会给企业带来无形的利润。因此,许多企业非常重视自己公司的logo。作为一名设计师,如果能找到一个好的logo免费设计在线生成器,势必会给实际的logo设计带来事半功倍的效果。本文精心挑选了6款logo免费设计在线生成器,第一款是无数大厂商免费设计在线生成器https://baijiahao.baidu.com/s?id=1802996712891481450&wfr=spider&for=pc
4.10款专业级logo设计软件,行业精选!●图像处理:CorelDRAW提供了图像处理功能,用户可以使用该软件调整图像的亮度、对比度、饱和度等参数,还可以应用滤镜和特效来增强图像的视觉效果。 ●文本设计:logo设计软件CorelDRAW具有强大的文本设计功能,用户可以创建各种艺术字体和文本效果。它提供了多种字体选择、字间距和行间距调整等工具,使用户可以创建出独特而美观https://pixso.cn/designskills/10-professional-logo-software-for-designer/
5.用什么软件设计Logo?8款强推软件用什么软件设计Logo?8款强推软件 有个朋友最近想要创业开家奶茶店,刚起好了店名字问我需不需要设计 Logo,毋庸置疑,在这个时代 Logo 就代表了品牌形象呀,这是亮相在市场的第一个身份牌,很多人就是因为追求知名的品牌而去购买其产品。可是他说自己是一个非设计专业也没有艺术细胞的钢铁直男,即使脑袋里有想法也不https://js.design/special/article/logo-for-software-design.html
6.学习logo设计一般用什么软件好点优秀的logo设计软件推荐2023新手学习logo设计有什么热门优秀的软件推荐,logo是一种非常棒的视觉传达方式,醒目的、个性的logo会让人们眼前一亮的同时,也让大家能够快速的记住它。那么新手小白自己学习logo设计一般用什么软件比较好呢,哪些软件是主流的优秀的呢,来看看天极下载小编的调查结果吧。 2023新手学习logo设计有什么热门优秀的软件推荐 https://mydown.yesky.com/news/61636.html
7.visual什么颜色好用二、简单好用的智能在线logo设计软件 如果你是设计小白,其实不太推荐上面的ps、ai这些学习成本高的工具,最简单好用适合小白的软件就是logo在线设计工具。绕过设计师自己设计,并且能够做到快速、无门槛、廉价。特别适合要求不高、时间紧急、预算有限或者没有预算的情况。 https://blog.csdn.net/weixin_39878549/article/details/111329948
8.免费logo设计用什么软件可以设计Logo的软件排行榜免费logo设计用什么软件-可以设计Logo的软件排行榜 可以用来设计Logo的软件,有很多好用的,有一键logo设计、Logo设计助手、Logo设计专家、Logo设计大师、Logo设计专业版。以下是这些软件的相关介绍: 免费logo商标设计app v13.8.48安卓版评分: 10.0 类别: 商务办公 大小:73.58 MB 语言: 中文https://www.itmop.com/article/8504.html
9.1brown2white3blue4black5grey电气接线图绘制软件绘图的时候很方便调用,它是一款很好用的电气原理图设计软件,比如在连接电气元件时它可以自动进行连线,元件连接好线路后可以自动编写线号,这样可以节省很多时间,如果把图绘制错了的话也很方便修改,因此Eplan电气绘图软件在集成化和系统化方便表现的非常突出。https://blog.51cto.com/u_16099272/11095256
10.设计logo需要学什么和用什么软件设计logo需要学什么和用什么软件? 1.理解品牌:在设计Logo之前,了解品牌的定位、核心价值和目标受众是必不可少的。设计师需要通过与客户的充分沟通和调研,深入理解品牌的要求,以便更好地表达品牌形象。 2. .基础美术功底:熟练掌握色彩、构图、比例等基础美术知识是设计Logo的基础。学习素描、色彩理论、排版等课程将有https://www.hxsd.com/content/35884/
11.logo设计app哪个好?logo设计软件手机版下载手机设计logo用什么软件?本合集收录了2018年最新最好用的logo设计app,包含海量的图形模板,图形的大小、颜色均可调整,能帮助用户在很短时间内轻松制作出独特的Logo图形!http://m.downcc.com/k/logoshejiapp
12.价格亲民华硕新Win8平板ME400C评测(全文)平板电脑评测最初刚上手的时候,如果没有注意到机身左上角华硕“ASUS”的LOGO,这种通体黑色的风格以及机身背部的类肤材质涂层,很容易让我们将它与ThinkPad系列的产品联系起来,但是机身四个顶点的圆角设计有给这台偏商务范儿的机器带来了一些活泼的元素。相比方方正正的微软Surface平板少了一丝霸气,但是对于使用者的双手来说,它握上https://pad.zol.com.cn/349/3491412_all.html
13.logo设计在线生成器有哪些?分享好用的logo设计软件好啦,以上就是今天我给大家推荐的在线logo设计软件,一键logo设计该软件支持电脑版和手机版,大家可以根据自己的实际需求选择最适合自己的软件进行设计制作。需要设计logo的小伙伴赶快行动起来吧!https://www.xunjiepdf.com/25493
14.网页设计需要了解的相关知识CI是Corporate Identity的缩写,中文译为"企业形象"。CI计划,是指企业有目的、有计划、战略性地创造出所希望的自身形象,由此提高企业的社会知名度,最终得到自己最适合的经营环境。 而logo只是网站或企业一个标志。 8,关于logo设计的资费问题 这个问题很不好说,如果是去找正规广告公司做的话,根据公司规模大小,500到50http://www2.hnsyu.net/syxywlzx/jszc/wlxxaq/201012/t20101212_46968.html
15.logo设计软件免费版logo设计免费生成器下载推荐理由:Logo设计助手app是一款创意商标LOGO制作工具,软件拥有海量精美的模板,拥有强大的编辑功能,还可以一键导出高清logo,是logo制作的好帮手。 下载logo商标设计软件免费版 2024-10-1692.8M v13.8.51 最新版 推荐理由:logo商标设计app安卓下载,这是一款专业的简洁的logo商标设计应用,logo商标设计app拥有多种功能https://www.qqtn.com/qqkey/lsmtxdzb/
16.很少人知道的20个最好用的免费设计软件GIMP在Linux系统推出时就风靡了许多绘图爱好者的喜爱,它的接口相当轻巧,但其功能却不输于专业的绘图软件;它提供了各种的影像处理工具、滤镜,还有许多的组件模块,对于要制作一个又酷又炫的网页按钮或网站Logo来说是一个非常方便好用的绘图软件,因为它也提供了许多的组件模块,你只要稍加修改一下,便可制作出一个属于https://www.jianshu.com/p/53f4a394afea
17.设计思路教程!如何使用AI软件中的布尔运算设计LOGO?如何使用AI软件中的布尔运算设计LOGO? 之前有很多人问我能不能出一篇关于布尔运算的详细文章或视频,因为工作原因一拖再拖,自己想了想躲得过初一躲不过十五,最终我还是利用一周,好好的理了一下思路出一篇文章。 为何用那么久去理思路?是因为我想大家更简单更容易的去理解它,而不是写一些官方理论话语说完就完,https://uiiiuiii.com/other/1212402513.html