当前位置:网站首页>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 .

原网站

版权声明
本文为[CODING]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131507306206.html