你解决了编程问题。在Scrum Sprints期间,在代码线后抽出线路。你在红宝石中梦想着。您是一个程序员,一个软件开发人员,软件工程师。这不仅仅是你的工作,这是你的生活。

但在这里新遗物,我们有一个简单的问题:你怎么知道你是否真的是擅长的吗?(并且,同样重要,软件组织和软件开发经理如何确定谁做得很好,谁不是?)

“你没有,”工程经理Mac Browning说:Digitalocean.。“我所知道的最好的工程师不断质疑自己的能力 - 我认为这可能部分成为让他们伟大的东西。”

谦卑是必需的

事实是,如果你认为你知道关于软件开发的一切,那不是一个积极的迹象。如果你认为你很棒,那么你认为你是伟大的 - 无论是否反映在你建造的产品和服务中。亚博最新版直播

“评估开发商比评估一个钢铁工人更加类似地评估心理学家,”李阿托西森新遗物战略建筑高级总监。“这是一个主观的职业主观的措施和需要的软技能是真正优秀的强。”并随着崛起的德沃斯,全堆员工程师和敏捷编程方法,专注于代码在现实世界中的工作程度如何,评估规划技巧越来越复杂。

测量软件质量和生产率非常困难

这并不意味着软件行业没有反复尝试,而是一点成功 - 提出程序员的生产力和技能的硬度。

用于测量过去的开发人员生产力的技术包括测量Sloc.(代码源码线),在一天,一周或月份生产。使用分支代码的复杂性往往是测量/ SLOC(分支被认为是在代码方向的改变,如在if / while语句)。代码质量通常使用“缺陷/ sloc”测量,而QA覆盖范围以“触摸百分比的Sloc”或“触摸百分比”。

最近在量化和测量编程质量的尝试包括跟踪提交给开源项目的更改次数,甚至是开发人员在GitHub上的粉丝数量。

“但所有这些方法都是严重缺陷的,”李说。“他们测量了,因此鼓励了通常 - 几乎总是最终与有效创造伟大软件的目标的目标。”例如,LEE指出,使用SLOC来测量编程速度,鼓励开发人员写入长,低效的例程:数量超过质量。

Kal Vissa,高级产品经理CloudBees., 指着静态代码分析(也称为源代码分析)作为卓越编程的另一个测量棒。它肯定有其位置,可以有助于识别您的代码如何处理边缘条件,调试如何容易,以及是否录制了很好。

但是,虽然所有这些行动可能是良好的程序员做得好,但它们都没有真正有用作为对编程能力本身的客观测量。

教育图标教育不是集体

同样的教育是真的:计算机科学培训可能是有价值的,但即使是最顽固的程度也很难是程序员技能的独立指标。“一些最好的程序员来自一些最好的大学;其他人出局了当地的代码学校课程,“Lee Notes。“而一些最糟糕的程序员来自一些最好的大学,”他补充道“或”代码学校“。事实上,一些世界上最多的需求的程序员都是自学或来自完全不同的学术背景。

认证也是如此 - 它们可以是有价值的专业指标和学习和自我评估的工具,但它们肯定无法保证软件开发人员的能力。

“从来没有一种可靠的方式测量程序员有多好的方式,”李总结道。然而,有一个好程序员,就像有平庸甚至坏的程序员一样,有这样的东西。

所以,再次:你怎么知道你是否有什么好处?它开始认识到工艺的主观性。据李称,上述许多方法的问题是它们被错误地应用于客观的编程能力措施。

“很多非程序员的惊喜,即使计算机是精确的仪器,编程不是一个精确的科学,”李国。“这是非常主观的,需要评估和权衡。”

鉴于这一切,在那里获得软件质量和生产力问题的方法。反映这六个问题可以帮助程序员 - 他们工作的经理和组织更好地了解它对软件开发真正擅长的意义:

问题1:你真的“得到”和拥抱程序的固有主体性?

“从来没有,有一个正确答案的情况 - 总是有一个正确的正确性和错误,”李说。“了解这一点,接受这一点,并将其应用于您的工作,您的团队,以及您的产品,也许是程序员可以做到的最大的事情优秀的程序员。”

奖学图标问题2:你谦虚吗?

有一些东西可以被说是为了信心,但就像教育和其他变量一样,信心不会自动等同。事实上,无论你有多好,有些不满甚至怀疑往往是健康的。

冒名抑菌综合征经常防止我们能够识别自己的成就,[好]程序员绝对不是免疫,“Mac Branging说。但是“少量并保持在上下文中,它可以是一个标志,作为一个工程师,你一直在推动自己成长。”

问题3:您的客户是否使用和享受您开发的产品?亚博最新版直播

凭借Devops和全堆栈工程师的重要性越来越重要,越来越明显,良好的程序员需要关心他们的代码甚至是什么它在生产中。你关心它的工作程度,如果用户发现直观地学习和使用,那么表演的速度有多快,如果它真的在某种程度上帮助他们。除此之外,他们真的享受你建造的服务吗?

“如果您的客户[或]最终用户每天使用您的产品并拥有愉快的体验,这是您作为开发人员技能的最佳衡量标准,”Kal Vissa说。

数学图标问题4:您是否曾痴迷地重新审视基本面?

Good programmers are sticklers for detail and constantly return to the fundamentals: “They take great pride in ensuring their code is unit tested, well documented, follows the DRY [don’t repeat yourself] principles, and prioritizes simplicity over complexity,” Kal says. Put another way, are you building modular and reusable code that helps solve problems and offers value beyond the original implementation?

问题5:你也关心“软”品质?

根据Lee Atchison的说法,许多最重要的品质,将一个弱势程序员从一个弱者落入“软技能”类别。李寻找开发商的能力和意愿

  • 用各种各样的人在团队环境中工作
  • 处理来自不可预测的方向和变化的压力
  • 通过问题并找到解决方案,而不是抱怨问题并避免它们亚博直播平台
  • 了解设计的优雅是重要的,但不一定与良好的程序等同起来

统治者图标问题6:您衡量代码创建的值吗?

“我认为大多数成功的工程师不会通过修改的行业线[书面]或固定的门票,但在交付的价值中衡量他们的成功,”Mac Branging说。

值,如编程本身,可以是非常主观的,但这不应该阻止您在个人和组织目标的背景下测量它。Mac建议一些示例场景:您的客户使用的产品中的一个新功能,测试以涵盖先前未知的边缘案例,或开源项目中的新功能。性能,可用性和其他因素也越来越重要。

“您应该能够衡量一些关键指标,例如产品的收入或采用您的新功能,我们可以与我们的贡献相关联,”Mac说。“通过将我们的成功标准拉到高于螺母和写作代码的螺母的水平,它使衡量我们是否实际上是成功的。”

那你是怎么做的?

你不知不觉地刚刚参加了一个测试,以及一个适当的主观。如果您对上述每个问题回答“是”,您可能擅长编程。但是,不要让它去你的脑袋。软件开发是一个需要定期重新评估的过程。由于李说,总有权衡,改变是不变的。最好的开发人员永远不会忽视这一点。

Kevin Casey为各种出版物和公司提供技术和业务。他赢得了Azbee奖,由美国商业出版社编辑,为他的信息周见故事给出,“你太老了吗?”他还在小型企业影响者奖项中的前社区选择荣誉。查看帖子

对新遗物博客的写作有兴趣吗?亚搏体育登入网送我们一个球场!!