Early, as the agile

Background: Whether encountered in predictive project plans to keep up with rapid change? We could not deliver the product or project to the customer? After delivery due to different customer needs envisaged, leading to frequent changes, team morale, customer confidence overruns!

As a project manager, product manager, technical director of you and I encounter this situation kind of feeling impotent?

Agile appearance, so we see a ray of hope. Agile is a concept or an ideal, is what you and I in the project pursued an ideal environment, is not it?

Now, we chat agility.

In the distant past, the software's pioneers, using waterfall or predictive project management, in the development process, spend a lot of time and effort in collecting information and identifying needs early, and then go to develop, and in the development process not delivered or delivered any small amount of milestone, suffering software delivery day of the team's start.

Finally pioneers in the feedback experienced many "I did not want it", "$ @ #% $", "What is this rubbish, completely wrong, we do not accept," and the like, pioneers that "if there is a new way of programming? based on this way for the progress of software development, quality, customer satisfaction and better! liberation agricultural roots in software development, code, let everyone have more time to do the things they want. "

So in the case in February 2001, the sky snow, a group of pioneers paddled snow, with the exchange. The final "Agile Manifesto" turned an accident.

"Individual and interactive than processes and tools."

"Work / available software than comprehensive documentation"

"Customer collaboration is higher than the contract / business negotiation"

"Responding to Change / change than comply with the specifications / plans."

It can be summarized as follows:

1. People-oriented: respect for each individual, emphasis on cooperation and interaction between individuals

2. Objectives / delivery of the final result is not oriented, final delivery is the software that can be used (and believe me, the available software is the best way to block the customer mouth. Document ...... not waste A4 paper? No waste of disk storage space?)

3. Customer first: understand customer needs, in cooperation with the customer (the balance must always balance, favor the development will cause a lot of customers do not understand the logic operation, tend to customers: we have eaten loss, do not go into details, I write to you, not help a touch of tears, I was too hard.)

4. Embrace change: based on Article III, it is the changing needs of customers, the clear they want, so R & D team to embrace change. (Do not into a dead end, some people argue "whiter than white, black colorful" These stem not discuss)

Documents still need to drop, after all available software + specification documents, customers will trust us more, but we should be more concerned about people, product model, writing and iteration. Only the finished product at any time (prototype, functional) delivered to the customer / project committee, in order to better enable the project to proceed, the better will be the best interests of coding.

Talking about this, I can not help but want to say a few words nonsense "Time, quality, cost, higher satisfaction, customer satisfaction," IE ideas not just for factories, also apply to the software industry, which few decide whether we can better the realization of "ideal life, the life of the ideal" ....... do not tell me, do you interest and other software to empty, at least now I can not reach such a high degree of consciousness.

Agile principles:

1. Our most important goal is through continuous delivery of valuable software is an early customer satisfaction.

According to GTD tries to four images, "urgent but not important, urgent but important, important but not urgent, not urgent unimportant" This way, manage to live, work and found useful, at least for me , a good harvest. Agile iterative arrange items by priority, limit WIP, billboards, story cards, etc., not to provide customers with valuable features as soon as possible. With too frequent spying and timely customer feedback to adjust the direction of research and development, improve the quality of the program, build customer satisfaction and maximize the interests of customers.

Agile teams focus on the completion and delivery of valuable functionality, rather than encouraging task. Based on "as the user types [\] needs, we hope to [expertise / capacity] [in order to achieve business value]," the story of the way to tap demand analysis, prototyping, and will need to write a document, but also a delivery, but more the focus, go to oral communication, signage, iteration tools, daily struggle sessions (tremor, wrong, will stand daily. most are domestic struggle sessions, do not ask how I know ..... ).

2. Even in the late-stage development, also welcomed the change needs. Agile processes harness change for competitive value for our customers.

Agility is not afraid to change, only by changing needs, just let us better understand the market and become unicorns, to seize market share. (Business well, participants naturally .... When one day a monk clock hit one idea to the people, in fact, wasted time, as early as possible diverted, do not accept any rebuttal.)

3. regular delivery of working software, delivery cycles from weeks to months, delivery time interval as short as possible.

Yupu not show people, not for the software development industry. To join the industry, it is to join the high degree of uncertainty jobs. Iteration is limited by practical framework, we believe that means giving up some very creative functions must also end the iteration time. As long as we can guarantee the delivery of the software will work well, then the delivery time is shorter intervals, and our customer assistance, trust, will be back of significant increase in product quality and practicality of the market will be more beneficial.

"Requirements, analysis, iteration, implement, deliver," staged in each iteration cycle will be agile, rather than predictive project only once.

4. must work together daily throughout the project development cycle, business and developers.

Software can not be the same route in accordance with the plan set before the execution, intermediate understanding of the business, software solutions will certainly there is a deviation, it must be meaningful between customer demand, developers and stakeholders, frequent interactive, so that you can timely discover and solve problems at an early stage.

I experience the project, and the client component will generally project committee participants are: the business, the other person in charge, the actual use of human and other components. Avoid people are not responsible for the use of people, people are not responsible for the use of this phenomenon, do not ask what.

