当前位置:网站首页>Lean product development - Lean Software Development & lean product development
Lean product development - Lean Software Development & lean product development
2022-07-06 12:47:00 【CODING】
The author of this article : He Wenqiang — CODING Senior solution architect With a line of Internet 、 Unicorn of Internet of things 、 National joint stock banks 、 Cross industry experience in new intelligent transportation, etc , Successive generations Java Senior Development Engineer 、DevOps technician 、 Senior R & D Manager, etc , On the service 、 agile 、DevOps、 Deep understanding and rich practice of container technology .
Lean Software Development
2003 year 《 Lean Software Development 》 The advent of books , It marks the formal introduction of lean concept and practice into the field of software development , Level with agile software development (2001 Agile Manifesto ), Become a new software development method . Agile software development inherits and absorbs many lean ideas and ideas , Lean software development has a significant impact on agile software development .
Lean software development maps the practice of lean production in manufacturing to software engineering , By analogy, the seven wastes in lean production are mapped to the seven wastes in software development .
Seven principles of lean software development
1 Eliminate waste
One of the planners of the field production system, Xinxiang Chongfu (Shigeo Shingo), He pioneered seven types of waste in manufacturing , And Mr. and Mrs. poppendick put it Into the seven waste types of the software industry .
Lean production | Lean Software Development |
---|---|
Redundant processing | Additional steps (Extra Processes) |
stock | Partially Prepared Products 、 Part of the work done (Partially Done Work) |
wait for | wait for (Waiting) |
Carry | Task Exchange (Task Switching) |
overproduction | Redundant function (Extra Features) |
transport | Move (Motion) |
Rework of defective products | defects (Defects) |
- Additional steps (Extra Processes)
Excessive refinement of requirements and unnecessary documentation , Extra steps ( Over handling ) Not just in requirements , It still exists in the code . Many programmers will do a lot in code “ preventive ” Work , For example, foresee possible changes or possible situations , In order to make room for these variables , The result is usually to write some extra code in the code . On the one hand, this approach increases unnecessary complexity , On the other hand, if “ Possible ” It never happened , These codes become liabilities . The emergence of design patterns may alleviate this problem a lot , However, we should always pay attention to whether there is excessive processing in the development process .
- Partially Prepared Products 、 Part of the work done (Partially Done Work)
Partially completed work is the second largest waste in software development . stay Lean Thinking In this book ,Mary Poppendieck One of the seven major wastes in manufacturing “ stock ” Corresponding to the list of requirements in software development , The environment in which she made this judgment was that the software requirements were written in great detail , It is so detailed that it can be directly used in programming , At the same time, these detailed requirements will not be implemented immediately , Instead, they wait a long time in the requirements list . Of course , There is no doubt that this is in software development “ stock ” One of , However, I don't think this is all inventory . There are also some common phenomena, most of which “ Coding completed ” The function of has to wait a long time before being tested , The tested functions will wait a long time before being accepted by the customer , These are all inventories in the software development process .
- wait for (Waiting)
Waiting also includes letting customers wait . Whether it's the customer's waiting , Or wait for each other within the development team , Are worthless things . Waiting will also delay the exposure and resolution of the problem , So to reduce waiting is to reduce waste .
- Task Exchange (Task Switching)
Context switching or searching for information is also a common waste in software development . In the process of software development , Often ask customers to confirm or clarify their needs , We should convey design ideas and technical points to developers , Find team members to understand the progress of the project , We should respond to each other's problems and solutions , In a word, stakeholders need a lot of communication with each other , All these communications are the process of information transmission , Therefore, it is very important to convey information timely and accurately . meanwhile , The situation that development teams often face is that it is difficult to find customers to communicate and confirm their needs , Or have to spend a lot of time and energy looking for all kinds of needed information , Also often encounter embarrassment and waste caused by misunderstanding . The time the team spent looking for information , Does not directly create the value of software , So it's a waste , Efforts should be made to reduce .
- Redundant function (Extra Features)
Additional features are the biggest waste in software development . according to Standish Group Investigation report of , The traditional software development process has created a large number of functional features that people do not need (7% always used,13% often used,16% sometimes used,19% rarely used,45% never used). Implementation of each function , Have to go through the whole life cycle of software development : Demand analysis 、 Design 、 code 、 test 、 Release and maintenance , It takes a lot of manpower 、 Material and financial resources , If people will not use these functions in the end , Then all the input has become a waste . This does not take into account the increased cost of system complexity caused by too many functional features .
- Move (Motion)
Information is moving , The more people handle it , The more places need to be handed over , The higher the cost . So reducing the steps of information movement is to reduce waste .
- defects (Defects)
Defects do not create value , Defects are a major obstacle to value delivery . Defects in software are a waste , If appropriate measures can be taken to reduce Bug Appearance , It can reduce the time of defect repair , Devote more time to customer value creation .
2 To enhance learning
Facing the additional challenges of the development team and the final product size , It can be said that software development is a continuous learning process . The best way to improve the software development environment is to enhance learning . Testing immediately after the code is completed can avoid the accumulation of defects . Not to make more documents or detailed designs , It's about actually trying to code all kinds of ideas . The collection process of user requirements can be simply demonstrated to the end customer , And listen to their feedback to complete .
3 Try to delay the decision
Because software development usually has some uncertainty , Methods based on multiple choices can achieve better results , Delay the decision as much as possible , Until you can make decisions based on facts rather than uncertain assumptions and predictions . The more complex the system is , Then the system's ability to accommodate changes should be stronger , Enable them to have the ability to postpone important and critical decisions .
4 Release as soon as possible
In an era of rapid technological development , Early release of products helps to get user feedback faster to improve the quality of current products , So as to complete the next iteration faster . If every quick release can meet the needs of users , Then this product can be regarded as successful . The shorter the time of each iteration , Learning and communication within the team will become better . With speed , Decisions will be delayed . With speed , It can better meet the current needs of customers rather than yesterday .
5 Decentralization
In the traditional team, the leader of the team decides and assigns the tasks to be completed by everyone . But lean development advocates delegating this right to everyone on the team , So that developers have the right to express their views and make suggestions .
6 Embedding quality
Quality management is particularly important in lean software development . ad locum , Quality assurance is carried out at every stage of the development process from the beginning , Not just in the testing phase to find quality problems .
7 Global optimization
Global optimization makes the connection between each department closer . Relative to efforts to reduce costs within each department , Eliminating the estrangement and waste between departments will have a more significant effect . stay DevOps Today, it has become a major trend , Development Department , The coordination between the quality management department and the operation and maintenance department is becoming more and more important .
Lean product development
2017 year 《 Lean product development 》 The advent of books , Introduce lean ideas and concepts from the perspective of products , Combined with the characteristics and process of product development , Refine the concept of lean production and product practice 、 Fit and optimize .
Toyota Lean production house
Lean product development house
One goal
Deliver useful value smoothly and with high quality .
- smooth
Only the value delivery process should be smooth , Complete the delivery of user value with the shortest practice , Not on and off , Problems abound .
- High-quality
High quality means meeting the requirements , Avoid unnecessary mistakes . It does not conflict with the necessary trial and error for exploration .
- Useful value
The delivery of value should meet the needs of the market and users , And can have a business impact , Promote organizational performance .
Two pillars
1. Explore and discover useful value
The goal of exploration is to find real useful value , Constantly adjust through exploration and discovery , Find feasible business models and meaningful product functions , And continue to optimize them .
2. Focus on and improve the efficiency of value flow
From the user's perspective , Review the process of user value from each process step to delivery , The shorter the time of the whole process , The less time to wait , The higher the flow efficiency . Focus on flow efficiency , We should start from external performance , Coordinate internal resources to deliver user value as quickly as possible .
Three management practices
1. Lean entrepreneurship and innovation
“ Lean Startup ” Promote the introduction of minimalist prototype products to the market first , And then in constant experiment and learning , Verify whether the product meets the user's requirements in a minimum cost and effective way , And flexibly adjust the direction .
Execution process ( Outer ring ): Follow build 、 Measure 、 The cycle of learning :
1. Build the smallest product from the concept ;
2. Measure products to obtain data ;
3. Verify concepts or discover new ones ;
4. Enter the next cycle .
Planning process ( Inner ring ): It is opposite to the cycle direction of the execution process :
1. Plan what concepts to verify ;
2. What kind of data is needed for planning to verify this concept ;
3. Plan how to build the smallest product to get data ;
4. After implementation , Enter the next cycle .
2. Lean requirements analysis and management
The problem to be solved is how to effectively split 、 Planning and communicating needs , Ensure that the team can consistently understand the requirements , Defects caused by improper analysis and communication , And create conditions for the continuous flow of small quantities of later value .
Lean value management closed loop :
1. Value definition identifies value elements
2. Establish demand value weight model
3. Product function value ranking
4. MVP Definition
5. Value verification feedback
3. Lean Kanban
Build Kanban
- Visualize value flow
1. Visualize user value . The goal of the product is to deliver user value , The visualization of Kanban should also be organized from the perspective of users ;
2. Visualize the end-to-end flow of user value . So called end-to-end , It refers to the whole process from value proposal to value delivery ;
3. Visualize problems and bottlenecks . Problems are those factors that hinder the flow of user value , If the demand is not clear 、 Technical barriers 、 External dependencies, etc .
- Display process rules
Explicit process rules refer to defining the rules of value flow and teamwork and reaching a consensus . Explicit process rules are the basis of team collaboration , It is also the baseline for team improvement .
- Control the quantity of WIP
1. Controlling the quantity of WIP accelerates the flow of user value , It is crucial to the agility of product development ;
2. Controlling the quantity of WIP helps the team expose bottlenecks and problems ;
3. Controlling WIP actually forms a pulling mechanism , Only when the downstream is smooth can new work be pulled from the upstream , Finally, the user value delivery that drives the whole value flow .
Operation Kanban
- Managing the flow of value
1. Manage the input of value flow : Ready queue population activity . The ready queue is the source of Kanban system input and value flow .
2. Manage the intermediate process of value flow : Kanban station .
3. Manage the output of value flows : Release review .
- Establish feedback for continuous improvement
feedback
1. Feedback on whether the flow is smooth , Such as classification of obstacles 、 Impact and cause analysis ;
2. Feedback on quality problems , Such as orthogonal analysis and classification of missing defects in development or testing .
improvement
1. Teamwork process
2. Product design and internal quality
3. Team structure and personnel capabilities
4. Improvement of environment and tools
The value and influence of lean product development
Traditional product development centers on internal resources , In practice, it emphasizes the decomposition and distribution of tasks , And plan making 、 perform 、 Track and control . Suppose through the improvement of local efficiency , It can improve the overall efficiency . Agile development begins to focus on internal resources , Turn to user value , Emphasize iterative value delivery , The multi-functional team directly faces value and delivers user value , And feedback through iteration , Constant adjustment .
Lean product development has completed the paradigm transformation . It clearly takes user value as the core , Flow around user value , Coordinate and optimize the delivery process end-to-end and throughout the organization . From tradition to agile and lean , Completed from internal resources as the core , To the paradigm transformation with user value as the core .
边栏推荐
- Flink late data processing (3)
- [Offer18]删除链表的节点
- Remember an experience of ECS being blown up by passwords - closing a small black house, changing passwords, and changing ports
- Talking about the startup of Oracle Database
- Lock wait timeout exceeded try restarting transaction
- [leetcode15] sum of three numbers
- Fairygui character status Popup
- Office prompts that your license is not genuine pop-up box solution
- [Clickhouse kernel principle graphic explanation] about the collaborative work of partitioning, indexing, marking and compressed data
- The master of double non planning left the real estate company and became a programmer with an annual salary of 25W. There are too many life choices at the age of 25
猜你喜欢
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
Redis 缓存更新策略,缓存穿透、雪崩、击穿问题
编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)
[golang] leetcode intermediate - fill in the next right node pointer of each node & the k-smallest element in the binary search tree
(五)R语言入门生物信息学——ORF和序列分析
JS function promotion and declaration promotion of VaR variable
Vulnhub target: hacknos_ PLAYER V1.1
FairyGUI簡單背包的制作
In 2020, the average salary of IT industry exceeded 170000, ranking first
idea问题记录
随机推荐
程序设计大作业:教务管理系统(C语言)
[Offer18]删除链表的节点
Derivation of logistic regression theory
Mysql database index
(4) Data visualization of R language -- matrix chart, histogram, pie chart, scatter chart, linear regression and strip chart
(三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析
Meanings and differences of PV, UV, IP, VV, CV
Minio文件下载问题——inputstream:closed
Easy to use shortcut keys in idea
Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
Talking about the startup of Oracle Database
[Leetcode15]三数之和
第一人称视角的角色移动
Gateway 根据服务名路由失败,报错 Service Unavailable, status=503
[offer9] implement queues with two stacks
Prove the time complexity of heap sorting
Who says that PT online schema change does not lock the table, or deadlock
InnoDB dirty page refresh mechanism checkpoint in MySQL
CUDA C programming authoritative guide Grossman Chapter 4 global memory
Teach you to release a DeNO module hand in hand