如果是老程序员,那么,他一定会知道,其实软件开发中任务重大的不是代码,而是工作中其他的任务执行。如果你是刚刚进入软件这个行业,想要在这个行业有所发展,那么下面的这些困难你是一定要翻越的十座大山。
1.让别人了解你做的什么
总是有人会问你,软件开发是什么?每次和别人解释这个过程真的很让人头痛。也许在外行人的眼里,我们就是一群傻呆子,只会每天坐在电脑前不停的敲键盘的程序员。
2.可视化解决方案
如果给你一组简单但是考虑不周的一个需求方案,而你所做的就是代码结构、数据储库、算法以及一些解决业务问题就得去完成的各项技术内容。还要你用通俗易懂,让外行人都看明白的方式解释出来,并在客户的要求时间内完成,这些真得很少有人做好。
3.交付时间过于紧迫
这种事情是每个开发人员遇到都会头痛的事情,想一下,如果给你一个以前都没有接触过的任务,还要你马上答复他们用多长时间可以做出来,这是不是难倒你了。
所以这个时候你真的只能靠经验来估时间了,但大多程序员都会把时间少估了,其原因主要是他们没把所以的可能时间都加上。
4.参考别人写的程序
三人行必有我师,写程序也是一样。但是,研究别人的程序,意味着你要完整的了解对方的思路,架构设计。并且,如果当初写程序的人并没有留下清晰详细的注释,或者,只是一个完工的项目,那我们就更困难了。
5.需求不可控
软件开发时,需求不是一成不变的,偶尔客户会心血来潮加一点什么奇葩的功能,你明知这样的结果是错误的,但你没法拒绝客户。当最终失败的结果出现时,客户会责怪你,而不是他自己。
6.不优化和过度优化
追求完美是我们的目标,但事情就远不可能做的完美。我们不可能无限止的改善,这样软件永远没有发布之日,
很多人都有将就能用的心态,只要现在能用就行,以后的事情以后说,这样倒霉的就是那些接手维护这些老代码的人。
7.测试
要想达到百分之百的测试是不可能的,软件的复杂性远远超出你的想像。
软件的输出会因为事到环境的不同而篇千变万化,无法完全掌握。
编写测试代码是一件费力不讨好的事。
团队集体写测试程序时,沟通会成会大问题。
有时用户的想法会让我们莫名其妙,这是用户和软件开发人员之间的差异。
8.写文档
没有程序员愿意做这种事情,费时费力又不讨好。
9.电脑的问题
开发过程中意外出现的死机、蓝屏、数据丢失,这些虽然不是程序员的责任,但也必须我们自己去解决,否则无法工继续工作。
10.不懂装懂的人
我们会发现有很多人不懂装懂,他们从来不会对着飞行员说应该如何驾驶飞机,但会对着电脑屏幕告诉程序员该如何开发软件,想出很多无语的点子。
Read full article from 程序员面前的十座大山 - NetSmell
No comments:
Post a Comment