08怎样平衡软件质量与时间成本范围的关系

《从软件工程的角度解读任正非的新年公开信》这篇文章中,我已经提到了“软件项目管理金三角”的概念。由于这个内容对于软件工程来说,非常之重要,所以我今天特别展开再讲一下。

你会发现,在实际的软件项目中不乏这样的例子:

  • 一个项目,正常估算,要三个月才能完成,但是老板或客户要压缩到一个月完成,而你不知道如何说服他们;

阅读全文

07大厂都在用哪些敏捷方法-下篇

在上一篇文章中,我们一起看了一下大厂和敏捷相关的一些流程规范,同时也为你留了一道思考题:

如果每周一个Sprint,怎么保证每周都有交付,还能保证产品质量?

所以在这一篇中,我们就以每周一个Sprint的小项目组为例,看看它的日常是怎么应用敏捷开发的。

阅读全文

06大厂都在用哪些敏捷方法-上篇

在我还是一个野路子程序员,到处接私活做网站时,就开始好奇:大厂都是怎么开发软件项目的?直到毕业后,我前前后后加入了若干大中小型企业,包括这些年在美国高校、公司的一些经历,对大厂的项目开发有了比较多的了解。

其实大厂做项目也没有什么特别的,无非就是工程中常见的“分而治之”的策略:大项目拆成小项目,大服务拆成小服务,大团队拆成小团队。

服务之间通过商定好的标准协议进行通信,架构上将大的服务拆分隔离成微服务,大团队按照业务或者服务拆分成小组,按照一定的流程规范保障协作。最终,各个小组要负责的内容其实就不多了。

阅读全文

05敏捷开发到底是想解决什么问题

关于敏捷开发的实际应用,现在无外乎有以下几种常见的情形:

  • 很多团队想敏捷开发,但不知道该怎么上手;
  • 有的团队已经应用了一些敏捷开发的实践,然而效果不理想,不知道是敏捷开发的问题,还是自己实践方式不得当;
  • 有的团队听说了敏捷开发,但是并不知道它是什么。

阅读全文

04瀑布模型之外,还有哪些开发模型

在上一篇文章中,我重点介绍了瀑布模型。你现在知道了,瀑布模型简单易行,对于软件质量是有比较高保障的。但是瀑布模型对于前期需求不明确的项目,很难开展需求分析,后续如果有需求变更,瀑布模型便很难响应。

而且,每个软件项目的情况各不相同,都有自己的特点。比如说:

  • 有的项目风险很高,客户可能随时不给你钱了,得要做好准备,随时止损;

阅读全文

可以这么说:瀑布模型算是现代软件工程的起源,软件工程的发展,很大部分都是构建于瀑布模型的基础之上的。 我们后面所学的软件工程的很多内容,都是源自瀑布模型的衍生,或者其中某个阶段的细分。

我在上大学期间,还并不懂软件工程瀑布模型这些知识。当时我自学了点编程知识,然后开始在外面接点做网站的小活,开发模式非常简单,接到活直接写代码,有问题就改。这样下来居然也做了不少小网站,但是大一点的网站项目就搞不定了,甚至手头的小网站项目,找个同学帮忙都不知道大家该怎么分工。

所以当时我也很好奇,大的软件系统是如何开发出来的?那么多人一起开发一个软件,系统是如何分工协作的?

阅读全文

02工程思维:把每件事都当作一个项目来推进

阅读原文

软件工程是一门用工程化方法解决软件项目问题的学科,其本质也是一门工程学科,这门课的知识在学完后,不仅可以应用在软件项目中,还可以应用于日常生活中遇到的一些问题,Everything is a project。

这句话对我影响很大。我真的开始在日常生活中尝试应用“Everything is a project”的概念,小到做作业,大到完成工作中的复杂项目。

解决这些问题的方式,就是参考软件生命周期和瀑布模型,把一件事情分成几个阶段:分析、设计、实施、测试、完成 ,然后制定相应的计划。这种方法不仅非常有效,让我的做事效率大幅提高,而且让我在看待事情上,能够更全面地、站在更高的角度去思考。

阅读全文

01到底应该怎样理解软件工程

阅读原文

当有人问你什么是软件工程,你会想到什么?

也许你会想到软件,会想到建筑工程,也许对此还没有什么概念。不要紧,在回答这个问题前,我们先来看看软件工程和我们的日常生活有哪些关系。

作为一个程序员,你的日常大致是这样的:早上被手机的闹钟叫醒,然后坐地铁去上班。在路上你会打开微信和朋友闲聊几句,刷刷微博,还会用Youtube看看视频充充电;上班的时候,你打开Mac电脑,用VS Code写程序,用Chrome看网页,下班后再玩几局守望先锋游戏。

阅读全文

作者的图片

TsingChan

万事头开难,好开的始成功的一半

It Is All

中国