程序员的职业素养(一)

一、专业与素养

1. 专业人士的核心能力

成为专业人士的核心包括:解决问题的方式(怎样分析问题、找哪些资料、怎样设计方案、方案利弊分析等等),步骤(怎样执行方案、怎样控制风险、怎样快速解决故障等等)以及反思(出现问题,如何避免同样错误再次发生)

2. 职业素养

那么,什么又是职业素养呢?不是天赋,也不是技艺高深,而是持续积淀的结晶。一方面它体现了能力和素质;另一方面,强调持续的积累和养成。拥有良好的职业素养,会让你变得更加专业。

作为职业开发人员,基本技能不够熟悉,当然谈不上职业素养。但是仅仅能够迅速编码,却不关心代码背后的意义,不能迅速判断、解决程序运行中的各种问题,不能自信满满地为自己交付的程序承担责任,同样是没有职业素养的表现。

二、培养自己的职业素养

1. 职业是件严肃的事

首先,要明白自己的责任和义务,视公司的利益如同个人利益。

假如,你代码里的bug给公司造成100W损失,这些损失全部由你来赔偿。你还会提交没有经过测试的代码吗?

2. 担当责任

自己犯的错误,一定要承担起责任。并且事后,要进行复盘,反思有哪些地方需要改进。

自己许诺的事情,一定要做到,哪怕加班赶工。

3. 不行“坏事”

作为软件开发人员,能做出什么“坏事”呢?从纯软件的角度看,他可以破坏软件的功能与架构。不行“坏事”,就需要学会对自己的错误、不完美负责。如何避免做“坏事”呢?

  1. 让QA找不出任何问题。充分的功能自测和单测;
  2. 确信代码能正常运行。设计易于测试的代码,要求每一行代码都要测试(参考测试驱动开发);
  3. 自动化QA。完备单测和集成测试;

4. 不破坏结构

(1)易于修改的原则:设计良好的软件结构,就会很灵活,也更易于修改。

因此,所有软件项目,软件结构的指导原则就是:软件要易于修改。如何创建灵活可维护的结构。这方面的设计原则和模式很多,网上可以查到很多资料。

(2)随时优化结构:跟随着项目的迭代,要不断调整代码的结构,以适应易于修改的原则。最好的状态是,每次提交代码,就做点简单的修改,来改进结构。点滴改善的积累,会让你从中受益。

调整结构的前提,需要有变更模块的充足自动化测试,以保证你调整结构后,可以快速验证。

5. 职业道德

工作要认真做。每周的40小时,是为雇主工作,你要付出时间和精力,因为雇主付了钱。工作之余,每周要再抽20小时来为自己的职业发展工作,保证自己在职场中立于不败之地。

(1)了解你的专业领域

设计模式、设计原则、方法、实践、工具使用等等方法面面。

(2)坚持学习

扩展自己的技术。看看文章,关注技术博客,读书,甚至学学别的语言。

(3)练习

练习常见算法,或练习某类工具的使用,让自己更娴熟。

(4)合作

专业的软件开发,往往更愿意与他人一起编程、一起练习、一起设计、一起计划,这样可以从彼此身上学到很多东西

(5)辅导他人

教学相长,教会别人,成长自己。

(6)了解你的业务领域

了解自己开发的解决方案所对应的业务领域。了解同领域下别人的方案,最好能读两本相关领域的书籍。

(7)与雇主/客户保持一致

雇主的问题就是你的问题。你必须弄明白这些问题,并寻求最佳的解决方案。

(8)谦虚

多听取他人建议,思考能否改进。

三、该说“不”时就说“不”

“能就是能,不能就是不能,不要说 ‘试试看’ ”—— 这关乎你的职业素养。

专业人士对一件事情有准确的预估。当无法达成对方要求时,应该懂得说“不”,而不是“试试看”,“试试看”是不专业的表现。只有敢于说“不”才有可能真正做成一些事情。

1. 对抗难于避免

无论是产品经理,还是业务方。他们都有自己的工作目标,也都会竭尽所能地捍卫目标。而作为开发的我们,同样也有自身的目标,也需要去捍卫。但是,多数的开发把自己设定为弱势群体,被(业务、产品)逼着做出不可能的承诺,然后默默忍受。于其冒险一试,承担不可预期的后果,反而不如与施压者聊一聊。最好的结果就是找到大家共同的目标,这有赖于协商。

如果你答应对方 “试一试”。最终没有完成,那么你就是失职。
如果你坚持说 “不可能,办不到”。这样才是你尽职的体现,才有机会去协商。

协商的过程可能会很愉快。比如聊聊哪些功能点可以砍砍?时间点可不可以延长一点,等等。没有必要给对方解释“为什么”不行,“为什么”远不如“事实”重要。有时候解释太多细节,反而会招致更多的麻烦,让对方参与到微观管理,更容易偏离协商的目标。

如果对方真有技术背景,协商有结论后,解释一下细节也无妨。另外,非技术人员,也没必要去了解太多技术上的细节。