Only through constant spying, continuous delivery, working together, to understand the differences in the two sides will become increasingly smaller, software quality will become increasingly high, the morale of the team getting better.

The people were excited about the project to build. To provide them with the required environment and support, and trust them to do the job.

See here, everyone please answer the question, "What is the most important team inside?" The answer is: "Man."

SO, code livestock, farming code developers are self-deprecating, businesses, customers, team leaders do not really think of R & D personnel as ...... A group of people, one thing must win, to be excited, be good at eliminating factors that affect team morale, team goals and personal goals to be consistent, the team taking care of personal goals to achieve mutual benefit and any deviation will cause the storm effects. Trust, empowerment, equality, good office environment will increase productivity!

Not people-oriented, based in RMB is gone, living in the information age, the era to find a way to keep the flow of the people to stay, out of the people out, precipitating the precipitate culture, in order to maximize the benefits .. ... digress, back to the topic.

6. In a team, the most effect and efficiency of the method of conveying information rich, timely and talk face to face.

The author of a week to and from the branch and headquarters to communicate, could have one week to complete the bruises, abruptly dragged more than two weeks. Efficiency is too low. Fortunately, recent to be centralized office.

Speaking centralized office, agile team of about nine people advocate centralized office, face to face communication, efficiency from the economic point of view, it is very rewarding.

7. Working software is the primary measure of progress standards.

Whether the user can use, how user satisfaction, is the first. The author in a eight-year electronic business platform project team to implement the idea, always "function is available, the user experience friendly" primary measure.

I have seen, it is too small partners with the front end, back end, DB, I found there are two extremes: 1 just do not pay attention to the results / quality. 2. The quality and quantity. The final product brought to market feedback is completely two look. Not tested by writing lines of code, in how powerful algorithms are useless. Quality is always the first place!

8. Agile processes promote sustainable development speed. Sponsors, developers, users should be able to maintain a long-term, constant development speed.

What is sustainable development speed? To understand the ongoing word, domestic popular culture, "996", Gaga class hard look, assault, etc. about this concept.

"Why do not you work overtime yesterday, other colleagues have to work overtime."

"Well, boss, overtime will affect my mood affect my mood affect my efficiency."

Not only reminds me, ever I met a guy and dialogue BOSS, the end result, quit guy, salaries objective. The boss is currently struggling to support.

A project expected to work overtime, racking our brains decide unrealistic schedule, quality, availability, team morale will be greatly discounted. It advocates "plan - do - feedback", please day, everything is clear this working atmosphere, is sustainable, healthy atmosphere.

9. Continuous attention to technical excellence and good design enhances agility.

GITHUB, open source projects, agile methods have a lot of good technical practice, we can enhance the product's agility and robustness. Many of the principles, patterns and practices can also enhance agile development capabilities.

"Practice is the only method for testing truth", "To know the taste of a pear, you have to bite," how sincere sentiment.

10. Introduction text .... tried to reduce unnecessary workload of art.

How demand for late changes, we do not know. It is impossible to start all subsequent changes to build a perfect architecture to adapt, in fact, impossible. I often give members instill "a moderate implementation takes 30 minutes to achieve a superior method requires 3 hours, then, should not hesitate to choose the former."

Have seen a guy so they could not deliver the task, asked in detail about that, "I consider the impact of the module on the last module," this practice can not be said to be wrong. But, you ask, the moment the module can not be delivered, it is necessary to consider the impact of such work on later iterations of the way.

Win in the moment, that question is very simple if tomorrow, tomorrow can be solved, SO, it's left up tomorrow. If tomorrow's issues are complex, we also asked them to tomorrow to complete the task today.

11. The best architectures, requirements, design an ad hoc team.

I had an idea "after a day at work, team members ask each other if need assistance, spontaneous processing tasks, flat management mode, no hierarchy," after thinking very fine fear, prone to a crisis of confidence, none of the differences decision-making, no one is responsible for the results.

Although the group as a whole based on agile teams work, but also need some people to assume the role of certain tasks; Product Owner, Architect, UI designers, programmers, demand, testers, documentation writers, etc., also need to a team facilitator, project manager, SCRUM supervisor, project team and other team leaders or agile coach. But so many roles, should always pay attention to servant leadership rather than high above the masses.

12. Each certain time, the team will reflect on how to work more efficiently, and then make the appropriate changes in their behavior.

Many negative factors will always lead to failure of the scheme, such as the members of attrition, the effect of technology applications, user needs change and so will the impact on us will force us to make the appropriate changes.

Agility is not a work based on predefined patterns, it is based on empirical way, the above changes, the constant need to group together "reflection" to adjust to keep the team's agility.

Agile practices commonly used methods are: Scrum, XP Extreme Programming, Crystal, DSDM Dynamic Systems Development, FDD function-driven development, BDD, AUP Agile Unified Process, Lean (IE), billboards, OpenUp, etc., with a quick look at what you species?

 

Guess you like

Origin www.cnblogs.com/atun/p/12019864.html