软件开发者只要会敲代码就可以了?
软件开发工程师的任务=敲代码,如果你是这么想的,那证明你还是太年轻了。
作者 | Eduards Sizovs
译者 | 弯月
责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
在我开始做软件开发的时候,我以为我的工作就是编写软件。当我的客户遇到问题时,我只要能编写软件解决他们的问题就可以了。我学的就是编写软件。
但客户需要的不是软件。 他们需要解决他们的问题。你的工作是找到性价比最高的解决方案,而且这些解决方案往往并不是软件。
根据软件开发的普遍规律,代码越多 Bug 就会越多。
e = mc²
或者
errors = (more code)²
Bug 的数量会随着代码量的增加而增长。你必须优先处理、重现和修复 Bug。
你写的代码越多,你的团队以及之后的团队需要维护的就越多。即使你将系统拆分为微服务,复杂性仍然存在。
编写经过良好测试的干净代码需要花费大量时间。在你写代码的时候,其他重要的工作都被耽误了。而这些工作会成为你们公司发家致富的绊脚石。
以盈利为目的的公司希望赚钱并减少开支。公司雇用你来解决那些妨碍他们发家致富的问题。然而你被头衔冲昏了头脑,你拿着他们的钱,然后把这些钱变成了昂贵的软件。
但业务与软件无关。就连软件业务也与软件无关。业务的目标是赚钱。
你的工作是了解公司如何赚钱,然后帮助他们赚更多钱并减少开支。如果你能明白这一点,那么你就会成为公司最宝贵的资产。
别再把自己当成软件开发。你是负责赚钱的人。
想想如何为客户省钱和赚钱。找到最让人烦恼的问题,然后解决它:
添加新功能过于昂贵?那就手动解决吧。
测试速度太慢?那么你来测试吧。
招聘不顺利?那么在聚会上发言并为公司做广告吧。
团队的效率不够高?给他们来杯咖啡。
你的头衔无关紧要。自我意识也不重要。
头衔和职位值会让我们看不清对客户最重要的东西——赚钱。
你是负责赚钱的人。想想如何赚钱可以帮助你选择下一个发展技能。例如:
无服务器:只为消耗的资源付费,减少在人员负荷规划上花费的时间 = 赚钱。
机器学习:摆脱手动决策 = 赚钱。
测试驱动开发:反馈周期越短,bug更少 = 赚钱。
软技能:激励队友,让他们更有效率更快乐 = 赚钱。
如果你不知道接下来应该学什么,那么回答一个简单的问题:
哪些技能可以帮助我的公司赚更多钱并减少开支?
不太可能是用 JavaScript 编写的另一个 Web 框架吧。
原文:https://sizovs.net/2018/12/08/you-are-not-a-software-developer/?2018-48
本文为 CSDN 翻译,如需转载,请注明来源出处。
热 文 推 荐
☞ 下一次 IT 变革:边缘计算(Edge computing)
☞ 年度重磅:《AI聚变:2018年优秀AI应用案例TOP 20》正式发布
print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"