缘起
这是一个受朋友拜托的项目,希望以外包的形式为他们从零构建一个 自治系统的 Framework,由于朋友也在创业的艰难时期,难以拒绝,遂接受在之后用业务时间为他完成这个 Framework,并支付一定薪水。
但其实在一开始的时候,我并未很好的意识到项目的难度。笔者甚至一开始认为这只是封一个 SDK 和一点简单逻辑。所以很快过完几轮设计后,开始构建 Demo 验证想法,但是在 构建 Demo 的过程中,发现很多问题,逐渐放慢了速度。这时其实已经感觉到自己想的太简单了,由于是自治系统,里面涉及很多自纠正、异常处理和兼容的逻辑,这种东西需要经过大量调试,经常一个问题一调就是一两天,而且由于是业余时间作业,经常回顾完上下文就到 12点后了。
从这里开始,进度明显放缓,压力开始增大,但是由于进度已经到了这里,时间也过去了,已经难以停下来。
而灾难从这个时候开始,由于早期 构建 Demo 的时候,为了验证效率选择了使用 Golang 来构建,也是因为 Golang 在这块相关第三方 Package 比较完善。但在 Demo 验证完后,需要将 Go 的代码迁移到 PHP 上。而这中间出现了更多早期未预期的事情,
- PHP 的 Package 设计
- PHP 进程运行的 内存泄漏
- 迁移中的各种类型 和 字段错误
- 。。。
上面每一项都需要再额外花更多时间来完成,朋友开始催进度,压力开始逐步加大。笔者开始出现消极怠工的情绪,这进一步加剧了问题。进入螺旋式的恶性循环。
结
在五月快要到来的时候, 以粗暴的方式,结束了过去四个月的梦魇。
这些问题的本质原因是,在一个 500CC 宝特瓶 里塞入了一只成年的缅因猫。过度乐观的估算了工作量和自己的时间。应该要更清醒和理智的去评估,如果感觉比较难以完成就该果断的拒绝,即是保护自己,也是保护朋友。不至于造成后续的一地鸡毛。或者在中间完成设计和 Demo 的时候,就直接交付设计给 朋友。或者当下直接拿朋友给的薪水招一个兼职来完成代码书写。 虽然当时会些许困难,但当下的处境会好的多得多。优柔寡断。
没有那样的时间和精力,就不要接这样的工作。虽然笔者当时看着想挑战下,但是事实证明这样并不好,不仅笔者的精神状态很差,也影响了很多事情。估期还是麻烦尽量保守。
另一个方面,笔者也过高的设置了朋友的预期,预期管理变成了无限托高预期。这也是造成后期 压力爆表的原因之一。缺少沟通也是问题之一。
以一个软件工程师的角度来讲,这些都是最基本的职业素养,而软件工程专业的我,却处理的稀烂。会很沮丧的发现,这个 Project 中的所有问题,其实单个处理的话,都很简单,笔者都能够轻松搞定。但项目就是这样稀烂。说实话很沮丧,非常沮丧。甚至自我怀疑。
很难接受,很想尽力弥补。但弥补只是无法释怀这些沉没成本和无法接受失败,很可能会让事情和处境都变得更差。很想逃避,很想再也不联系,找个理由说这不是我的错。
但我必须接受失败,这个项目就是我搞砸的,理由怎么样都好,一定是多方都有过错,但我需要不断检讨自己的过错。面对各种指责都好,了解经过和不了解经过都好,我都得接受这些指责,这就是这个失败的代价。
Don’t sorry,Do better。交了学费就要十倍赚回来。明天的太阳依旧会照常升起,明天的晚霞依旧会十分美丽。地球并不会在此刻停止转动,未来还在等着我们。