软件开发过程到底难不难覆盖
2021-11-04 04:23:45
软件开发过程到底难不难?
软件开发过程更多地是一个复杂(Complex)问题。在一个产品被开发出来之前,不确定性非常高,团队(包括业务人员和技术人员)对产品的知识也是最少的,而且需要大量的学习和尝试才可以明确下一步可能的方向。不幸的是,很多时候我们需要在一开始(不确定性最高的时候)就为项目做计划。这种从传统行业中非常适合的方法在软件开发领域不再适用,这也是敏捷开发、精益等方法论在软件开发中更加适合的原因。
正因为软件开发事实上是一个学习的过程,我们学习到的新知识反过来会帮助我们对问题的定义,从而带来变化。这里的变化可能来自两个方向:功能性非功能性。
功能性的变化指随着对业务的深入理解、或者已有业务规则为了匹配市场而产生的变化。比如支付方式由传统的货到付款变成了银付款,又变成了支付、支付宝扫码等等。一个原始的电商平台仅仅提供基本的购物服务,但是后来可以根据已有数据产生推荐商品,从来带来更大的流量。这些变化需要体现在已有的代码中,而对代码的修改往往是牵一发而动全身。
非功能性的变化是指随着业务的发展,用户规模的增加,数据量的变化,安全认知的变化等产生的新的需求。比如100个用户的时候无需考虑性能问题,但是100万用户的时候,性能就变成了必须重视的问题。天气预报应用的数据安全性和络银行的数据安全性要求也大不相同。
整合了百度知道的问题和百度百科的格式标准。所以 而在业务提出一个需求的时候,往往只是一个简化过的版本。
非功能性复杂性
这是一个经过设计师精确设计的界面,在它被设计出来之前,用户事实上无法准确的描述出它。设计过程中经历了很多的诸如:
线框图
颜色的确定
交互的动画
信息层次
往复多次之后,界面确定了。在没有仔细思考使用场景的时候,开发会误以为这个功能非常简单。但是如果你是一个有经验的开发者,很快会想到的一些问题是:
在宽屏下如何展示
在平板上如何展示
在上如何展示
即使仅仅支持桌面版,跨浏览器要考虑吗?支持哪些版本?
有些UI效果在低版本的浏览器上不工作,需要Shim技术
除此之外,依然有大量的其他细节需要考虑:
性能要求是什么样的?
安全性要考虑吗?
在络环境不好的时候,要不要fallback到基础视图?
既然涉及发送邀请函,送达率如何保证
与外部邮件服务提供商集成时的工作量
等等。这些隐含的信息需要被充分挖掘出来,然后开发者才能做一个合理的评估,而且这还只是开始。一旦进入开发阶段,很多之前没有考虑到的细节开始涌现:字体的选用,字号,字体颜色,元素间的间距等等,如何测试邮件是否发送成功,多个角色之间的conversation又会消耗很多时间。
小结
软件的复杂性来自于大量的不确定性,而这个不确定性事实上是无法避免的,而且每个软件都是独一无二的。另一方面,软件的需求会以各种方式来变化,而且往往会以开发者没有预料到的方向。比如上面这个小例子中看到的,最后的需求可能会变成将消息以短信的方式发送给号以185开头的用户上。
南宁哪男科医院好重庆看妇科到哪家医院好
上海治疗前列腺炎多少钱
- 上一篇:软件开发网站设计案例欣赏计划
- 下一篇:软件开发过程大型公司软件开发流程牛
-
“90后”女孩魏林玉打造“浪漫”志业:将艺术融入生活
2024-12-09
魏林玉在艺术创作生活空间。 唐启浩 辨 当中新网四川6同年28日电 题:“90后”女孩魏林玉汇聚“怀旧”专注:将艺术创作扎根日常生活 译者称王利亚尼夫卡 脱掉上和
-
四川教师公招:甘孜招914人,医学系岗位占比99%
2024-10-24
2022年6月11日,巴塘人事考试网发布公告,2022年未公开招揽学生914人,其中高中时代学生10名、高中时代学生262名、中学学生600名、幼儿学生42名。 招揽对象为中心雅安
-
相媲美天然钻石,研究人员培育出最大10克拉的人工钻石
2024-10-13
科幻新媒体6月23日讯(刘亚珠) 据悉,经过西田的金刚石被称作红宝石,红宝石十分美丽且绿宝石,普通人是爱人和忠勇的象征性,因此一枚红宝石戒指的单价十分价
-
如何在小学打造一间现代科学教室?
2024-09-26
都说生物科学普及教育是提升全民生物科学专业性、 新建国际化型发逾国家的基础 那么,幼稚园生物科学普及教育 对从小唤起和保护孩子的好奇心和求知欲 培养学生