Among those who provide the same functions, products and services, the competitiveness comes from the diversification of function and the differentiation of service quality, whether individual, enterprise or country.
The service here refers to the function, the degree of realization and processing capacity of the product, and the level of technical support provided by the research/customer service (7x24, responsive, convenient communication, quick resolution, warm hints, effective guides, etc.).
in a sense, everything is served. Functions and products are only forms, service is the essence. The service responds to a demand and thus has the value of being. individuals, enterprises to provide a certain type of society, a certain degree of service, and to obtain a corresponding return.
The services provided by programmers are the use of available resources and their knowledge, skills, experience, time, energy and resources in a specific work environment and corporate culture, with the appropriate and acceptable development costs The ability to solve problems and maintain them continuously by structuring and organizing real-world problems into the right logical flow.
this level of competence encompasses both the ability to serve itself and the capacity to create services through this capacity. The capabilities of the service itself include: proficiency in specific language, technology, platform, architecture and so on the depth of technology, combination of technology, products, operations, services, business comprehensive cognitive breadth, with diversified skills (development, writing, foreign language, communication, organization, humor, etc.); ability to work, patience, focus, meticulous , such as sports, music, literature, art, design, etc., with non-technical expertise. the services created by this capability usually refer to software, products, or services.
2. to quantify and measure service quality as much as possible to achieve transparency in service quality;
1. Correctness: Does the software correctly implement the specified functions to meet the diverse needs of customers.
in internal implementations, the data is constructed, accessed, or destroyed correctly and completely, without producing dirty data and invalid data "internal quality".
The entire process loop of the function implementation needs to be established, with all the details known to Genjiu, and the related services provided by the interactive External system.
Quantification: Whether the business data is reasonably accessible and consistent.
2. Operational efficiency: The software realizes the time and resources required to specify functions and services. A measurement or estimate of the error range is required.
refer to SLA (Service level Agreement). The efficiency of the execution of the program should be best achieved at an acceptable development cost.
That said, there is a trade-off between "the time and resource cost of developing a feature" and "the quality that the service is ultimately delivering."
In general, the higher the quality of services required by the time and resource costs, the endless pursuit of greater efficiency, regardless of cost and service objectives is undesirable.
the ideal situation is: through the right amount of improvement, technological innovation, management improvement, etc., can make less time and resource costs to achieve higher service quality.
quantification: Elapsed time, required storage resources, response time, throughput, concurrency capabilities.
3. Error handling: The software can capture all error conditions (non-conformance, illegal input, dirty data, etc.) and abnormal conditions and give appropriate return information.
Quantization: The error scenario covers the full extent.
4. Easy to follow: the process of running the output of the appropriate amount of log information, Easily track program execution status and quickly troubleshoot "internal quality" errors.
appropriate and critical INFO logs and Error logs are required. Personally, the DEBUG log can eliminate the need by improving the quality of the code.
Quantification: How long it takes to troubleshoot and locate each problem.
5. Testability: Mainly unit test, automatic function test and performance test. Unit and functional tests ensure correctness, performance testing guarantees efficiency "internal quality".
Performance testing requires measurement of the time and resources required for business processing, giving the best, worst, and average values. At a minimum, the elapsed time should be measured.
6. Security: Avoid leaking important, sensitive, and private information; Protect business and data from unauthorized access, unauthorized access, and track system access logs.
common methods include sensitive information identification and masking, access authorization mechanism, access log Audit, code Vulnerability preparedness.
Scalability Quality:
7. reusability: Requirements of the software functions, methods, classes, libraries, modules, components, frameworks, etc. can be used in the same project or different projects or different products for multiple use, easy to replace the update "internal quality."
the minimum requirement is to reuse the same project as much as possible and avoid repeating the code snippet. It is best to have no more than 60 rows per business method.
There is a reasonable abstraction for each knowledge point, business point, and fact.
Quantification: The number of repeating code snippets, functions, methods, classes, libraries, modules, components, and the number of times the framework is reused.
8. Maintainability: The software is easy to understand, easy to make changes to meet the new requirements, usually the system should have a modular, high cohesion, loosely coupled characteristics of "internal quality."
Easy to understand the need for reusability support, while requiring the code as much as possible self-explanatory ability, appropriate comments, effective update of the design documents.
easy to modify the set of code needed to quickly locate a functional service, requiring the code to have a good organization and implementation structure,
avoid making the same or similar changes to multiple places, and avoid making drastic changes to the original overall design.
please refer to the book "Agile Software Development: principles, patterns and practices" to meet the five design principles (SRP, OCP, LSP, DIP, ISP) as much as possible.
realize the realm of "closed to modification, open to expansion". That is, the development of new requirements, as far as possible only to increase the code, without the need to modify the original code.
Quantification: Understanding the length of time a feature requires, modifying or extending a line of code to which a feature needs to be modified.
Global Quality:
9. Availability: The program runs consistently and consistently for a long time to deliver the right, consistent service.
Ask the program to use and release resources reasonably, monitor the running state of the program and find out the abnormal situation in time.
Quantification: The duration of a program's continuous availability, and high concurrency capabilities.
11. Portability: Software can be in a variety of operating environments, Run correctly on the platform with only a few modifications or no modifications.
Reduce the use of nonstandard behavior by using portable languages and platforms, as much as possible to comply with standard interfaces and behaviors when implementing features and services ;
Portability is best taken into consideration at the beginning of the system's construction, such as initial PHP and subsequent porting to Ruby, Python or Java platforms.
12. Operational dimension: Manage the operation, troubleshooting/diagnosis of large-scale services after service release Solve the difficulty and speed of the problem, and handle the workload of user feedback.
What are the issues that may arise after a service is released? How to troubleshoot? How big is the scale of the service? What is the degree of concurrency?
in service development, it is necessary to avoid the generation of low-level problems, reduce the workload caused by low-level errors;
for difficult problems, you need to provide critical log information/operational documents for easy troubleshooting;
for large-scale service operations, the usual approach is to monitor, alarm, and visualize.
quantification: Refer to the quantitative standard of operation and maintenance.
13. Interoperability: How easily the software interacts with other systems. Mainly including communication mode, version compatibility.
Reference article:
guaranteed Web Service with SLA: https://www.ibm.com/developerworks/cn/webservices/ws-sla/
"Software quality model": http://www.cnblogs.com/gaochundong/p/software_quality_models.html
"Software Quality Indicators": http://developer.51cto.com/art/201104/255676.htm
tactics for implementing quality attributes of Software architecture: http://www.uml.org.cn/zjjs/201309043.asp
"reusability: Special Topics": http://focus.it168.com/200810/softwarereuse/
Service Quality assurance of service-side software