自由程序员的 3 个开发技巧

by admin on 2020年5月1日

我们有三个系列的小技巧要分享:与你的客户沟通,保护你的声誉以及解决常见的自由职业问题。下面让我们开始吧!

原文:Freelance Software Development Tips

1.与你的客户沟通

作为一个自由职业者,这是你最重要的事情之一!我发现客户更认同以下的做法:

图片 1

可靠:做一个可靠的沟通者,及时回复电子邮件和回答问题。另外,通过发送定期状态报告和/或让他们第一时间知道你完成了一个阶段目标,可以避免让你的客户猜疑你究竟在干什么。

礼貌:礼貌和专业,但同样重要的是,还要友好。毕竟我们是人!

诚实:不要说谎,信守诺言。不要承诺那些你不打算履行的承诺。例如,不要在项目结束时承诺实现一定的功能,如果你已经知道,就算不加上这个功能,在预计期限内完成项目也是有困难的。

不要隐藏问题:如果问题很严重和/或无论无何迟早会暴露出来,那么尽快通知客户问题。

跟踪你的时间:如果你按小时收费的话,那就应该跟踪你的时间,并定期分享给客户。如果你每个项目都采取统一的收费率,那么它可以帮助你找出估计工作量和实际工作量之间的差异。

提供技术咨询:如果你发现客户做了错误的技术决策时,一定要对他们指出这一点,而不要应该让他们在错误的路上越走越远,直到举步维艰。一起讨论决策,但要记住,最后的决定权一定以及始终在客户手里。

提问:不要害怕问问题:这可以避免你和你的客户走弯路。有疑问,就问,遇到有歧义的地方,不要按自作主张自以为是。当需求没有正确定义,或缺少重要细节的时候,让客户提供更多的细节,或给出你的版本,这样对方就可以立即发现错误。

发布客户期望的内容,而不是你认为他们期望的内容:在软件开发中,常常存在着一种期望代沟——客户的期望和他们真正得到的结果之间的差异。当事情未指明的时候,消除歧义,避免假设是减少这种代沟的好方法。

例如,如果需求上声明,用户必须通过提供一个电子邮件地址和密码才能进行注册,而另一条则说要求用户通过输入用户名和密码登录,这时你会发现这里有
一个不一致的地方:注册需要电子邮件(而不是用户名),而登录期望使用用户名。那么应不应该在登录时使用电子邮件,或者在注册时也要求输入用户名?除了客
户,没人能回答这个问题。

解决问题:碰到问题,那就专心致志地去解决这个问题,而不是在一边怨天尤人。

图片 2

图片 3

2.保护你的声誉

作为一个自由职业者,这是最重要的资本!俗话说,好事不出门,坏事传千里。

我认为,其实我们应该铭记好事,遗忘坏事,但这个世界就是这么残忍。如果你有一个不好的名声,那么就可能很难找到项目,尤其是网上的自由职业者,因为你的名声是公开的。

几年前,我在Upwork上雇了一个开发人员帮我做一个JEE项目,虽然他没有JEE的特定经验。我愿意支付他去学习他所需要的东西,并且安排的任务也简单,是一个非开发任务,技术写作。

大约一个星期后,他改变了主意,说JEE太复杂了。更糟的是,他开始毁谤我和我的客户所选择的框架,用一些令人非常反感的话。即使这样,他依然要求我向他支付所有他在这个项目上花的时间,并且指责我让他工作于他不想要处理的技术。

最后,我只支付了他一小部分的时间费用,并且还在Upwork上给他写了长长的负面评价,我敢肯定这将破坏他在该平台上的声誉。我是有意的。请不要误解我的意思:我不是为了报复。我只是觉得我有必要提醒未来的潜在客户,他们应该预见这个家伙的服务水平和专业性。

保护和提高声誉的最好方法就是保证客户的满意!

那么该怎么做呢?有一种方法是暂时将自己想象成是客户。我从Freelancer和Upwork等平台上雇过几次开发人员,感谢这些经历,因为这让我懂得了:

  • 如何从若干候选人中选择最好人选

  • 在工作进行中该期待什么

  • 当碰到开发人员不发送更新、不回复电子邮件时,会有多么沮丧

  • 当开发人员总是让你了解内情,能够预料到你的问题,并提供更新时,会有多么开心

当然,你不必为了表现得像一个客户而真的去雇佣开发人员。这成本太高了。
:]

