项目小有进展,发布了新版本,尽管其中都还没法用,只是满足可能对卡普尔及其团队进度好奇的外部软件开发者们的兴趣,但OSAF内部的氛围却完全不同。当长期一筹莫展的项目有所突破时对于整个团队都是振奋人心的。同时我们看到了细节视图对于软件项目的重要性,平时我们觉得只要代码写好就可以了,其实真正交付用户的软件在视图上要求也很严格。
在软件开发编写代码的时候,当你把系统的一块新部件放进去,总要看看之后的5年获10年自己会不会后悔--你是否能拓展它、替代它。总是按照计划执行远没有保持较快进度并清楚做到哪一步来的重要。如果总是往计划里掺水,从而达到目标,就会变成退而求其次,完成的特性更少。白板上的即时贴不仅能够列出软件开发过程中的问题,还同时大概的规划了软件开发的流程,使得程序员们在开发的过程中不至于偏离正轨或者盲目,加上每天的站立会议,我想这样软件发布的时间就会大大的缩短。磨刀不负砍柴工,有了一个好的开始,有了一个好的计划会给整个软件开发带来很多好处。做事要讲究方式方法,好的方法会事半功倍。软件不会像制造水管制造汽车一样,有固定的不改动的规格,甚至永远都不需要改动,但是每一个软件都有各自的不同之处,不能照搬照抄。“开发软件仍属难已有事。做软件难,做一个好的软件更难,但是既然我们选择了做软件,即使在难做我也会坚持下去,慢慢的来,慢慢的做,坚持下去就会成功。
拿到一个大问题,将其切分成为可个别理解和解决的小问题。并无魔法。只是得巨细靡遗。复杂的问题,大的工程往往不是一蹴而就的,我们要有耐心一步步一点点的去解决它。不要瞎猜下一步该怎么走,倾听来自真实用户的建议和抱怨。这些真实用户是在千里之外还是就在眼前并不重要,重要的是拿到实践反馈。我们要凭借用户为自己指引方向。软件之本质困难,仍是强加于技术进步的人类自由意志和不确定性的通行费。这值得我们深思。错误属于人类,计算机不会犯错。我们应尽量去避免错误。为了做软件付出的每份努力都最终注定是不够的,这种思路中有着某种自由度。它意味着总有进一步努力的空间,新一代总会来啃咬难题,某地总有某人欢迎“另一个”程序。我们应该意识到这一点,尽自己努力就好。
这一段时间,团队的各项工作让我意识到软件开发过程是抽象而又艰巨的,不是每个人都能做的一份工作,机器语言不比人类语言难学,开发软件好比建筑工程,一层基于一层,需要的耐心和一份执着。