I am not a specialist, maybe because my technology is not good enough. "Software Innovation Road", "Software Process" tells us what the final purpose of software development: the software product that is really satisfied with the users. A software practitioner's credit is established in the continuous construction of the software products that make them satisfactory software products.
There are two directions, seeking and depth. Ask for a wide range of technologies, seek to seek answers as much as possible in technology now. From the perspective of seeking, I think we don't need more new technologies many times to reach the above goals. From the perspective of seeking, I think we do need more technologies, we need to master the existing technologies more deeper.
To build a software that is satisfied with users, you must understand what you are doing what users are really concerned. Below I am in accordance with the general situation of the priority of the user's attention:
1. Really realize the business needs of the user, rather than incorrectly implement business needs. Users have got what they really want. Of course, the user really wants is not necessarily that he first tells you what he wants. You have to understand his ideas, understand his way of thinking (it is best to make friends with him) to understand what he really wants but did not express it, maybe you can easily provide him more than him. I hope more things, why not do it? If you have done, you will get a huge success in interpersonal relationships, one day he may not be able to drive you.
2, the beauty of the interface, including layout, color, beautiful pictures, buttons. Many times beyond our ability to limit our programmers. Of course, the art can help us. But the beauty is not our savior, we have the ability to do good ideas.
3, the ease of use of the system, to think about how the system is used from an ordinary user's perspective, not as a programmer. To do every way to improve the ease of use, let the user's life is more relaxed rather than experience hardships and setbacks.
4, the performance of the system, if a page is refreshed for more than ten seconds, there is no doubt that the user will think that you have built a successful software. In order to improve performance, even you need to write a lot of "evil" stored procedures, as long as you can satisfy users, how do you say that he is a master?
5, the stability of the system, the system of three days of failure is definitely unable to satisfy users. And do you have to go to the fire? Do you have a lot of rewards for you?
6. The system is safe, and the system that is easily broken is not satisfied.
7, system scalability, able to protect users' investment, smooth transition to future larger IT solutions.
This is done, it is a successful software. My definition of the successful software is software that can satisfy users. Is these standards easy? Not so easy?
The quality of the software is divided into external quality and internal quality, and the programmer often only pays attention to the internal quality of the software, and the external quality of many software is ignored. These points are basically the external quality of the software I have understood by the users I have understood.
As for what technology, Java, Python, C # is not critical, do you have a very fashionable design pattern, AOP, MDA, IOC, TDD is also nothing to do, because these users can see. So, do you need to invest in Sink Lost for these users you can't see tomorrow? Or can you come slowly, first put your hand's urgent work? If I don't solve the problem in this issue tomorrow, I will have trouble, and I don't understand AOP tomorrow.
I like KISS. Silly is not my fault, although I understand very little, but I am doing every day. I like to be a person who is doing things, not when a person who is learning. You know a lot, you can write an article, but you never built software products that make them satisfied with them, because those are dirty. "I can be more beautiful than them", you often think like this. But I dare to say that my future is mine, not yours. Oh, don't expect it, you don't believe, you are angry. Then let's walk. Mono 1.0 came out, but only two or three years, are these source codes relying on theory? There is a book "Software for use" may be the book closest to my thoughts, and I have time to read. I have also seen a book for the manual interface design, pick a classic reading. Alan Cooper's book is only a big one, it is unfortunately.