当前位置:网站首页>Ten wastes of software research and development: the other side of research and development efficiency
Ten wastes of software research and development: the other side of research and development efficiency
2022-07-01 04:22:00 【KerryZhu】

“ Two dozen programmers ,3 Year time ,4732 individual bugs, And the relentless pursuit of extraordinary software ”
《 Dreambreak code 》 This book , I saw it ten years ago , Read it in one breath . I was still Cisco( Cisco ) Work , I feel that the R & D team has made mistakes , In this book, you can basically see .
That year Lotus 1-2-3 Designer Mitchell Kapor, Leave Lotus After that, the open source application foundation was established (OSAF), Recruited a group of great programmers , Develop the so-called revolutionary next generation personal information management system --Chandler. This team seems to have no shortage of money 、 There is no lack of technology 、 No lack of experience , But we can't release a seemingly simple software .6 Years have passed ,Chandler Reluctantly struggled to release 0.7 edition , Spend millions of dollars , But it failed in the end , Dreambreak code .
In a 6 In the marathon of , Made a series of mistakes , As a result, the promising project was half dead . for example ,Chandler The project members decided to use P2P Architecture to share calendars , But no effort has been made to design relevant algorithms or protocols , Instead, spend a lot of time discussing Chandler The interface of , This drag is a few months , Last P2P Architecture is completely abandoned , It's a great waste . Do something like this , Then it was overthrown , It is also common in software development .
The last one discussed Negative list of software R & D Efficiency : Which is the number one enemy ? today , Discuss the other side of software development effectiveness , The opposite of software effectiveness , Causing low software efficiency “ waste ”. Waste can be divided into :
Direct waste : Unnecessary development costs or directly perceived waste , Such as ( Code that nobody uses ; Commented out code , Functions that have never been used 、 Over testing, etc ;
Indirect waste : Not directly visible development costs , Such as inferior quality 、 Code complexity 、 The extra cost of inefficient communication .
It doesn't matter if it's a direct cost , Or indirect costs , Don't look at the cause of it , But to see the results it produces , I summarize it as ten wastes .
The first 10 A great waste : The work done did not bring benefits into play in time
for example , The finished code is not submitted to the code base in time to build , In the developer's local machine ; The tested functions have not been delivered to users yet , Equivalent to in the company's inventory , There is no benefit .
The first 9 A great waste : Switching between different roles or tasks
for example , One person participates in multiple projects , Need to switch between different tasks , Familiar with too much business and project background , Often switch thinking 、 Switch virtual workspaces , It will cause more time waste .
The first 8 A great waste : Unnecessary handover in software
Handover of tasks in software , Naturally, it will increase the learning cost , Increases the cost of communication , Although there is inevitable handover in daily software development , But unnecessary or excessive handover , Will bring waste , for example :
The personnel turnover rate is relatively large ( If higher than 20%), Work handover between the old and the new
The transition between developers and testers , Such as development 、 Testing is two relatively independent teams ;
Handover of software from development to deployment ( If effective DevOps, This kind of cost is very low )
The first 7 A great waste : Overwork ( Out of range )
Because of the lack of an effective process 、 Documentation and consistency requirements, etc , The scope of the project or task is not accurately understood in the work , Did work beyond the scope , Or can't do just the right thing , Including over management 、 Over testing 、 Write too many documents 、 Over communication ( Too many meetings ) etc. .
The first 6 A great waste : wait for
Many people wait for others to work , For example, the communication and cooperation of the team are not active , Wait for others to come to the door ; There is no tacit cooperation between development and testing , The test waits for the development to submit a new version ; The links are not well connected , There will be waiting in the middle . Even in a team or a job, there is waiting , For example, continuous testing is not achieved , There will be waiting . Sometimes the test environment is not ready , Can't test , There will also be waiting .
The first 5 A great waste : Make mistakes again and again
No root cause analysis , Headache doctor 、 Foot pain cures the foot . Some people in the team don't make mistakes , But others do it again ; Some teams don't make mistakes , But other teams do it again ; Mistakes can be all kinds of , Including bad planning 、 Wrong document version, etc .
The first 4 A great waste : Repeat the wheel
There are open source tools or mature commercial tools on the market , It is not used directly , Or buy tools directly , Instead, you develop it yourself .
The first 3 A great waste : rework
Due to the lack of unified specifications 、 Complex system 、 Weak personnel ability , Lead to inferior quality 、 There are many defects , Cause redesign 、 Rewrite code , It's all rework . Excessive code refactoring 、 Regression testing and so on are all classified as waste caused by rework .
The first 2 A great waste : Useless functions and code
Useless functions and code , similar “ overproduction ”, According to some statistical results , In existing software applications , As many as 2/3 Features are rarely or never used . Including code that nobody uses 、 Commented out code, etc .
The first 1 A great waste : The direction of the whole product is wrong
For user needs 、 Wrong direction of business understanding , The whole product failed after launching , Nobody uses .
Reference resources :
Hit the soul : The first principles of software development and 10 Double efficiency
Negative list of software R & D Efficiency : Which is the number one enemy ?
Who is the number one enemy of software development ?
Welcome to click The questionnaire system Take part in the questionnaire , Thank you very much
边栏推荐
- 283. move zero
- Hololens2 development environment building and deploying apps
- 高并发下接口幂等性如何保证?
- 不同性能测试工具的并发模式
- Custom components in applets
- 陈宇(Aqua)-安全->云安全->多云安全
- Huawei simulator ENSP - hcip - Hybrid Experiment 2
- 线程常用方法与守护线程
- How to ensure the idempotency of the high concurrency interface?
- 【历史上的今天】6 月 30 日:冯·诺依曼发表第一份草案;九十年代末的半导体大战;CBS 收购 CNET
猜你喜欢
【历史上的今天】6 月 30 日:冯·诺依曼发表第一份草案;九十年代末的半导体大战;CBS 收购 CNET

MySQL advanced -- you will have a new understanding of MySQL

206. reverse linked list
![[send email with error] 535 error:authentication failed](/img/58/8cd22fed1557077994cd78fd29f596.png)
[send email with error] 535 error:authentication failed

Tip of edge browser: enter+ctrl can automatically convert the address bar into a web address

【深度学习】(4) Transformer 中的 Decoder 机制,附Pytorch完整代码

Usage of AfxMessageBox and MessageBox

JMeter学习笔记2-图形界面简单介绍

这可能是你进腾讯最后的机会了..

Jenkins automatically cleans up construction history
随机推荐
Analysis and case of pageobject mode
1. Mobile terminal touch screen event
嵌入式系统开发笔记81:使用Dialog组件设计提示对话框
What is uid? What is auth? What is a verifier?
Grey correlation cases and codes
离线安装wireshark2.6.10
[recommended algorithm] C interview question of a small factory
LetCode 1829. Maximum XOR value per query
slf4j 简单实现
这可能是你进腾讯最后的机会了..
嵌入式系统开发笔记79:为什么要获取本机网卡IP地址
OSPF notes [dr and bdr]
LeetCode 1828. Count the number of points in a circle
All in one 1086: Jiaogu conjecture
高并发下接口幂等性如何保证?
Common thread methods and daemon threads
PgSQL failed to start after installation
Why is Hong Kong server most suitable for overseas website construction
Knowledge supplement: redis' basic data types and corresponding commands
浏览器顶部loading(来自知乎)