You Are Not a Software Engineer (Yet)

原文:You Are Not a Software Engineer (Yet)

PARAGRAPH3


**Constantly Examine Your Day With a View to "Optimize for Value". **
There is a surprisingly large part of a coder's day that is wasted on things are frankly not worth the effort.If an activity brings you or your company no value, then why are you spending time on it?Often time this might take the form of meetings, people or "process"
Recently a friend of mine lamented to me that since being promoted to "Team Leader" he felt like he could never get anything done.So he decided to track his time. At the end of the week he had discovered that he had been able to spend a total of 20 minutes on engineering.Now, if the rest of his time had been taken up with mentoring or leading his team than this would not be a bad thing but sadly most of his time was "spent" by others; Other teams; Other departments and so on.

PARAGRAPH4


Please don't let me misguide you into thinking that collaboration and communication is not absolutely imperative.
My point is as engineers, we should focus on finding the best solution. That is what an engineer does.
For example:
If a meeting is about "syncing up" then consider being proactive and publishing your status on a wiki, internal blog or via email distribution. Let other "self-service" the information at a time and rate that suits them.

If you are a team or department lead and feel like you spend your entire time in meetings that achieve very little then delegate. This not only frees you up but it will allow your team members to experience more and grow. Be sure to empower those your delegate to make some or all the decisions, otherwise people will insist on your presence. Also be sure to back your team members decisions; they need confidence to make decisions and represent your interests without fear.

If your boss wants on know "what's been worked on" or "what was achieved" then find a tool that works for you and use it. Keeping a list of tasks up to date is a minor task that all team members can do at little cost.

If the "process" requires that you take 5 steps to complete a task but most of are mind-numbing mechanical stuff. (e.g. generating a change log or sending an email notification) then use your skills as a programmer to automate as much of it as you can. Consider a simple the task takes 10 minutes and you must do it once a day. If you spend 2 hours to make a script that reduced that task from 10 minutes to 2 minutes then your time would be "paid back" in 15 days!

Find yourself constantly distracted by email or IM notifications? Close the apps! As programmers our work requires a great deal of concentration and any little distraction can upset your flow and otherwise slow you down. One of the great advantages of text-based communication is that it's designed to be "disconnected"; this means you are free to interact with it at your pace. Some people take this a step farther with concentrated bursts of concentration using the Pomodoro technique. While I recommend trying this, it's not for everyone and I frequently find it hard to stick to.

翻译

PARAGRAPH3


--不断从“价值优化”的角度来检查你度过的每一天
++不断从“优化价值”的角度来检查你度过的每一天
程序员每天多的让人惊讶的时间浪费在没有意义的事情上,坦白说,是在作无用功。
如果一件事不会给你或者你公司带来任何价值,那为什么要花时间在上面呢?通常这种事情是会议、聚会或者"流程”之类。
最近我一个朋友向我抱怨,自从升为“团队领导”之后,自己几乎没完成任何一件事情。
所以他决定回顾检查自己的时间。他发现一周之后,自己仅仅在“工程”方面花的时间总共20min。
现在,如果他的其他的时间是花在指导或领导团队上倒是还好,但不幸的是大部分时间”花在“其他人、其他团队、其他部门等等。

PARAGRAPH4


请不要把我的观点误解为合作和交流完全没必要。
我的意思是作为工程师,我们的重点是找到最佳解决方案。这才是工程师要做的。
比如说:

  • 如果会议是关于“同步”的(团队成员之间同步进度),那就积极一些。把你的进度状态发布到wiki、内部博客或者邮件列表。让其他成员及时了解你的进度,适应大家的节奏。
  • 如果你是团队或者部门领导,并且感到在会议上花很多时间去解决小问题,那就放权,交给下属。这不仅仅腾出你的大量时间,而且让团队成员积累更多经验,更快成长。请务必授权下属进行部分或者全部决策,否则,解决问题的人会要求你不断参与进来。同时务必要支持下属的决策;他们需要自信来进行决策,表达你意见的时候不要到这怀疑的情绪。
  • 如果你老板想要指导“哪些正在做”或者“哪些已经完成”,那最好找个工具汇报这些事情。建立一个随时更新的任务列表,这是一个团队成员花一点点精力就可以做到的小任务。
  • 如果“流程”要求你用5个步骤完成任务,但大部分是麻木机械的工作。(比如生成改变日志或者发送邮件提醒),那你就发挥你作为“码农”的特长,尽量自动完成。想一下,如果有个简单任务要求你每天要花10min完成。那你花2小时写个脚本把这个任务简化到2min,“浪费”的时间只需要15天你就赚回来!!!

发现自己经常由于email或者即时通讯消息所干扰分心?那就关掉这些应用!作为程序员我们的工作需要集中注意力,任何小干扰都可能搞乱我们的流程,打乱节奏。这种在电脑上通过文本的交流方式有一个最大的优点,那就是“异步”;这意味这你可以在任何空闲进行交流。一些人采用“番茄工作法(http://pomodorotechnique.com/ )”来解决这个问题。虽然我建议你试试,但是这并不适合每个人,我试了试觉得很难坚持。(译者:卧槽,那你还推荐)

你可能感兴趣的:(You Are Not a Software Engineer (Yet))