Software is a focus intensive industry

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

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.


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

查看所有标签

猜你喜欢:

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

C专家编程

C专家编程

Peter Van Der Linden / 徐波 / 人民邮电出版社 / 2008-2 / 45.00元

《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。 书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。全书撷取几十个实例进行讲解,对C程序员具有非常高的实用价值。 本书可以帮助有一定经验的C程序员成为C编程方面的专家,对于具备相当的C语言基础的程序员,本书可以帮助他们......一起来看看 《C专家编程》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具