大部分Boss都不理解的关于软件开发的七件事一份简短的清单

正如博主 John Sonmez 说道的,但即使是最出色的老板,似乎也常常总是不能理解软件开发。听起来熟悉不?如 Sonmez 所提到的,管理层和其它非技术人员常常理解不了一件事,提高产量将不可避免的导致低质,从而导致技术债务的加剧。确保你没有杀鸡取卵,你需要明白这一点。根据《高效能人士的七个习惯》作者 Steven R. Covey 的观点,这意味着要在产量和产能之间保持平衡。

互联网公司与团队的技术选型新技术、成熟技术和小众技术

现在同一个问题,解决的方式有很多种。同样是应用层开发,有数不尽的语言和框架可以选择。这虽然有好处,但也带来了诸多麻烦。比如,团队成员对技术选型意见的不一致;解决同一问题工具选择周期的增长;很难客观完整的对比可选方案;社区对哪个语言、哪个框架更好争论的永不休止。究竟如何做技术选型是困扰很多人的问题。之前我也有很多疑惑和思考,最近整理如下。

软件开发跟软件工程有多大的距离?开发不必成为工程

几年前,有一个关于软件开发是否可以被称为软件工程的大辩论,这源于一篇名为《Software Engineering: An Idea Whose Time Has Come and Gone?》的文章,作者是 Tom DeMarco。DeMarco 认为,短命的软件工程已经死去,这对于所谓软件“变革”的创建并不重要。DeMarco 的论文认为由于缺乏测量力度(和“软件”一词所代表得深度和广度),软件工程已经走向了灭亡。

一个能活19年的Bug,还算是Bug吗?应该顺其自然

近日,各大网站,包括新浪、腾讯、网易、搜狐都报道了一则关于微软宣布修复了一个存在了19年的安全漏洞的新闻。对于一个软件制造界外的人来说,这是一个大快人心的消息,就跟一个隐藏了19年的纳粹分子终于被抓住的新闻一样轰动。但以程序员为职业的我,听到这样一个消息,却有一种非常不解、甚至是荒谬、搞笑的感觉。从软件生产的角度讲,如果一个bug能存活19年,那它还是个bug吗?

软件开发里的一些二八原理80:20原则

Jim Bird是一位经验丰富的软件开发经理、项目经理与CTO,专注于软件开发与维护中疑难问题的解决、软件质量管理与安全领域。在过去的15年间,Jim曾管理过团队建设与高性能的财务系统。他的主要兴趣在于如何帮助小团队更有效地构建真正的软件:高质量、安全、高性能且易使用。近日,Jim撰文谈到了如何在软件开发中应用流行的80:20原则,颇具代表意义。

三个重要的软件开发指导法则你必须知道的软件开发原则

在本文中将介绍 3 条重要的软件开发原则,你可能已经知道,也可能只知道其中一条。这些原则看似很简单,但实施起来会很难。无论如何,这些原则提供了一个管理复杂软件项目的强大的途径。当涉及到真实世界中的项目开发时,你会发现这些原则都是非常有用的。原则1:不要重复自己(Don’t Repeat Yourself,DRY 原则)。这个原则非常重要,换言之,就是不要写重复的代码。

软件开发其实跟木匠做桌子差不多有质量、可信赖的软件就像有质量的桌子

做一张桌子看起来十分的简单。任何人都可以做,不是吗?找个大块的四方形木板,四个等长的木头柱子,四个钉子和一个锤子。把四个柱子钉到四方板的四个角上,你就做成了一个桌子。当当当!现在来让一个真正的木匠为你打造一张桌子。首先他要花时间跟你讨论桌子的用途和功能——用在室内还是室外,厨房还是餐厅,主要用来展示还是使用,它需要能够承受多大的负载。

软件外包的各种问题很少见到外包能完成预定的目标

很多公司为了节省预算而选择外包 IT 相关的工作。这看起来不错,因为你打一个电话就有人过来帮你解决 IT 问题,而不用雇佣一帮人坐在那里等待问题,也不用担心福利,员工管理等问题。但外包也往往带来很多问题,这里列出了七条。公司自己的 IT 部门对整个公司的 IT 系统是最熟悉的,因为他们很有可能就是创建这个系统的人。

软件开发要成功必须注意的10个原则我的10个开发原则

在从事软件开发若干年之后,我已经对“软件应该如何设计”有些心得。实际上,我有了这样一个结论:所有的事情最后都浓缩成10个原则,如果我们很好地执行这些原则,任何软件开发都应该会取得成功。“如果我们没有关注客户……其他人将会取代我们。”从客户的角度出发,客户首先会把焦点集中在产品开发的真正价值,其他方面(例如概念、需求、技术等等)在项目中是次要的。

软件开发在未来十年的趋势徐昊谈架构、数据、语言和方法

在过去的十年里,互联网逐渐成为人类历史上所构建的最大规模,最复杂的应用。数以亿计的应用通过互联网交互和整合以支持同样数以亿计的用户使用。然而十年来广大开发者和架构师往往会忽略这样一个事实,整个互联网架构在一组极简单的概念之上。Web是一组资源的集合,每个资源有独立且唯一的标识。资源可以有不同的表现形式和状态。资源通过HTTP和开放的文本格式进行整合。