但这种代入的思维可以帮助你从客户的角度看问题。尤其是当你故意做一些事来隐藏问题或者欺骗客户的时候。有一句我最喜欢的格言是:己所不欲,勿施于人。

图片 4

这是三篇独立程序员系列文章的最后一篇。在 第一篇,
我们整理了一些成为独立程序员的优点和缺点,帮助你决定自己是否适合成为独立程序员。在
第二篇,我们介绍了怎么成为一名独立程序员。在这第三篇,将分享一些过去几年里我们作为成功的独立程序员所学习到的经验和技巧。

3.解决常见的自由职业问题

和任何职业一样,自由职业也有危险区域。以下就是关于如何预测和预防最常见的问题。

本文分成三大块来讲述:

解决前期所有模棱两可的问题

上面我就提到过,让客户满意的关键方法是明确客户的期望,消除有歧义的地方。项目一开始可能充斥着很多关于费率,酬劳,付款条件和时间期限等有歧义的地方。一定要正确地解决这些问题!

  • 和客户的沟通
  • 维护自己的名声
  • 怎样解决一些常见的问题

不要在稀里糊涂的情况下签署保密协议

我曾被多次要求在不告知相关项目任何细节之前签署保密协议。我的态度就是拒绝,即便有失去项目的风险。

为什么呢?问题就是,在对我需要保密什么都不知道的时候,我怎么能签署保密协议?如果我已经工作过的项目和这份保密协议发生了冲突怎么办?

如果你遇到这种情况,那么不妨问问客户是否能给一个项目的大概想法,不需要透露太多——只要足以让你评估你是否可以负责任地签署这份保密协议即可。

是什么样的项目?是社交app吗?——哦,好吧,我想我应该告诉你我最近开发过类似的项目。

是什么样的项目?一个用来计算太空火箭的轨迹和油耗的app?——那行,我可以签署保密协议。我敢肯定我从来没有参与过任何哪怕是一点点相似的项目。

图片 5

阅读和理解合同

这是显而易见的,但是这个话题要格外小心地处理。合同是你和你的客户之间具有法律约束力的协议,但由于通常是你的客户要求你签署得,所以合同主要用来保护他和他的项目,而不是你。

这里很难给出建议,因为没有两份合同是一样的,最重要的是,我不是律师。但这里有几条通用的指导:

  • 仔细阅读合同。

  • 再次仔细阅读,然后再来一遍!

  • 只管去联系有经验的律师来帮你审查合同,尤其是有任何困惑,不清楚或令人不安的地方。诚然,法律咨询是昂贵的,但最后如果有用的话,绝对物超所值。

  • 如果你发现任何错误,或含糊不清不利于你的条款,那么只管提出修改。

  • 如果客户拒绝修改,那么退一步去寻找其他的项目。

第一个部分要谈的就是和你的客户沟通的问题。作为一名独立程序员,这是要做对的最重要的事。我发现客户喜欢有以下品质的人:

做好突然没工作的准备

没有提前通知,项目就停了下来,这是自由职业的属性之一。我的对策是一次至少接两个兼职项目,而不是单单一个全职项目。

每一个项目都是其他项目的后备:如果其中一个被中止,我还有其他工作。毕竟,一半收入总比什么都没有要好。

当发生这种情况时,你可能会感到沮丧
——至少,这有时会发生在我身上。我知道沮丧是正常的反应,并且当我觉得自己调整好心态之后,我会去寻找其他的挑战。

有时候,如果一两天过去了,我还是没有行动的激情,那么我会选择和家人一起共享天伦之乐,也许会去做一些我平时因为工作太多而没办法做的事情,比如参与业余活动(近日,我在学习打鼓:]),学习新的东西或看书。

最后,我不知道是运气,巧合,还是其他什么东西。当项目结束时,无论是突然发生的还是因为其自然而然地到了时间期限,我经常收到主动和意想不到的
offer。例如上一次,在项目突然被冻结的第二天,我在Stack
Overflow上收到了一个方案,过了几天之后在LinkedIn上又收到了另一个。这两个都是新的联系人,而不是朋友的朋友。

不知道在你的身上是否发生过同样神奇的事情。

然而,无论是否是主动提供的offer,我会保持搜索,保持申请项目,询问我的联系人等,直到我终于找到一个值得我下功夫的新项目。这个过程有时需要几天,有时甚至要几个月。

