是什么让项目变糟?何时起我们下班回家时开始盘算:“见鬼,我得离开”?下面是我们程序员不时要面对的一个问题清单,这些问题让我们筋疲力尽。而通常我们又躲不掉,不得不设法去应付。

01 错误的团队

如果你不幸处在一个错误的团队中,问题则免不了。大家也许都还不错,但是当其中某人因为钱的事情不高兴,或者对琐碎的任务感到厌烦时,他就可能破坏团队的气氛。其他人可能只顾着自己的事业,这使得他们变成了糟糕的团队伙伴。某人会认为自己是在帮助这些人实现他们自己的事业目标。如果一个团队成员的知识太少,也可能出现不友好的情况。如果你从事的工作与你的技能不配,或者没有人能够帮你迈出第一步的话,你也可能陷入麻烦。

团队需要和谐。如果你有幸身处“分享同一个梦想”的团队,一切都很美妙。如果你是由无聊或自负之人组成的团队的一员,你可能会经历一段非常艰难的时光。

02 荒诞的需求

一些项目需求读起来简直是科幻小说,抽象,一点都不现实。有想象力当然很好,但想象力必须适应团队。如果项目团队中有许多应届毕业生,你不太可能在第一版就创建出基于云的最佳电子表格。

有些客户往往以为软件需求一句话就可以说清楚:“该产品必须像社交网站 X,只是有一点儿不同。”“事情不会太难,有公司已经提供了免费版。”“这只是一个留言板罢了。”这些需求最终导致极大的不满。客户从未获得自己满意的产品,开发者也根本没法儿满足客户,而且觉得自己难以胜任工作。

03 外行的期望

不清晰的需求导致了外行的期望,不仅如此,有时人们似乎把程序员当成了超人。

当你刚接手一个项目时,根本不可能成功调试有着 100 000 行代码的程序。无论是不是产品问题,程序员都需要时间先读懂代码,然后才可能修复它。

像“这只是一个按钮罢了”或者“老手程序员五分钟就搞定了”这样的话根本无济于事。除此之外,“五分钟的修复”也许正是需要修复的根本原因。

04 咖啡机下度夜

一些时候,超越身体极限,尽量把活干完是必要的。假设产品中存在一个根本性的软件故障,我们要尽力救援。这往往需要额外加班,工作到半夜甚至更晚。

软件的问题是如此关键,以至程序员往往被期望熬夜处理,直到问题解决。我们中最好的程序员曾被发现在咖啡机下方昏昏睡去,虽然他奋不顾身地想保持清醒,但最终失败了。在一些人的心目中,在咖啡机下睡觉显示了程序员对项目的认真。

虽然这样的生活有时很有趣,但长此以往会导致严重的问题。如果你的这种行为“修复”了事实上是管理不善的问题,那就更糟了。当需求变化时,或者由于公司政治致使项目管理者承诺了一个最后期限时,你就会遭受非常令人沮丧的经历:有家不能归,有床不能睡。

05 被忽略的非工作生活

程序存在软件缺陷,这很正常,无法完全避免。心理学家发现人们可以很容易地同时思考三件事。但如果数量超过三个,大多数人的思维都会出现问题。然而作为一名程序员,我们必须同时记得更多事情。

通常在程序员的周围有很多干扰,比如:

咆哮的项目经理; 没完没了的电话和会议; 在高压下工作; 或者是家庭、健康或财务问题。 一个程序员受到的干扰越多,编写出缺陷代码的可能性就越大。让一些分心的事可以保持在最低限度,以免他人受到影响。例如家庭生活,这是我们生命的重要一面,虽然有时它也相当无情。

无论谁在评估项目的预算,都需要安排一些额外时间考虑到程序员的非工作生活。不能仅根据项目成员的工作经验来计算预算额度,需要考虑他们的现状。为了正确地估算,你需要知道有人家里是否有个怀孕的妻子,大家是否都健康,或者是否已从之前疲惫的项目中恢复了元气。

忽视生活就意味着忽视风险或机会。

