Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Handout of Modern Software Engineering 2 competency Evaluation and Development of Engineers

2025-03-29 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/03 Report--

Advanced Software Engineering Modern Software Engineering handout

Competency Assessment and career Development of Software Engineers

Introduction: personal software process, career development, personal performance measurement and improvement, software development is science, engineering, craftsmanship, or art?

We just talked about software engineering. What does it include?

Software engineering includes many techniques, practices, habits, and ideas in the process of developing, operating, and maintaining software. Software engineering unifies these related technologies and processes into a system called "software development process". The purpose of software development process is to improve the efficiency of software development, operation and maintenance, as well as user satisfaction and reliability. and software maintainability.

Software development process not only refers to the process of the team, the software team is composed of individuals. In the large process of the team, each specific individual is doing development, testing, user interface design, management, communication, and so on. Therefore, individuals also have their own processes in the software team.

The orderly organization of the fruits of individual labor is the process of the team. In most successful software team models, the starting point for each role (development, testing, project management, etc.) to consider problems is different, and conflicts of different opinions are inevitable. A good team process can make the positive aspects of the conflict (each try his best to do his or her work well. Persuade others) to release and avoid negative aspects (negative feelings caused by conflict, resistance, etc.).

Let's use football as an analogy: is there a personal process in football? Of course, professional teams have very strict requirements for players: for example:

Physical fitness, skill, consciousness, fighting spirit

Specific techniques include passing and receiving, dribbling, shooting, set-pieces, running, and so on. Some specific roles (goalkeepers) also have unique technical requirements.

Is there a process for the football team? Of course there are:

Formation, coordination, on-the-spot strain

Football teams have many "formations" (442,433,451 and their variants, etc.) and styles of play (South America, Europe, technology, strength, quickness, encirclement, flying on both wings, full attack and defense, etc.).

Despite so many theories, every dribbling, passing, running, shooting and saving of football is done by a single player. If the skill and physical fitness of an individual player is not good, no matter what the formation is, some formation will be counterproductive, for example, let the weak team attack and defend.

The same is true of software.

Most of the modules of the software system are developed or maintained by individuals. In the terminology of software engineering, we call these individual members Individual Contributor (IC).

What is the process of IC in the team? Let's take developers as an example:

Understand a problem or task

Propose multiple solutions and estimate workload

This includes finding previous solutions because much of the work is repetitive-such as implementing some similar web pages.

Communicate problem-solving proposals with relevant roles and decide on the final plan

Execute, turn an idea into code that actually works

Fix defects and be responsible for the results

The quality of everyone's work directly affects the quality of the final software.

As a software engineer, what do you think of your performance? Do you have this experience:

When I read the book, I felt that "the technology stops this ear". When I was developing the project, I felt that there were some differences between the actual situation and what was said in the book, and some important details were not mentioned in the book. Many of us develop asp.net projects while reading asp.net books, which is equivalent to performing surgery while reading medical books.

If you are a patient, which of the following would you like your doctor to be?

A) I just saw your case in the book, and I was very serious during the operation, and I had to stop from time to time to look at the book.

B) full of innovative consciousness, suddenly thought of a new technology, new knife method, and then immediately tested it on you.

C) I have dealt with many similar cases. I can operate on you and chat with the nurse about the "if you are the one" tidbit released last night.

D) this doctor does not have a formal diploma or hospital, but claims to have a secret recipe that can cure all diseases.

E) there is also this kind of, when you are halfway through surgery, you go out to play, and when you are about to get off work, they hurry back, fool around, sew you up again, give you a lot of anesthetic, and then send you out of the hospital and say, "cured"!

In fact, many software projects are created using a) b). Of course, some people go this way. E) examples of this can be seen in many college students' software assignments.

If I had a choice, I would choose a doctor like c).

Career growth-Steve McConnell version:

The company founded by Steve McConnell (Construx Software) provides employees with the following growth path.

Knowledge: divide the relevant software knowledge into ten areas of knowledge.

Ability: an engineer's mastery of this knowledge is divided into the following four stages:

Introduction (Introductory); proficiency (Competency); leader (Leadership); master (Mastery)

Career growth level (Professional Development Ladder):

Engineers are divided into six levels (9-15). Each engineer belongs to a technical level. If an engineer wants to rise from one level to another, he needs to meet certain requirements in all aspects. For example, to achieve level12, engineers must reach the level of "leaders" in three areas of knowledge. For example, to reach the level of proficiency in project management (field of knowledge), engineers must do the following:

Reading: in-depth analysis and reading of 4-6 classical literature

Work experience: to participate in and complete 6 specific tasks

Courses: 3 special courses are required

Some levels also require engineers to obtain some kind of professional certificate, teaching in industry, education, publishing papers, and so on.

Career growth-large company version:

Microsoft also has complete planning and support for the career development of software engineers. There is a lot of information in this area, so here is a simple example of a software development engineer. The following explanation comes from Eric Brechner's book, Hard Code (link).

SDE (junior software development engineer)

Getting started. Some skills have been learned in school, but they have not been fully trained in practice.

SDE II (Intermediate Software Development engineer)

Independent. You can write about anything someone gives you. If you don't understand, you know who to ask.

Senior SDE (Senior Software Development engineer)

Group leader. It affects 3-12 engineers, either their executives or their technical leaders. How to show leadership? Here are a few examples:

Have you ever been a mentor for new employees? Did they all respect your teachings later?

Have you become a role model for others? (the code written, the design done, others can reuse)

Do you have any experience in recruiting people, and teach them by example to make everyone aware of the importance of the interview and various skills?

Do you create / improve / drive processes that can be passed on without your personal involvement?

When dealing with other characters (for example, UX/PM/QA), you tend to win the support of others instead of arguing and complaining?

Principal SDE (Chief Software Development engineer)

Team leader. It affects a large team of more than 12 people and becomes the key person who affects the success or failure of the team.

Partner SDE, Distinguished Engineer, Technical Fellow

The influence extends to the entire organization, and even to the industrial community.

Career growth-Pragmatic version-from small worker to expert

Many experts in the IT industry have also put forward a lot of good suggestions for the growth of programmers. For example:

The subtitle of the book is "from journeyman to master", from a handyman to a master.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 283

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report