如果你想了解更多,这里有一些有趣的读物:

  • Staying motivated as a work-from-home
    developer

  • Interview to Piero
    Toffanin, a
    former digital nomad

  • Why you shouldn’t be scared of going
    freelance,
    by Ignacio Nieto

  • Do’s and Don’ts of a Freelance
    Developer,
    by Ignacio Nieto

  • Fixed
    quotes,
    by Mariano Abdala

  • Busting the Top 5 Myths About Remote
    Workers,
    by Scott Ritter

  • How to Travel While Working: The Traveling Engineer’s Survival
    Guide,
    by Breanden Beneschott

  • Don’t Be Fooled: Calculate the Real Cost of Employees and
    Consultants,
    by Hyam Singer

有人曾推荐给我《Serial
Winner》,一本并不是专门针对自由职业者,但任何想要成功的人都必须阅读的伟大书籍。我还没有看过,但我已经添加到我的阅读列表。

另一本是我个人建议的,并非全部有关于自由职业,但在管理财务状况方面比较实用的书籍是《The
Richest Man in
Babylon》。

欢迎留下任何你想分享的问题或建议!

译文链接:
英文原文:Freelance Software Development
Tips
翻译作者:码农网 – 小峰

成为一个可靠的联系人,能及时的回复邮件和回答问题。同时,避免让客户担心你的进度,你可以给他们发送常规的进度报告或者当你完成一个目标后让他们知道。

礼貌并且专业,友好也一样重要,毕竟我们是人!

不要说谎,总是遵守诺言。不要许下做不到的承诺。比如,不要在项目快结束的时候答应实现一些功能,如果你都知道你连按时项目都已经很困难了。

如果问题很严重或者迟早会暴露,尽快告诉客户。

如果你是按照小时收费的,记录你的时间使用,并且经常告诉你的客户。如果你是按照项目一次收费的,这也可以帮助你评估你的效率。

如果你发现客户做出了一个错误的技术决策,一定要告诉他们而不要让他们陷入困境。和他们讨论这个决定,但是要注意的是,最后还是让客户自己定夺。

不要害怕提问,这可以让你和客户在未来省下不少心。如果有疑问,总是去问清楚,不要自己假设客户想要的是这样。如果一个需求定义的不是很清楚,或者缺失了一些关键的细节,要求他提供更多的细节,或者告诉你他想要的结果。这样他就能马上指出一些错误。

在软件开发里,总是有一条沟:沟的这边是客户期望的结果,沟的那边是最后他们得到的结果。消除歧义并且在不明确的时候不要自作主张是缩小这个沟两端距离的好方法。比如,如果一个需求说:一个用户注册需要提供邮箱和密码。但是在另一个地方却说:一个用户登录需要输入用户名和密码。你会发现两个需求有冲突:注册时填的是邮箱,登录却要输入用户名。是把邮箱当做用户名还是在注册时需要填用户名?除非客户自己说明否则没人知道。

当出现了一个问题,集中精力去解决它而不是去抱怨。

这个部分要分享一些怎么维护自己的名声的建议。作为一名独立程序员,这是你最重要的资产。正如老话说的,那些你做过的好事早就消散在风里,而坏事永流传(good
things are written in sand, bad things in
stone)。我们都希望事情不是这样,是反过来的,然而世界就是如此。如果你的名声不好,你就很难找到项目,尤其是在你的名声是公开的社交网络上。

最好的维护提高你的名声的方法就是让你的客户满意。

怎么样做到呢?一个可行的方法是临时把你想象成一个客户。我曾经从一些平台上(Freelancer、Upwork)雇过几次独立程序员,所以以下几点有切身体会:

  • 怎样从几份申请中选择程序员
  • 期望工作的进展是什么样
  • 当开发者没有告诉我当前的进度,没有回复我的邮件我有多郁闷
  • 如果开发者总是和你保持联系,回答你的问题,告诉你进度是多么开心

当然你真的不必为了体验客户的感觉真的去雇两个人,这还是挺贵的 。:]

如果你时常从客户的角度来思考会很有帮助。尤其是当你刻意隐瞒一些存在的问题或者撒谎这样的行为。这辈子我最喜欢的一句话就是:己所不欲勿施于人(没想到老外也知道这个。我天朝文化真是经久不衰)。