给一个精力充沛的人布置大量无聊的任务,意味着你错过了一个机会。而给一个家庭出现变故的人布置高度复杂的任务,则会增加风险。

如果程序员意识到自己的生活长期被忽视,这会使他感到沮丧和疲惫。

06 威胁产生的动力

威胁无疑不是一个好的激励策略,但仍然被广泛使用。“如果你不能熬夜加班,就不配当一名程序员,而应该去做一个园丁。”我的一名同事曾这样说过。

威胁会引起恐惧。除了黑暗外,害怕失去生存的基础也是人类最强烈的恐惧之一。

要是某人遭遇一阵威胁后,不得不在恐惧中工作,那他绝对是“职业倦怠”症的最佳人选。

07 无端变化的需求

项目经理走入房间,扔下新的需求,然后走人:这就是“直升机式管理”方式常见的场景。如同直升机着陆、扬尘并再次起飞。有些人精于此道。他们的大多数需求未经过深思熟虑,而且在项目实施的过程中毫无预警就改变了需求。

当需求不明确时,就会失去目标,任务永远无法结束。每一次会议都显得荒谬,所有讨论结果都是废话。最后,整个项目都被质疑,自己每天做的事情的意义也会受到怀疑。

08 贪婪

在现代社会中,如果你不能决定像僧人那样生活,你就需要金钱维持生存。

在某些场合下,公司——嗯,我们还是说公司的管理层吧——他们会竭力从项目中榨取每一分钱,对雇员看都不看一眼。

2012 年,富士康中国公司(它是苹果公司的合作伙伴)发生了一系列抗议运动。工人要求改善工作条件。

在西方国家,你可能被迫一直住最廉价的酒店,坐最廉价的交通工具,而且使用最廉价的办公设备,即使你负责的项目非常成功,为公司带来的利润丰厚。

节省本该花在员工身上的钱,从而证明公司的盈利能力是多么强,可能是管理层犯下的最糟糕的错误。我见过很多人因此而离开公司。

09 其他成见

对于那些让程序员沮丧的事情,我可以写一整本书,在本章我们就已经看了其中一些。

这里有一些更多的成见,你也许听说过。

比如,伟大的程序员

如果能用 Y 语言写代码,就能用 X 语言写代码。 可以迅速地解决问题,其中大多数能在一分钟内搞定。 不会写有缺陷的代码。 不需要编写测试代码。 喜欢深夜还在为客户编写代码。 不在计算机旁或办公室里也能调试代码。 了解关于硬件、最新的 IT 趋势以及框架等的一切,无所不知。 不与客户交流就能够理解客户的意思。 熟悉各种操作系统,从底层到上层,包括每一种移动设备上的系统。 可以编写运行在每一种设备上的代码,并且无需重新编译,无需设备转换,无需付出额外的努力。 这个成见清单可以说是无穷无尽的。我们无法教育人们停止相信诸如此类的故事。即使是专家也无法做到。相反,我们需要基于日常准则保护自己免受成见的干扰。

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加群。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加群。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加群。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加群。

5.群号647490707Java高级开发

6.阿里Java高级大牛直播讲解知识点,分享知识,上面五大专题都是各位老师多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