2. 高风险时刻

要知道,开发软件,其实也是一件高风险的工作。项目进程中,随时可能出现不可预见的风险。专业人士对风险需要有控制力。遇到可控风险,要及时同步团队成员,以便获得决策的快速响应,矫正项目方向到安全轨道上。而对于难以控制的风险,也需要及时通知相关方。

当发现项目存在风险需要延期时,要及时向相关方同步结论。不然,相关方会以为你的项目可以按时保质的上线。一旦到了deadline,你的项目还没有完成,这时候再告诉相关方。我相信,你会被喷的很惨,而且,也会承担巨大的责任和职业失信。

3. 所谓团队精神

具备团队精神,意味着恪尽职守,意味着当其他队友遇到困难时你可以援手相助。有团队精神的人,会频繁与大家交流,关心队友。也会说出自己遇到的困难,寻求帮助。

有团队精神的人不会总是说“是”,而是会根据自己的专业,去否定不可能完成的事情。

只考虑一己之利,随意承诺,并且一个劲地鼓吹别人做不可能完成的事情,是没有团队精神的表现,因为他不是为团队努力,而是在损伤团队。

(1)拒绝“试试看”

“试试看”,就意味着你要“额外付出”,同时还得承担失败风险,对团队协助是不利的。

(2)拒绝消极对抗

当有人“逼你”做不可能完成的任务时。不能消极对抗,心里抱怨:“等着出问题吧”。这时候更应该主动协商,千万不能任其发展,走向悬崖。

4. 那些不靠谱的陷阱

(1)这个需求很简单

当你听到这句话时,一定要谨慎,防止自己直接允诺对方。可能这个允诺,会让你陷入痛苦的加班赶工中。

对方所说的简单,有可能是因为对需求理解不够深刻导致。你需要通过自己的专业知识去分析原始需求。
有时候,你的领导或者产品经理,也会不经过你的确认,直接允诺需求,这种做法很不靠谱,应该拒绝

(2)这个需求很重要

还有一些需求被提出来的很突然,完全是规划外的事情。记得去具体问题具体分析。存在不靠谱时,就与对方协商,而不是盘算着怎么“挤出”更多时间来完成任务,这会让你痛苦不堪。

通常,临时增加的需求,是价值很低的需求。开发完成后,就会闲置或使用率很低。这种无关紧要的需求,让你付出很多,却价值很低。专业程序员一定要学会识别需求的价值,因为雇佣你真的很“贵”。

5. 只为写出好代码

(1)多与相关方沟通

多与你的相关方沟通。开发工作中会涉及多个角色合作:产品、测试、前端、后端。你需要确保,大家的认知是持续跟进的。

多沟通,也是发现不合理需求的一种手段,对不合理需求及时说“不”;
定时(每日或每两日,按自己的习惯)确认功能与约定一致;
约定变动,需要快速同步,以便快速得到响应;

(2)不可以追求荣誉

别逞能去当“救火队员”,体验“救火”的光荣。“救火”意味着你要接受可怕的加班,牺牲个人时间与精力。而且,高压状态下,你会打破自己养成的专业习惯。

(3)拒绝打破专业习惯

避免让自己进入“时间很赶”的状态,这样,你会写破坏软件结构的代码,让你的系统不可维护;你会忽视测试;你会心存侥幸,以为只改了一点代码不需要回归。这样做,倒霉迟早发生,要学会拒绝那些打破你专业习惯的事情。

四、只说“是”不说“试一试”

1. 承诺

(1)承诺

口头上说。心里认真。付诸行动。

口头上说自己将会去做。心里认真对待做出来的承诺。真正付诸行动。

(2)识别“缺乏承诺”的表述

需要/应当:“我需要减肥”。通常只是嘴上说说,没有具体行动方案的说说,都只是说说。
希望/但愿:“希望明天能完成任务”。没有完成任务的决心,说明没有足够的掌控力。
让我们(而不是让我):逃避责任的常见手段,把个人责任,嫁接到团队成员上。

(3)真正的承诺

“言必信,行必果”。几种导致食言的原因和避免办法:

  • 之所以没成功,是因为我寄希望于某某去做这件事。
    只承诺自己能完全掌控的事。如需要跨团队配合,不妨先理一下依赖,然后向对方承诺会采取的行动,以保证最终集成。
  • 之所以没成功,是因为我不太确信是否真能完成得了。
    有必要让对方知道,你可以给的最大支持,但确实没法完成。即使目标无法完成,你仍需要全力前进,离目标更近一些。
  • 之所以没成功是因为有时候我真的无能为力。
    无法兑现诺言,就需要尽早向你的承诺对象发出预警,越快越好,越早越好。如果你不尽早告诉他人可能的问题,就错失了让他们帮助你达成目标、兑现承诺的机会。


2. 不说试一试

试一试的另一面,往往隐藏着风险。一定要坚守自己的原则,承诺自己能做到的,捍卫自己的目标。


作者:刘洋

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值