1. 让 UXD 成为最有价值的资产 评:UXD指用户体验设计,如果想做SAAS的话,忽视用户体验将是不可原谅的错误 2. 适应更改要求 如果说软件开发中有什么必然性,那就是客户端、顾客或产品所有者在完成所有设计、规划、图表和原型制作后,他们将更改项目的要求。
1. 让 UXD 成为最有价值的资产
评:UXD指用户体验设计,如果想做SAAS的话,忽视用户体验将是不可原谅的错误
2. 适应更改要求
如果说软件开发中有什么必然性,那就是客户端、顾客或产品所有者在完成所有设计、规划、图表和原型制作后,他们将更改项目的要求。大部分项目经理都经过传统的培训,限制更改是这种培训的一部分;这可能会影响产品第一个官方版本的发行。
软件开发的演变速度非常快,以至于在初始开发过程的整个生命周期中,您会发现核心项目管理方法会改变好几次。因此,每个项目都应该准备好实现新的开发方法或者现有方法的后备方法 。
评:这时一条通用原则,无论是企业应用软件还是SAAS软件,应对变更是设计首先需要解决的问题,SAAS则对这方面的需求更为迫切,应对需求变更的手段一般分为两种:使用工具、引擎;设计
工具和引擎:类似数据字典、规则引擎、业务流程工具等。
设计包括:领域驱动设计,设计模式,IOC,AOP等
3. 采用开放的标准
基 于 SaaS 的公司必须考虑采用开放标准,这样在将来迭代时,与其他设备、平台、服务和 Web 应用程序的兼容所需的代码编写工作将更少,也将获得更多的用户。采用 SaaS 应用程序的消费者将使他们能够完成多项工作。
评:已经达成业界共识,OpenAPI是SaaS的方向
4. 设计之前做好线框
从功能的角度看,线框(wireframe) 只是软件程序 UI 特定状态的形象概念,如图 4 所示。注意,不要设计细节。这样做的目的是避免被设计元素转移注意力,使关注点停留在业务功能方面。应用程序的业务工具确定了之后,设计团队就可以接手了;但在美化软件之前必须先设计好功能。
5. 为 SaaS 提供云基础设施
首先,傻瓜都知道网络基础设施对 SaaS 影响巨大。但是,Web 上大部分 SaaS 应用程序运行的基础设施硬件都不充足,无法根据需要扩展。作为开发人员,我们可以使用自扩展的云系统 —— 常常称为 Infrastructure as a Service (IaaS),但这种高级技术的推广速度很慢。
该 技术的采用范围不广很大程度上是因为缺乏该主题的知识。例如,Amazon Elastic Compute Cloud (Amazon EC2) 可以给运行 SaaS 应用程序的公司带来很多节省,但是对 Amazon Web Services (AWS) 基础设施知识的缺乏使许多公司回退到遗留系统,因为那才是他们所了解的。但是,ISP 提供带宽的不断增长为成功 SaaS 应用程序提供了保证,自动根据需要扩展资源的 SaaS 应用程序需要更高的网络性能。
6. 开始编写代码之前生成完整的设计文档
评:敏捷设计,我们既不同意那些整天叫嚣敏捷的狂热分子,结对编程,写了一遍又一遍,号称代码即设计(一般这种情况代码都很烂),也不主张进行全面 的详细设计,每个雷和方法属性都要在编码之前完成。我们推崇敏捷设计,设计一定要有,但要分迭代,设计范围涉及核心框架,核心类和核心方法,敏捷设计覆盖 系统的核心业务逻辑,通过设计可以进行业务表达,但并没有设计开发中的所有细节。
7. 抱住单元测试不放
评:单元测试,重要性总是容易被忽视,在我们的产品中也是如此
|
8. 不要只见树木不见森林
评:性能优化的二八原则,优先去做那些能够大幅改善性能的工作,性能是SaaS应用的头等大事
9. 学习其他成功的 SaaS 项目
从其他成功 SaaS 项目中学习最简单的方法是首先挑选一个乐于使用的 SaaS 程序。然后,找两个或三个所选软件的竞争对手,然后试用一下,写下吸引您注意的具体内容,以及为什么您喜欢或不喜欢某个应用程序。
|
10. 构建可用原型
在软件开发中,顾客通常希望在投资实际开发之前先看到对概念的验证。原型只是一个概念验证。聪明的 SaaS 开发人员会利用创建原型的时间。想想这段时间能做多少工作:
评:这种方法的优点很多,但是有两点对于 SaaS 的成功很关键:在构建实际产品时您已经领先很多;在此基础上构建原型时往往能够看到设计模式的冲突以及架构设计的不足。在实际开发产品之前 ,可以做必要的修改。
另外,SAAS应用与项目交付不同,SaaS是线上产品,它应该获得更长的发布周期和更宽松的开发环境