项目难做,程序员难当,软件开发中的 9 大难题相关推荐

  1. 程序员面向软件开发时,如何成功?

    软件开发这个行业向来以项目延迟交付和和预算超支而闻名. 作者 | Blaine Osepchuknin 译者 | 苏本如,责编 | 刘静 出品 | CSDN(ID:CSDNnews) 以下为译文: 软 ...

  2. 桌越科技关于程序员和软件开发

    程序员,我觉得概念好大.微软的写操作系统的是程序员,他们要用代码驱动各种设备,创造许多协议:华为的程序员要对程控交换机等各个硬件设备进行操控:手机软件的开发,在很少的内存上实现很多功能:还有的如语音录 ...

  3. 硬件程序员和软件开发程序员相比,哪一个就业发展前景比较好呢?

    计科专业毕业从事软件开发,也有和硬件工程师打交道,从人员数量相比硬件工程师和软件工程师无法比较.毕竟硬件主要在开始阶段,一旦可以用了后续人手会少许多,其实单纯的比较软件和硬件没有多大的意义,任何一种岗 ...

  4. 黑马程序员_软件开发整体介绍

    在编写自己第一个web项目时,开发初期学到的东西 软件开发 前言 一.软件开发流程 1.需求分析 2.设计 3. 编码 4.测试 5. 线上运维 二.角色分工 三.软件环境 1.开发环境: 2.测试环 ...

  5. “转行做程序员”很难?这里有4个建议

    近几年来,传统行业多处于经济下行,加上互联网行业的赚钱效应,想要转行到这一行的人越来越多,其中程序员这个行业更是很多人梦寐以求的. 但另一方面,我们也发现,这些想要转行的同学们往往会遇到很多困扰.就在 ...

  6. “非计算机专业如何转行做程序员” - 我的经验

    前两天在微博上看到关于"非计算机专业如何转行做程序员" 的讨论: 讨论中一片学生的来信,勾起我写一篇博客的冲动: 希望我的经验能影响他,影响徘徊在计算机行业外想进来的人. 先做个自 ...

  7. python怎么做软件程序_看 Python 超级程序员使用什么开发工具

    Python超级程序员使用的开发工具 我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发 ...

  8. 客户端开发是做什么的_做程序员需要哪些技能?会开发什么软件?

    毕业以后,我一直做程序员,转眼已经好几年了.这么多年下来,各种杂七杂八的技术学了一堆,工作中需要什么就学什么,程序员就是这样,必须与时俱进,持续地学习. 今天简单说说程序员在工作中需要的技能,以及会开 ...

  9. 总结两年半银行软件开发外包项目历程-JAVA程序员

    记得是2011年3月,但忘记是哪一天咯,和一个要好的同学准备启程去深圳找工作,说实在的,现在想想当时还是蛮有勇气的,自己虽说学习计算机专业的,可大学里面被我混提了,皮毛都没有学到,毕业后竟想要做开发, ...

最新文章

  1. 使用 SAX 解析器简化文档处理程序的编写
  2. Sun x4500作为文件服务器的调优
  3. OpenCV交互式相机校准应用
  4. Swift - 循环强引用,内存泄漏
  5. ARMA模型的性质之ARMA模型
  6. 蜡烛图plotly_Python数据分析:基于Plotly的动态可视化绘图简介,目录书摘
  7. [BJOI2017]树的难题 点分治,线段树合并
  8. 从二进制数据流中构造GDAL可以读取的图像数据(C#)
  9. 转 五种提高 SQL 性能的方法
  10. 常见Web安全漏洞及防范
  11. 有关字符串的算法(KMP,Manacher,BM)陆续补充
  12. 【优化算法】鼠群优化算法(RSO)【含Matlab源码 1462期】
  13. 如何将png转换成jpg呢?
  14. 网络安全-终端安全检测和防御技术
  15. 技术分享 | 关于Prometheus自主无人机开发你需要懂得一些“小事”(上)
  16. psp模拟器完美字库_安卓PSP模拟器评测:假面骑士超巅峰英雄
  17. Simultaneous accesses to 0x1c5a674c8, but modification requires exclusive access.
  18. 关于我写公众号的目的和原因
  19. 苹果新款笔记本_微软为Bing桌面体验也带来了语音搜索功能_苹果 新款MacBook Pro 13英寸_笔记本新闻...
  20. ​Python:PyTorch 汽车计数示例

热门文章

  1. 百度,谷歌,360,神马,必应,搜狗搜索引擎网站链接提交入口
  2. clickhouse列转行
  3. Excel表格视图受保护,无法编辑,怎么解除视图保护?
  4. mysql为什么尽量不要存null
  5. 解决虚拟机exis安装群晖时,synology assistant(群晖助手)可以搜索到服务器,但分配的ip无法访问
  6. 蛋白质结构预测 AlphaFold2、ColabFold、Uni-Fold、ESMFold
  7. poi解决受保护视图问题
  8. Presto 0.244.1 aarch64编译
  9. 红黑树详解,对插入旋转独到理解
  10. 【PyTorch基础】