Let the customer make a decision
One of the most important decisions that developers and project managers can make is to decide which ones they can't decide, and to let the business owners make decisions.
When you discuss issues with your customers, prepare several options. Describe the pros and cons of each scenario, as well as the potential costs and benefits from a business perspective,
and discuss with them the impact of each choice on time and budget, and how to weigh and record the decisions made by the customer and indicate why.
Let the design guide rather than manipulate the development
A good design is a map, and it evolves. The design guides you in the right direction, she is not a colony, it should not express specific routes, you do not be designed to manipulate.
Design method of CRC card
Class name:.
Responsibility: What should it do?
The co-worker is going to finish the job. What other objects does he work with?
Rational use of technology
Select the technology you need first to decide what you need, then evaluate the use of the technology for these specific questions, ask some picky questions about any technology you want to use, and answer them truly.
Consider when introducing new technologies:
Can this technical framework really solve this problem?
Will you be tethered to it?
How much is the maintenance cost?
Remain available for release, early integration, and frequent integration.
The main point is versioning issues, the company has a master branch for continuous iterative development and develop branch for release
But found some urgent bugs directly in the release version branch modification, and then master modified
Some version upgrade requirements are based on the master to establish the problem branch, the post-integration
Code integration is a major source of risk. To avoid this risk, only early integration, continuous and regular integration,
The integration is delayed too late, possibly due to various dependencies prior to branching, which can cause integration to fail in the integration sequence.
Early implementation of automated deployment
Automate the deployment of your apps from the start. Use the deployment system to install your app and test dependencies on different machines with different profiles. Quality assurance personnel test your deployment just as you would test your app.
All this work should be intangible. The installation or deployment of the system should be simple, reliable and repeatable. Everything is natural.
Get frequent feedback with demos
Clear and visible development. When developing, keep the app visible (and the customer's mind). Every other week or two weeks, invite all the customers, show them the latest completed features, and actively get their feedback.
Tracking a lot of feedback--fixes, suggestions, change requirements, enhancements, bug fixes, etc., there are a lot of information to note, it is recommended to have a tracking system to log these logs, or use Excel to upload to git.
Use short iterations to publish incrementally
An incremental release that publishes a product with the smallest but usable block of functionality. In each incremental development, the iteration cycle of around 1-4 weeks is used. Short iterations make people feel very focused and productive. You can see an actual and definite goal. Strict deadlines force you to make tough decisions without leaving long-standing issues behind.
A fixed price means a betrayal of commitment.
Let the guest team and the customer work together, truly in the current project to do the actual evaluation, by the customer control their function and budget.
How to estimate project cost and time is another science.
1. Proposed to build the system demo (to make the most important functional part), the completion of the first delivery should be no more than 6-8 weeks, explain to the customer, let the user really use
2. Customers can choose from a range of new features, or can cancel a contract, with only a few weeks of the first iteration of the character
3. The next iteration is a better control
45 Habits of efficient programmers the way of practicing Agile Development Study notes fourth deliver user-desired software