如何用软件工程方法解决开发难题?

在工作中,大家是否曾遇到过下列情形?

  • 团队辛辛苦苦做出的软件产品,却被客户云淡风轻地评价一句:“这不是我想要的。”

  • 在新的项目中,自己作为系统的主要设计者采用了很多新技术,却发现团队成员的技术水平参差不齐,项目进度不断延期。

  • 每次一到季度或年度总结的时候,自己明明做了很多项目,付出了很多努力,但是被问到这些项目具体取得了哪些收益、对业务有哪些提升时,却顿时语塞。

要解决这些问题,不应只是靠“我应该更努力工作”来解决,更重要的是:你是否意识到这些问题背后的本质?是否也有自己的解决方案?

事实上,在软件开发过程中,已经有了一套相对完善的方法论——软件工程。今天我们就来一起聊聊软件工程到底给我们提供了哪些解决方案或者便利之处。

一、保证软件交付的效率和可靠性

软件开发到底是一门科学,还是一门工程?这个在业界一直是一个被各方争论的热点问题。在我看来,软件开发兼有两者的特点。

  • 从计算机科学角度看,软件开发需要关注软件本身运行的原理,比如时间复杂度、空间复杂度和算法的正确性。我们需要学习这些基本原理,来帮助自身探索正确的分析和建模方法,从而精进开发技能。

  • 从工程角度看,软件开发更多的是关注如何为用户实现价值。我们需要在时间、资源和人员这三个主要限制条件下构建满足用户需求的软件,同时还得不断适应新的技术和新的需求变化。

可以这么说,我们并不一定每天都需要使用计算机科学的知识,但是每天却都需要使用软件工程的知识。不过,因为我们常常容易受到技术思维——打造尽量完美的软件——的影响,而忽略了软件工程的真实效用。

比如,在以下这些软件开发场景中:

  • 为了体现自身技术实力,项目中常常使用“自研框架”,而不愿意采用现有开源程序或者购买稳定合适的组件;

  • 在编码中喜欢使用各种最新技术,而没有考虑代码维护时,团队其他成员能否理解这些代码;

  • 因为上线任务紧急,编码时很少写单元测试,而采用手工测试;

对产品设计和 UI 设计关注不多,需求评审时更注重技术是否好实现,而不太关注用户体验是否更好。

其实,这些问题的本质就在于我们总是只关注局部的具体功能实现,而忘记了具体的功能之间要相互配合来完成一个系统的整体功能。换句话说,在软件开发时,我们总是容易太过于关注局部,而没能跳出局部去看整体

实际上,类似这样的问题在软件工程中已经有了很多具体的解决方案,比如敏捷开发,只要我们能合理利用软件工程的知识,就能轻松解决这些问题。

除了能跳出局部看整体ÿ

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱娃哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值