网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > ddos防御

程序员必备的30条防御式编程思想原则(2)

  会议主持人应即时记录会议结论与待办事项,否则会出现几天、几周之后,大家印象中的结论不同而导致冲突,甚至出现遗忘重要待办事项的情况。

  对于内部团队,出现这种问题并不会有太大的问题,毕竟大家长期合作,一点点失误也会被包容,但不能因为经常被包容而没有这个习惯。因为在更大的共同体,公司横向团队的合作,甚至与外部公司合作的时候,这个问题带来的负面影响就会成倍地放大。

  对于一些定制化功能的三方供应商来说,他们会对接很多团队,他们对外部沟通时,并不是研发,而是其他岗位的同学,比如销售或商务。他们在对接时难免会因为理解偏差而作出错误的回答,如果根据错误的结论,设计出一个不合理的技术方案,等到项目上线前期才发现问题,在没有会议纪要的情况下,很难证明是对方说错了,还是自己理解错了。

  需求评审与排期阶段的原则

  人人都是产品经理,需求决定方向

  软件开发,是为了满足用户的需求,解决实际问题,创造价值,并不仅仅是为了被安排的一个个需求任务。研发不仅要按照产品经理的需求写代码,也要思考与批判其合理性。只有身处一名用户的角度,仔细分析产品的合理性,才能写出更有价值的代码,而不仅仅是把写代码当成一种体力劳动的交换。

  技术是手段,而非目的

  需求分析与系统设计是两个递进的步骤。

  在需求分析阶段,不应该考虑详细的技术细节,否则就会出现“因为技术太困难,所以这个需求做不了”或“这个工作量太大了,改一下需求吧,这样工作量就减少很多”的现象,导致一个优秀想法的流产。刚开始就从技术的角度,而不是从用户真实需求的角度来实现一个更有价值的产品。产品的价值应该根据用户的需求来决定,而不是技术的难易。当然并不是不考虑技术实现的成本,而是应该有先后顺序,确定需求之后再确认技术实现的成本,毕竟即使技术成本很高,其ROI也可能更高。

  虽然有些需求,用某些技术方案,成本非常低。几个小时就做完一个需求,但如果是无意义的需求与无意义的技术方案,做再多又有什么用呢?

  简化步骤的产品,有更大价值

  对于需要用户交互的产品,用户操作成本越低,时间成本越低,价值越高。这就需要在考虑产品的时候能在保证功能不变的前提下,尽量多的删除冗余功能,而不是增加功能,虽然增加功能更容易。

  跨团队合作,内部排期全部对齐之后再与外部沟通

  从个人,到团队,到整个公司,再到外部公司,共同体逐渐增大,沟通成本也会逐渐增加。对于一些需要统一结论的问题,比如项目的排期,应该根据共同体的规模从小到大逐步确定。避免和外部团队确定了一个项目上线的日期,结果发现内部时间无法匹配,后续再与外部团队调整。一方面沟通成本会很大,另一方面也暴露了内部流程的混乱。

  倒排排期需求,注意节假日,并保证联调时间

  有时候难免会遇到非常紧急的需求,需要倒排排期。如果一定要压缩时间,那就压缩开发时间,要保证联调时间足够。因为联调才能更快地暴露问题。提前暴露问题,才能尽早地协调资源,解决问题。

  开始联调的日期尽量不要定在大型节假日前1天,特别是涉及多团队的大项目,因为一个人休假导致无法联调,最终导致整个流程都无法及时开始联调。

  不要给合作方评估工作量

  有涉及和兄弟团队,甚至外部公司合作的时候,可能会遇到需要对方增加或修改一个功能的情况。从自己的角度看,这个功能只需要几分钟就能完成,但只要自己没有改代码的权限,就不要从自己的视角给对方评估工作量。

  一方面每个人对每个功能的熟悉程度不同,对方可能刚接手代码,也不是非常熟悉。另一方面每个团队都有自己的流程,完成整个功能的修改,边际成本并不低。因为不仅仅需要研发修改代码,满足当前功能,还要考虑拓展性与稳定性,甚至测试等团队的协作。

  开发阶段的原则

  完善的文档,是拥有长远战略眼光的表现

(责任编辑:admin)