选择java 进入自由开放的国度

随笔 - 49, 文章 - 3, 评论 - 154, 引用 - 1
数据加载中……

我的创业日记1(第一“桶”金)——理解软件产品

         每个创业者都会有第一桶金,这对于创业者来说,是启动资金,是公司能开航的动力;对于听众或者观众来说,有的可能就是奇迹、神话、传奇,等等之类的。对我来说,这第一“桶”金,是我创业的直接“导火索”,同时也是我的启动资金,这中间更多的是我的冲动,是一种藏在心底里长久的一种火苗的突然燃烧。所以对于听众来说,可能比较平淡无奇了。
        公司的第一个项目,也是我第一桶金的资金来源,既然是公司做的东西了,肯定不能象toy软件了,要真正当作一个软件产品来做了,要有需求分析,软件架构设计,数据库设计,编写源代码,测试,维护等环节了。因为刚开始公司就我们两个人,所以我们两个就充当了架构设计师,软件工程师,测试工程师,售后工程师等角色。
       虽然以前也做过很多项目,也和很多人合作开发过,但是真正的流程还是理解的不够,其实在软件开发中这个流程是非常重要的。下面我就以我的亲身体验来说明软件开发中的各个环节,这同时也是我的教训,其中有许多可能也是不对的,希望朋友们给予指正。
       项目描述:是一个生产企业的综合计划管理系统,包括了订单管理,排产管理,令号管理,销售管理,发运管理五个模块,另外还有综合查询等统计信息。
        需求——你受客户的影响有多大?了解了基本需求之后,我做了一个解决方案,其中包括了J2EE架构和.NET架构,并详细描述了各自的有缺点和环境需求,让客户来选择。我向客户推荐的是采用J2EE架构,一方面是我的原因,我想在J2EE设计中积累更多的经验,二是客户的公司的订单的处理将来可以移到Internet,实施E-commerce。当把方案拿给客户以后,我自然的推荐了J2EE模式,但是这个客户他本身还是很了解技术的,他说J2EE比较复杂,将来维护的费用会比较高,另外他也不是太懂,因为以前他开发了公司的网站系统,使用ASP开发的,所以他就建议我们使用ASP开发,一是ASP的环境要求比较低,二是将来他可以自己维护,譬如需要什么报表,他就可以自己加进去。因为是我的第一个项目,所以我也接受了他的建议。说句实话,对于生产企业的管理系统,我还是第一次做,其中的一些流程我一点都不清楚,好多名词更是第一次听说,如“令号”,“排产”等。这也给我写需求造成了困难,在和客户交流了一周多后,我基本熟悉了流程,客户也把数据表的要求写出来了,综合了我所了解的业务后,我写了一篇洋洋洒洒的《需求分析说明书》,这也是我第一次这么完整、规范的一个需求分析。
       架构设计——能设计出一种弹性、合理的架构吗?以前设计的软件,我没有这个环节,直接拿来题目,根据经验马上就开始编码。但我现在是公司了,必须要按照规范来作,即使我做的不好,我也必须加入这个环节。当然要想设计出弹性灵活的架构,不是一朝一夕就有这个功力的,对于一个软件也不是一次就能设计出非常好的架构的。李维在《面向对象设计实践之路》中提到的PFM系统,之前也是为了完成任务而做的,我之前设计的软件可能都是这样的,没有什么架构而言的,现在要对PFM改造,进行重新设计,使之有一个弹性灵活的架构,但也要经过几次反复之后才行。
       界面设计——能设计出简洁美观符合习惯的界面吗?以前不很注意,界面随便搞一下就可以了,以前看了林锐的《Web界面设计》觉得没有什么看的,觉得我都知道,当这次我要真正的要进行界面设计的时候,我觉得他说得好多我可能正要碰到或者将要碰到,觉得很多“规则”还是很有道理的。我不见得要设计出非常有创意的界面,但是我应该设计出标准的界面,不能让用户一看,啊!真难看啊!所以这次我对于界面非常的注重,因为这个是给用户的第一感觉。功能是软件的第一要素,如果软件连客户的功能都没有实现,就别提别的了,当功能实现以后,就要让用户用着舒服,看着舒服,界面一致。软件的界面和写文档一样,有没有用心一看就有结果了。
       程序编码——是反思一下编程技巧的时候了?编码,以前变了很多,C/C++,Delphi,VB,ASP,PHP,JAVA等等,都编过,但那种编码缺少一种艺术性,当然也缺乏规范,那是为了完成任务而写的。但这次不同,这次是做为公司的产品,是代表我公司的形象的,是该反思一下编码的问题了,不能让客户一看我的代码,就觉得我象个业余的似的。以前使用ASP,关键代码和界面一起,显得非常的混乱,即使最后发觉了,也懒得去改了,一个软件到最后,自己都不想看自己的代码了,这种情况在这一次绝对不能出现。我要实现数据和界面的分离,要实现统一的错误机制,实现单一登录,实现灵活而严谨的权限管理等等。
       软件测试——程序员加入了单元测试了吗?是不是应该写出完整的测试用例和测试文档?测试,这是以前根本不当回事的,但这次一定不但要加入这个环节,而且还要建立一套测试流程,不能给客户的软件,出现一些注释,出现一下不该有的错误。我对每个模块建立了详细的测试用例,写了测试跟踪表,写了测试报告,并且我和另外一个开发人员互相测试,也理解了“不能让自己看自己代码”,当然这次测试都是手工进行的,以后要加入自动化测试。
       软件周期管理——能控制住软件的进度吗?这是做为管理者,做为经理应该具备的,要能保证控制住软件开放的进度和周期。这次我也充当了管理的角色,这也是第一次。
       软件交付——软件能让自己满意吗?

       思考:流程、管理对于一个公司是非常重要的,拿软件产品来说,流程和管理的规范应能使得软件的交付更加及时,但是对于刚起步的小公司来说,是一上来就规范呢?还是先按作坊式发展?

