Analysis of 3 levels of software development

Source: Internet
Author: User

In the morning on Weibo saw Guo Anding teacher's micro-blog, I also changed the Micro Bo issued a, initiation to write this article.

The late Chinese sociologist Fei Xiaotong that the culture should contain three levels: the first level is the production, the life of the tool, the national society with what kind of utensils, tools to produce and live. For example, the Chinese use chopsticks, Westerners with knives and forks, Indians with their hands, the utensils used are different. This, of course, includes what the state uses to fight, with toothfish cannons, or with machetes and spears. This is the level of the utensils, the second is the organizational level, in accordance with the definition of Mr Levy, including how this society organizes people, so that individual individuals can be combined, living together in a society and how they act, he contains a lot of content, such as political organizations, religious organizations, production organizations, the State apparatus and so on And also contains a hierarchy of values, what do people think and what can be accepted? What can't be accepted? What's good? What's wrong? Between good and bad, the values of each society, behavior selection criteria are different. Three levels indivisible, is an organic whole.

Personally, a mature software development organization for enterprise application, if want to complete a system well, must include the following elements: 1, project management, 2, software engineering, 3, reasonable programming language and framework. and an IT talent to develop in this industry, you need to reverse the development, from programming linguistics, until a large project can be project management.

I. Programming languages and Frameworks

Often hear this, learn programming worry eventually become coding workers, learn C # worry C # just can make a website, do not want to encode in a lifetime, write proficiency in the CV. NET, proficiency in various frameworks and so on. Programming languages and frameworks are just the foundation of our programming and belong to the first level of production tools.

Language is the idea of our computer to understand, so that the computer according to our ideas to complete a number of functions, how to implement the specific function or we need to tell, in fact, our solution. Maybe that's what we call a solution to programming ideas and business areas. Another language is to solve many areas of the problem, especially in C #, C, C + + these languages, because to solve a lot of problems, so his grammar, class library may be many, and in the development of one of your systems may only use a few of them, in addition, may not be as good as some specialized language solution.

The framework is to provide some common functions or modules for the project, which in itself does not simplify the complexity of the application, but rather to increase the complexity of the application, but most of the complex work is done by the system, leaving the content of the developer may not be complicated. These frameworks are often proposed after solving many of the same problems, not all of which are appropriate. When we want to use a framework, we must be consistent with her, constrained by the framework, and without the need to use the framework when some simple applications are done and the changes are small at a later stage, perhaps the simplest solution is the best. In addition, when the function of the project is more complex, the framework can not help, and sometimes it is not helpful, because the framework is the most commonly used general function, not necessarily to meet our specific requirements.

Language is a tool, you should choose a good tool in the development, but the most important thing is that you have to solve the problem of the idea, you have to be able to run the language of the tool to express your thoughts. The framework can provide more efficiency in most cases, but still have to choose a good framework, and more importantly, you have the ability to organize projects, which should be done after a lot of practical projects. If you just stay at this level, you will struggle with the. net/c# version. For example, the same use of web development under. NET, with ASP. Mvc,asp.net WebForm, Nancyfx, and so on, most people are still struggling with that framework.

Second, software engineering

Here we talk about the object-oriented software engineering. The software engineering for the pair uses the use case to capture the demand, uses the OOA to carry on the system analysis, uses the Ood to carry on the system design, uses the object-oriented language to develop. In the process of OOA, we should know how to use the analysis mode and ood the design pattern in the process. In the continuous project experience in the accumulation of flexible use of these knowledge, and ultimately achieve the realm of freedom. I've seen a lot of people holding object-oriented languages at work, but they're using process-oriented programming, and many of my colleagues in the C # language are doing things like that.

III. Project Management

Project management is good or bad to a large extent about the success of the project. Without good project management, there will be a lot of situations in the project, here are a few examples:

1, lack of communication: the programmer's communication ability is generally low. Under the double pressure of their boss and customers, many necessary communication can not be carried out in time, so that in the project is always a variety of unpleasant things.

2, the responsibility is unclear: when the project is postponed or other situation, who should be responsible for it? This is a very important question. But if the project management is not done well, the responsibility becomes unclear. For example, to test the problem, users only look forward to the results, but the results must be carefully accepted by them. In the case of insufficient communication, if not very good requirements of the user to cooperate with the test, the results can be imagined. The programmer urges the user to test quickly, but the user does not shirk the time the situation abounds.

3, the progress is difficult to control: the face of changing needs, programmers lazy, technical difficulties and even a variety of staff turnover, have you prepared a variety of responses? Without good progress management, these will make you rush and miserable. The most important thing is that the deadline cannot be reached, resulting in project failure.

Only when a programmer starts mastering a programming language can step by step achieve the position of Project manager. I understand that managers manage project managers by administrative means, project managers manage projects by means of project management (including project team members), analysts and architects use software engineering methods for analysis and design, and the program uses robust and excellent language to write code according to design documents. This constitutes a hierarchical relationship of project development.

Analysis of 3 levels of software development

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.