最后一部分是解决独立程序员常见的一些问题的建议。

就像所有的职业一样,独立程序员也有危险的区域。这里告诉你怎样避免一些常见问题。

在上面里我提到,让用户满意的一个关键就是明确客户的期望,消除歧义。项目的开始阶段也有很多不明确的地方:开发速度,开发费用,支付方式和交付日期。这些一定要谈的非常清楚。

有好几次客户在没有向我展示项目的任何信息就要我签署保密协议。即使冒着丢掉的风险,我也总是拒绝。

为什么呢?关键是:我怎么能签下一份不知道具体详情的协议,让我自己去为它保密,在没有完成前都要保密,我连要保密的是什么我都不知道!如果我一开始就已经违反了保密协议呢?

如果你也遇到这样的情况,请求客户告诉你这个项目的idea是什么,不需要太多的细节,只要让你能有信心能做到保密。

这个项目是做什么的?一个社交约会APP?额….我应该告诉你们我最近在做着一些相似的项目。

看起来这是显然的,但是这是需要一个特别认真对待的话题。一份合同是受法律保护的你和客户间的协议。并且通常都是客户要求你签的,这份合同通常总是更关注保护客户和他的项目的权益,而不是你的权益。

这很难给出建议,因为没有两份合同是一样的,而且更重要的是,我也不是一个律师。但是有一些通用的忠告:

  • 仔细的读合同。
  • 再仔细的读一遍,然后再读一遍!
  • 如果某个部分不明白或者不清晰,一定要找个有经验的代理人帮你看看。是的,虽然获得法律的建议要花费一些钱,但是这些建议可能最后为你节省更多的钱。
  • 如果你发现有一些错误,歧义或者你不喜欢的条款,不要害怕提出来。
  • 如果客户不同意你提出的要求,放弃去寻找另一个项目。

有时你在一个项目完成时找不到下一个项目是很正常的情况。我的对策就是保证自己至少同时在做着两个可以兼顾的项目,宁可放弃一个可以专职的项目。

这样每个项目都可以为另一个项目当做后备:如果一个结束了,我还是有项目可以做。毕竟有一半收入比完全没有好。

当真的发生这样的情况,你可能会很伤心,至少我有时会这样觉得。但是我知道这只是一种正常的反应,当我感觉我状态正常了我就开始找一些其他有挑战的事。

如果我依然没有激情状态不好,我就会让自己休息一两天。我会和家里人花更多的时间相处,也可能做一些我平常没法做的事,因为总是有着大量的工作,比如一些休闲活动(我最近在练习打鼓:]),学习一些新东西或者读读书。

最后,我不知道是因为运气好,巧合还是其他的什么。当我的一个项目结束的时候,我经常就收到主动邀请我的offer。上一次,比如,在一个项目突然暂停后的第二天,我就接到Stack
Overflow的邀请,在那之后的几天又收到LinkedIn的。都是一些不太熟的人,不是朋友或者朋友的朋友介绍的。

我希望这样的事情也能发生在你的身上。

然而,无论有没有主动的offer,我会坚持搜索,申请项目,询问我的朋友等等。知道我有一个新的项目可以做。有时会花几天时间,有时也能要几个月。

我希望以上提到的这些能对你有帮助,如果你在考虑是不是要否要成为一个独立程序员,或者已经是了正在寻找一些经验建议。

如果你想要了解更多的东西,下面是一些可以提供的资源:

  • Staying motivated as a work-from-home developer
  • Interview to Piero Toffanin, a former digital nomad
  • Why you shouldn’t be scared of going freelance, by Ignacio Nieto
  • Do’s and Don’ts of a Freelance Developer, by Ignacio Nieto
  • Fixed quotes, by Mariano Abdala
  • Busting the Top 5 Myths About Remote Workers, by Scott Ritter
  • How to Travel While Working: The Traveling Engineer’s Survival
    Guide, by Breanden Beneschott
  • Don’t Be Fooled: Calculate the Real Cost of Employees and
    Consultants, by Hyam Singer

有人给我推荐过:Serial
Winner,一本不是专门给自由职业者的看的书,而是给那些希望自己总是成功的人的书。

还有一本是我的个人推荐,和自由职业者完全不相关但是有好几个地方都激励了我,是关于管理你的资金:The
Richest Man in Babylon.

欢迎关注我的微博:@没故事的卓同学

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图