(由于时间太紧,细节没有列出,将来补上)
2006年3月4日

下一篇:我的创业日记2(公司愿景)——我们的目标

posted on 2006-03-04 19:16 soochow_hhb 以java论成败 以架构论英雄 阅读(3230) 评论(7)  编辑  收藏 所属分类: 我的创业日记

评论

# re: 我的创业日记1(第一“桶”金)——理解软件产品  回复  更多评论   

保持平常心就好了,有些变化不是一下子可以实现的,公司的发展也是一个日程月累的过程,别给自己太大的压力
2006-03-05 09:30 | shaofan

# re: 我的创业日记1(第一“桶”金)——理解软件产品  回复  更多评论   

我最近也有创业的计划,

可以多交流。


不过,看了你写的东西,我觉得你的东西前途堪忧。
2006-03-06 12:54 | sog

# re: 我的创业日记1(第一“桶”金)——理解软件产品  回复  更多评论   

开始尽量采用简单的架构和过程,创业之初很缺钱,架构和过程都是很耗钱(或者时间)的。
找一种简单可行的方式开始运作,然后把注意力放在业务上,毕竟是在经营一个公司,而不是开研究所。
仅供参考。
2006-04-13 11:32 | 黄金时代已过

# re: 我的创业日记1(第一“桶”金)——理解软件产品  回复  更多评论   

令号可能指工单,又称工令单,制令,work order
排产可能指排程,schedule
2006-04-13 11:39 | 黄金时代已过

# re: 我的创业日记1(第一“桶”金)——理解软件产品  回复  更多评论   

好样的!
2006-08-05 20:08 | 朱开番

# re: 我的创业日记1(第一“桶”金)——理解软件产品  回复  更多评论   

我也经常有这个冲动的,但有些idea不是缺市场就是缺钱,直到现在还没开始,万事开头难啊,如有机会能请教你吗?
2006-08-28 18:01 | 激情燃烧的岁月

# re: 我的创业日记1(第一“桶”金)——理解软件产品  回复  更多评论   

朱开番你在那儿?看到后给我邮件lanqiwen@126.com
2007-08-05 10:42 |

只有注册用户登录后才能发表评论。


网站导航: