On software engineering analogy _ software engineering

Source: Internet
Author: User

I do not like the "code Nong" "Code Workers" "Program ape" This kind of demeaning words.

My grandfather is a tailor, in my memory he relies on the home to make clothes for others to earn a living, is a craftsman. My career has been dealing with code, making a living by writing code, and being a craftsman. Of course, a good workman should be able to call it a code craftsman.

I like to refer to this group of code craftsmen as software designers. Why software designers, not software engineers, comes from my different understanding of software engineering.


The construction project can be divided into two stages, design stage and construction stage. Traditional software engineering is always used to analogy with building engineering, the requirements analysis, the overall design, detailed design into the design phase, and will encode, compile, test, release, etc. into the construction phase. As a result, coders naturally fall into the category of "engineers".

However, in the actual work, the software module design and coding is disjointed, the actual situation is: The detailed design can not fully guide the code, in the process of coding will often have a lot of new creations, and sometimes even need to rework the overall design. Therefore, I tend to incorporate the coding process into the design phase, which is the new software engineering. The idea is that code is design. So we became software designers.

So what does the new software project do in the construction phase? The answer is: Start with code compilation, this phase can be completely handed over to the machine to complete. We need to construct an automated process, we can also introduce distributed compilation technology to speed up, and then need to have automated test cases (of course, when the use case is written at the same time the code is completed) to protect the functionality of the software, and then it can be continuously released. Of course, manual testing at this stage is still indispensable, manual testing of the workload depends on the level of coverage of automated testing.

Therefore, the new concept of software engineering is: the design of the part of the people to carry out the stage of construction all to the machine. As far as I know, at present, only a few of the top companies are able to continue to release some products, it will become a new project of software engineering.

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.