Ubiquitous principle [1]: Application in software development

Source: Internet
Author: User

The last time I talked about "what is the principle", I 'd like to talk about how to use it. Since this blog focuses on IT technology, it is clear that we should first talk about those things related to programmers. In order not to be too abstract, let's take the development of a text editor as an example (everyone is familiar with it and saves the trouble to explain it ), let's talk about how developers with different responsibilities should apply the principle in the development process.

★Requirement Analysis
 
Demand Analysis does not take up much work throughout the development process, but has a huge impact (this is an example of the principle ). Now that demand analysis is so important, we should arrange the most powerful people. However
This is often not the case: many companies are not competent in demand analysis. I have experienced a few unsuccessful projects. The root cause of the problem is related to requirement analysis.
The most important thing for requirement analysis is to clarify the usersTo the endWhat do you want? If this problem is wrong or incorrect, the subsequent steps will be useless (for example, if the customer wants a text editor and you have a graphic editor for it ). In this regard, there are actually a lot of ways to do this. We will not go into space. If you are interested, you can talk about it separately in the future.
After figuring out what the user wants, sort out the feature list (also known as feature list) and filter out about 20% of the key features. This step is what I want to introduce today, because it is closely related to subsequent development. In general, function filtering is based on the following:
1. Frequently Used functions (such as Save, copy, cut, and paste)
2. Promotion selling points (to be able to surpass similar software to attract attention)
3. functions closely related to user interests (such functions cannot be faulty, such as the storage function)
The screening process should be completed as early as possible, and it is best to discuss the process together with the product personnel, developers, and testers to ensure that the positions are objective and all-round. After filtering out important functions, the work arrangements of other personnel should be "focused on functions.

★Project Management
If you are a project manager, you have to prioritize development/testing of key functions as much as possible during project planning, and assign competent personnel to complete the tasks. According to my previous practice, the plan for key functions requires at least 1/3 of the remaining time, just in case (it turns out that almost every project with a slightly larger size will appearIn case). AsNonKey functions should be arranged at the end of the article as far as possible, and people with average abilities should develop/test.
Then, there must be regular meetings during the project. As a project manager, you should focus on the progress and risks of key functions.
Once the project has the risk of extensionNonThe key functions were cut down (commonly known as the cut function ). Because it is a cutNonKey features will not have a fatal impact.

★Design Interface
When designing the interface, make sure thatAllCommon functions are placed in a prominent position (such as tool bar), and must be used conveniently (such as providing shortcut keys and right-click menu support ).
For selling points, it is not necessarily a common function, and its purpose is to arouse users' desire to purchase and use. So you have to design them cool and have a gimmick.
In most cases, interest-related functions are focused on business logic implementation. If it is neither a common function nor a selling point, it is not necessary to make great efforts in the interface design.
OtherNonKey functions, as long as they are designed according to the conventional method, do not spend too much effort.

★Write code
I found that many developers have a few common problems: first interesting or easy functions, and then boring or tedious functions; more energy is invested in functions that interest you, A simple solution that you are not interested in.
These are all taboos for development. As a professional developer, development priorities should not be determined based on your own interests and preferences. The correct method should be as follows:
First, you need to focus on completing the above-mentioned key functions, and ensure that their code quality is as good as possible and as easy as possible for maintenance (key functions are often subject to frequent changes in demand, ).
For "common functions" in key functions, ensure thatTimeGood performance (fast response ). For "user-related functions", ensure that there are as few bugs as possible (especially security, stability, and robustness bugs ).
For otherNonKey features, as long as there is no obvious bug, a small defect is harmless.

★Test
If you are a tester, you also need to focus on testing those key functions. For "user-related functions", perform more robustness tests, stability tests, and security tests (for example, to test whether an error occurs when storing large files ). Common functions are mainly used for usability and performance tests (such as whether copying and pasting are easy to use ).
For other functions, you only need to perform a common test to ensure that no obvious or serious bug occurs. You need to know that when Windows 2000 was released, there were still thousands of bugs that had not been fixed (of course they were all low-priority), and Microsoft did not release them as well.

★Product demonstration
After some software development, some demos will be made for publicity. If you are the person in charge of the demo, you must use the main Demo time to show the selling points of the software. This gives the customer the most profound impression and the best effect.NonThe selling point function is not required.
Several development-related work will be introduced here, and finally I will give you a sentence:Do not work hard, work smart!

The next post will talk about the application of the principle in management.

Http://program-think.blogspot.com/2009/02/80-20-principle-1-software-developing.html

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.