Software is a focus intensive industry

栏目: IT技术 · 发布时间: 6年前

Industries are usually characterized as labor-intensive or as capital-intensive.

Labor-intensive industries requires a lot of human input in order to produce their output. A classical examples is the industry of services (like restaurants or hotel) or even old manufacturing (where people were building stuff with their hands.)

Capital-intensive industries requires much less human input but they requires a lot of capital in order to produce their output. An example could be building oil rings, insurance companies, energy producers, airlines.

Software does not fall in neither this two categories.

With “software industry” I mean the industry that produce software products, ventures like AWS, Microsoft Azure or Google Cloud Platforms are definitely capital intensive industries. In this post I am talking about software product like Slack, Notion, WordPress, GCC.

Software is not labor-intensive. Not many people are necessary in order to produce good software. On the contrary, Brooks’s law on software project management states that “adding manpower to a late software project makes it later”.

Nor software is capital-intensive. Building a great software product does not requires huge money investments. Computing power is almost free nowadays and the same is true for bandwidth and storage.

What makes or breaks a project, it’s the amount of FOCUS developers can pour into it.

With focus I mean the internal knowledge of all the nitty-gritty details of the software and its surrounding. The knowledge of how the software is used and of how it solve real problems for the users. The knowledge of why it is implemented the way it is. The capacity to add features and fix bugs without breaking the software for a subset of users.

What I defined as FOCUS is not just knowledge of computer programming and data structure, it is much more than just knowing the users, it is much more that testing and CI/CD. Of course those things are important but it is not just that. If it was sufficient, companies like Google, Amazon, Facebook, Microsoft would keep pushing out new flawless software product. But that is not the case.

Obtain and maintaining FOCUS is extremely hard, it requires raw knowledge of the computing fundamentals, a lot of time and experience with the product and having build a strong community that sustains the effort (asking for features, trusting with updates, discuss the general direction of the product.)

Unfortunately people get bored, especially in creative profession, when the product is mature, the job becomes more boring. Maintenance is still necessary and the most efficient person to maintain a piece of software will be the one less interested in doing it.

Moreover, it is a risk for people to be stuck too long on the same project using the same set of technologies. The half-life of a particular technologies is very short in the software industry and developers are aware of it. It is a perfectly rational choice trying to mitigate this kind of risk. On the other hand management, pursuing efficiency, will push the developers to use the same old proven technologies.

Finds the right balance between innovative work and efficient use of time is difficult for people managing projects. Too much innovation and nothing important get done, with developers chasing the new shinny, hyped, project. No innovation at all and developers are quickly alienated by keeping maintaining the same project.

As last point, especially in the software industry, switching companies very often is the strategy recognized to maximize income. This makes even harder to reach FOCUS. If the team that works in a product completely changes in 5 years it is impossible that the team has FOCUS on the project.

Unfortunately there are not easy answer, but is clear that being able to create production grade software is almost a necessity for every medium to big organization.


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ajax实战

Ajax实战

Dave Crane Eric Pascarello / 李锟(网名dlee) / 人民邮电出版社 / 2006年4月 / 69

本书是目前 Ajax 领域最为全面深入的一本著作,其中不仅有对于基础知识的介绍,还有对于 Ajax 开发中重大的体系架构问题的深入探讨,总结了大量 Ajax 开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码稍作修改就可以直接应用于项目开发之中,代码源文件可以从图灵网站下载。本书内容广泛且深入,同时适用于各个层次的 Web 应用开发人员。一起来看看 《Ajax实战》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具