2014.8.2【英译中】大学生第一份工作最常犯的错误(二)

发表于:2014-08-02 09:24 [只看楼主] [划词开启]

Answer by Allen Wu, software engineer at Yahoo

雅虎(Yahoo)软件工程师Allen Wu的回答

Two mistakes I made during my first job in software engineering as a new grad come to mind. Hopefully reading about my experiences will encourage new college grads to be more cognizant of these common mistakes.

在我刚毕业出来从事的第一份软件工程师的工作时,我曾犯下了两个错误。所以我希望通过读了我写的自己的经历,能够鼓励大学毕业生更好的去了解这些常见的错误。

The first was grossly underestimating how long it would take to complete a feature. The business requirements suggested that the feature was not very technically complex and would be straightforward to implement. What ended up being responsible for the bulk of the time was cross team collaboration, dependencies on others, and evolving requirements, which led to many iterations of development. There’s an aphorism in software engineering that says that 90% of the work takes 90% of the estimated time, and the remaining 10% of work takes another 90% of time, resulting in a total development time of 180% of the original estimate. Even after some experience in software development, it is still really difficult for me to accurately estimate the development time of a task (see Jan Christian Meyer’s answer to Software Engineering: What is the hardest thing you do as a software engineer?), though it’s getting better.

第一个错误是我严重低估了完成一个开发项目所需的时间。职业要求表明这个开发项目在技术上不能太复杂,也易于操作。最终结果是,跨团队协作、对其他人的依赖性,以及不断更新的要求,占用了大部分时间。而不断更新的要求常常导致许多重复的开发工作。软件工程领域有一句格言是这样说的:90%的工作会用去90%的时间,剩余10%的工作还需要90%的时间,最终结果是,开发时间将是预估时间的180%。即便在软件开发行业积累了一些经验之后,我依然很难准确估算一项任务的开发时间,尽管现在的情况有所好转。

The second was not asking for help when I should have. I was stuck on a bug I discovered for a feature that I was trying to implement. Trying to uncover the root cause of the bug was like opening a can of worms – related problems started popping up everywhere. Instead of properly escalating the issues to increase their visibility to get more resources or asking for help, I spent many cycles trying to find solutions, which was an exercise in futility. My manager at the time noted that a common mistake made by junior developers is to “disappear” to work on their tasks for extended periods of time, and reappear when they’re finished. When I realized that unexpected problems are expected, and a manager’s job is to have visibility and enable a team to operate at optimal velocity, I was able to improve on this.

第二个就是在有必要寻求帮助的时候却不去寻求。正打算开发一个项目的时候,我却深陷其中的我所发现的漏洞。要找出导致漏洞的根本原因,无异于自找麻烦——突然之间,相关问题开始不断出现。我没有恰当地提升这些问题的严重性以提高其可见性,并由此获得更多资源或寻求帮助,而是一遍遍地试图找出解决方案,结果徒劳无功。我当时的上司表示,初级开发人员最常犯的错误,是会“消失”很长一段时间,忙于自己的项目,等到项目完成之后才会再次出现。当我意识到应该料想到意外问题总会出现,管理者的职责就是发现问题,使整个团队按最佳速度运行,我在这方面得到了提升。

分类: 英语
全部回复 (7) 回复 反向排序

  • 0

    点赞

  • 收藏

  • 扫一扫分享朋友圈

    二维码

  • 分享

课程推荐

需要先加入社团哦

编辑标签

最多可添加10个标签,不同标签用英文逗号分开

保存

编辑官方标签

最多可添加10个官方标签,不同标签用英文逗号分开

保存
知道了

复制到我的社团