You are on page 1of 9

Tên Tình Nguyện Viên: Trương Lê Quỳnh Anh

Link bài gốc: Why so many software engineers are that bad?
Bài dịch tuần: Tháng 3 - Tuần 2

Dear Qunh Anh,

Bài tun này ca mình có ch hp dn. V ni dung, mình hu nh dch khá mt mà, t ng c chn lc khá chính xác và sát ngha

im: 90/100
- Li din t: - 8
- Li du câu/ cn l: -1
- nh sai kích thc: -1

Nội Dung Gốc Tiếng Anh Bản Dịch Tiếng Việt

First of all, a short exchange that I had on Trong một cuộc trao đổi ngắn gọn trên
LinkedIn: LinkedIn :, tôi ã a ra quan im:

Me> There are a lot of clueless engineers Tôi viết: "Hiện nay, có không ít kỹ sư thiếu
writing horrible code and creating terrible kinh nghiệm đang viết ra những đoạn mã kém
designs. chất lượng và tạo nên những thiết kế không
tốt."
Raja> I am surprised why this happens in
almost every organization. And this is in spite Raja phản hồi: "Thực sự tôi cảm thấy bất ngờ
of the organization's claims that they have the khi tình trạng này diễn ra ở hầu hết các tổ
best team, process, tools, etc. chức. Điều này i ngc li càng trái ngc
với những tuyên bố của họ về việc sở hữu đội
Man… I love the question, “Why”. So, let’s ngũ hàng đầu, quy trình tối ưu và công cụ
dive into it. hiện đại."

They are actually not bad


Tôi bày tỏ: "Câu hỏi 'Tại sao' luôn khiến tôi
thích thú. Hãy cùng Chúng ta hãy cùng nhau
First, I believe many of these crappy results tìm hiu và
khám phá lý do đằng sau điều này
don’t come from engineers being bad per se. nhé
."
Just take a not-very-senior engineer(s), add
some weak management and weak technical Quan Niệm Sai Lầm về Kỹ Sư Phần Mềm:
leadership, ramp up the pressure, and you will Họ Thc S Không Tệ Như Bạn Nghĩ
get tons of shit code on the other end.
Đầu tiên, tôi muốn nhấn mạnh rằng việc sản
phẩm công nghệ không đạt chất lượng không
BTW. What I describe is just one way to get hẳn là do lỗi của các kỹ sư.
bad results. There are other ways — the
culture of not sharing knowledge in the Chỉ cần có một hay mt vài s kỹ sư chưa đủ
organization, absence of mentorship, unclear kinh nghiệm, s
direction with a constant drastic change of lng lo trong khâu qun lý hay kh nng k thut còn n
requirements, etc. kt hp vi
s qun lý lng lo và s lãnh o k thut khôn
You know, the programming saying “Garbage cùng với áp lực tăng cao tăng,
in, garbage out”? và kt qu là
bạn sẽ có một lượng lớn mã nguồn không đạt
yêu cầu.
So, the truth is that you have multiple inputs
— people, process, culture and so on and one Điều này chỉ là một trong nhiều nguyên nhân
output (your software). dẫn đến sản phẩm kém chất lượng.
Các nguyên nhân khác có th k
You may have good (or ok) people, but if the Bên cnh ó, còn có các vn khác
như văn hóa doanh
rest of the input is garbage, you are
nghiệp không khuyến khích việc chia sẻ kiến
guaranteed to get the garbage on another end.
thức,
không c nhng ngi có kinh nghim h tr
A side note: You can argue that if people are thiu s h tr t ngi có kinh nghim
, hoặc mục tiêu dự án không rõ ràng
good, they could/should fix the process, , thng xuyên và bt gi
vi nhng thay đổi
culture, etc. Trying to fix it from the trenches
yêu cầu thng xuyên và bt ng , v.v.
is extremely painful and rarely works out.

Impedance mismatch Trong ngành công nghệ thông tin, nguyên tắc
"Rác vào, rác ra" luôn được coi trọng như một
This is another topic I wrote about in the “One lời nhắc nhở về tầm quan trọng của chất lượng
company’s lousy engineer, is another đầu vào trong quá trình phát triển phần mềm.
company’s good architect” article. Câu nói này không chỉ ám chỉ đến mã nguồn
mà còn mở rộng ra các yếu tố khác như năng
Sometimes, people just don’t fit well into the lực của đội ngũ phát triển, quy trình làm việc,
company. The person could be good. The và văn hóa doanh nghiệp.
company could be good. However, they may
operate on different wavelengths, value Mặc dù có thể tự hào về đội ngũ lập trình viên
different things, and emphasize different tài năng và kinh nghiệm, nhưng nếu các thành
areas. phần còn lại như quy trình làm việc và văn
hóa công ty không đạt chuẩn, sản phẩm phần
And sometimes, it’s amazing to see how a mềm cuối cùng sẽ khó có thể tránh khỏi "số
person who was absolutely terrible in one phận" kém chất lượng. Điều này nêu bật một
(reasonably good) environment flourishes in vấn đề phức tạp: liệu sự xuất sắc của nhân sự
another environment. có thể làm lên điều kỳ diệu, bất chấp những
hạn chế khác?
Money… Money… Money Dẫu biết rằng những cá nhân xuất sắc có khả
năng góp phần cải thiện quy trình và văn hóa,
Ok… Ok… I was nice and soft in the last two thực tiễn cho thấy, việc thực hiện những thay
sections. now it’s time to pull the big guns đổi này thường đầy thách thức và không phải
out. lúc nào cũng đạt được kết quả như mong đợi.

We are rapidly approaching 30M software


"Sự Không Phù Hợp" - Thách Thức Khôn
engineers worldwide. It was around 5M in
Lường Trong Ngành Công Nghệ
2000 and something like 1M in 1980. (BTW.
Trong bài viết "Một kỹ sư không phù hợp tại
These are very-very approximate numbers
công ty này, lại trở thành kiến trúc sư xuất sắc
that I pieced together from several sources, so
tại công ty khác", chúng tôi đã đề cập đến một
please take them with a grain of salt). If you
vấn đề thú vị.
go back to 1960, the number of people doing
kind-of software engineering (with a huge mix
Thực tế cho thấy, không phải lúc nào một cá
of hardware engineering) was measured in
nhân cũng có thể hòa nhập và phát triển trong
tens of thousands.
mọi môi trường công ty. Dù cá nhân ấy có
năng lực và công ty đó có chất lượng tốt đến
BTW. All of these numbers are purely
đâu đi chăng nữa, sự khác biệt về phương
counting software engineers. If you add to this
thức làm việc, giá trị cốt lõi và phương hướng
product management, software engineering
phát triển có thể tạo nên một "bức tường vô
management, IT, Ops, etc. The numbers and
hình" ngăn cản sự phát triển của cả hai bên.
growth will look even more staggering.

A 60-year span can look like a long stretch for Điều đáng ngạc nhiên là, có những trường hợp
a human being. However, it’s a blink of an một người không thể thể hiện hết khả năng
eye from a societal perspective. And within của mình trong một môi trường được đánh giá
these 60 years, the industry went from almost là tốt, lại bất ngờ "lột xác" một cách ngoạn
nothing to these 30M engineers. Oh… And 5 mục khi chuyển sang một môi trường mới.
out of the top 10 biggest companies by market Câu chuyện này nhấn mạnh tầm quan trọng
cap are software companies (with some mix của việc tìm kiếm và tạo dựng môi trường làm
of hardware there). việc phù hợp với cá tính và năng lực của mỗi
người, để từ đó họ có thể phát huy tối đa tiềm
Getting back to bad software engineers. năng của mình.

The software industry sucked into its orbit Đằng Sau Màn Hình Code: Câu Chuyện Về
everything that moves and can type ‘print Tiền Bạc Và Đạo Đức Nghề Nghiệp Trong
“Hello world!”. There are tons and tons of Lập Trình
people who got lured by huge amounts of Trong hai phần trước, chúng ta đã có những
money sloshing in software (BTW. I don’t cuộc trò chuyện mang tính xây dựng và nhẹ
blame these people. If tomorrow, salaries in nhàng. Nhng Tuy nhiên, gi ây, đã đến lúc
astrobiology would become $5M/year, I để xoáy sâu vào i sâu vào những vấn đề có
tính cht quyết định hơn.
would seriously consider starting learning
more about alien life forms :) ). Theo dữ liệu sơ bộ và được tổng hợp từ nhiều
nguồn khác nhau, thế giới đang chứng kiến sự
The issue is that tons of these people who bùng nổ về số lượng kỹ sư phần mềm, với con
have/had no interest in software are not số ước tính sắp chạm mốc 30 triệu người. Để
interested in learning more or improving (as so sánh, vào năm 2000, con số này chỉ khoảng
long as a paycheck keeps coming). 5 triệu và khoảng 1 triệu vào năm 1980. Mặc
dù những con số này không thể chính xác
Growth pains 100% và cn nên được xem xét một cách cẩn
trọng, chúng vẫn phản ánh mt xu hướng tăng
And continuing the subject of explosive
trưởng đáng kinh ngạc trong ngành công
growth of the software industry.
nghiệp này.
Nu nhìn xa hn na, vào nm 1960,
Unfortunately, many people who ended up in i xa hn na, nu nhìn li nm 1960, lúc ó
lượng người làm việc trong lĩnh vực kỹ
software weren’t well prepared for it. Some
sư phần mềm - khi đó còn gắn liền với kỹ sư
will catch up, but many will be barely
phần cứng - chỉ được đếm bằng hàng chục
treading water and moving from one company
nghìn.
to another, leaving a trail of problems behind
them.
Lu ý, Cn lu ý, những con số trên chỉ bao
There is another thing that was caused by this gồm các kỹ sư phần mềm. Khi xét đến các
fast growth. ngành nghề liên quan khác như quản lý sản
phẩm, quản lý kỹ sư phần mềm, công nghệ
When the company grows really fast, it thông tin, vận hành, ... thì bức tranh về sự phát
usually ends up quite detrimental for triển số lượng và tốc độ tăng trưởng của lực
engineering. If you don’t have enough core lượng lao động trong ngành công nghệ thông
people who are good and who can tin sẽ càng trở nên ấn tượng hơn.
share/upkeep/enforce best practices, you will
get quite fast to a place where anything goes. Trong bối cảnh thế giới biến đổi không
And the quality of everything will drop really ngừng, mt thp k trôi qua
fast. những thay đổi
có th mang đángthay
li nhng kể, inhưng
áng k,một
nhngkhoảng
mt khong
thời gian 60 năm có th s li mở ra một
The same ended up happening with the chương mới hoàn toàn khác biệt cho nhân
industry as a whole. The growth happened loại. i Dù cho với một cá nhân, 60 năm là
damn too fast, while a lot of best practices một quãng đời dài lê thê, nhưng đối với toàn
were not even well adopted yet. Actually, hell xã hội, đó chỉ là một khoảnh khắc ngắn ngủi.
with adopted, many best practices are not Ngành
Chng kin s phát trin v bão, ngành
even agreed upon. công nghiệp phn mm từ một điểm
xuất phát khiêm tốn đã bùng nổ mạnh mẽ, đạt
As a result, everybody (including yours truly) tới con số ấn tượng là 30 triệu kỹ sư. Đáng
often reinvents the same wheels repeatedly, chú ý hơn, trong số những tập đoàn có giá trị
vốn hóa thị trường hàng đầu, phần lớn là các
stumbling and standing up just to uncover công ty công nghệ, nơi phần mềm và phần
things that should have been taught in the first cứng góp phần tạo nên giá trị thực sự.
year of university for people entering our
industry. Tuy nhiên, cùng với sự phát triển không
ngừng của ngành công nghiệp phần mềm,
Nonuniformity of industry thách thức cũng dần hiện hữu, đặc biệt là vấn
đề về chất lượng nguồn nhân lực.
How much commonality does writing Mc lng
hp dn Ngành này, vi
software for Voyager 1 have vs. some throw- s hp dn v mt tài chính,
đã thu hút một lượng lớn
away script to clean up data on your hobby ngi lao ng tìm n
nhng ngi tìm n chỉ vì
project? động cơ kiếm tiền mà không thực sự đam mê
hay mong muốn cống hiến cho lĩnh vực công
The first one (Voyager) requires surviving
nghệ thông tin. Điều này dẫn đến tình trạng
decades, working on extremely limited
nhiều cá nhân dù
hardware, and needs to be documented, không thc s yêu thích
thiu hng thú và thiu kiến thức cơ bản về
reviewed, re-reviewed, and re-reviewed again.
lập trình vẫn có thể “lách” vào ngành chỉ bằng
những kỹ năng nền tảng nhất như viết được
Another could be a piece of crap, put together
dòng lệnh ‘print “Hello world!” ’. Sự thực này
in 15 minutes, executed once, and thrown
không chỉ làm dấy lên quan ngại về chất
away. And it can actually run on a really
lượng sản phẩm phần mềm mà còn là lời cảnh
beefy setup and won’t be documented,
báo về tương lai của ngành công nghiệp nếu
reviewed, and so on.
không sớm tìm ra giải pháp.
The software looks the same from a 30k view.
However, the truth is that tech is not a Dù rằng, không thể phủ nhận sc lc hấp dẫn
uniform industry by any stretch of the về mặt tài chính của ngành phần mềm, và
imagination. không ai có thể trách cứ những người chọn
theo đuổi lợi nhuận. Tuy nhiên, để ngành
Precious lessons learned in one area of the công nghiệp phần mềm tiếp tục phát triển bền
software market may be detrimental in vững, cần có sự cân nhắc và đầu tư nhiều hơn
another. As a result, engineers moving even to vào việc nâng cao kỹ năng và kiến thức cho
adjacent industries may bring wrong lessons. nguồn nhân lực, từ đó tạo ra những sản phẩm
công nghệ chất lượng cao, góp phần thúc đẩy
Summary sự tiến bộ của xã hội.

First of all, I think the biggest contributors to Đau Đớn Từ Sự Phát Triển: Cái Giá Của
bad outcomes are not bad engineers but rather Tăng Trưởng Nhanh Chóng Trong Công
bad companies. Nghệ Thông Tin

However, right on the heels of bad companies,


you have people who have zero interest in any Trong bối cảnh ngành công nghiệp phần mềm
improvements (and putting the honest work phát triển với tốc độ chóng mặt, một vấn đề
in) and who joined software just for a big(er) nổi cộm ã được phơi bày: không ít cá nhân
paycheck. khi bước chân vào lĩnh vực này không
chun b k càng
li thiu s chun b cn thit .
P.S. Got a good additional point from Vivek Trong khi một số người có thể nhanh chóng
that there is a question of motivation. I think a thích nghi và bắt kịp xu thế, thì đa số còn lại
lot of people who came into software just for chỉ đủ sức duy trì và liên tục chuyển việc từ
money may happily enjoy even the lower side công ty này sang công ty khác, để lại sau lưng
of the software market salaries. And it could h là chuỗi vấn đề chưa được giải quyết.
be too big a hassle to invest a lot of time and
energy in learning more (to get a raise big Điều này dẫn đến một hệ quả khác không kém
enough to make it interesting). phần nghiêm trọng trong quá trình phát triển
thần tốc của các công ty: sự suy giảm chất
lượng kỹ thuật. Khi một tổ chức không có đủ
số lượng nhân sự chủ chốt với năng lực và kỹ
năng cần thiết để chia sẻ, duy trì và thực thi
các quy định và phương pháp làm việc tốt
nhất, tình trạng "tùy tiện" sẽ trở nên phổ biến.
Điều này không những ảnh hưởng tiêu cực
đến chất lượng sản phẩm và dịch vụ, mà còn
gây ra những hậu quả lâu dài đối với sự phát
triển bền vững của chính các công ty đó.

Ngành công nghiệp đã chứng kiến mt sự


phát triển chóng mặt, diễn ra quá nhanh chóng
mà không kịp tiếp nhận những phương pháp
tốt nhất. Điều này dẫn đến tình trạng nhiều
quy trình và phương pháp vận hành chưa
được thống nhất rộng rãi, thậm chí là chưa
được áp dụng đúng mức.

Hậu quả là, không ít cá nhân trong ngành, bao


gồm cả tôi, liên tục tìm tòi và "phát minh" lại
những giải pháp đã có, qua đó trải qua không
ít thất bại và thành công chỉ để nhận ra rằng
những kiến thức và kỹ năng cần thiết này lẽ ra
đã được trang bị từ những năm đầu tiên của
quá trình đào tạo đại học. Sự thiếu vắng một
hệ thống giáo dục và đào tạo chuẩn mực cho
người mới bước vào ngành là một điểm yếu
rt lớn, cần được khắc phục để thúc đẩy sự
phát triển bền vững của ngành công nghiệp.
Ngành Công Nghệ Thông Tin Và Những
Khác Biệt Không Ngờ

Việc phát triển phần mềm cho Voyager 1


khác hoàn toàn
so với việc lập trình một đoạn script
đơn giản để xử lý dữ liệu trong một dự án cá
nhân có nhiu im khác bit rõ ràng .

Dự án Voyager 1, một sứ mệnh không gian


lịch sử, yêu cầu phần mềm của nó phải đảm
bảo hoạt động bền bỉ qua hàng thập kỷ trong
điều kiện phn cng hạn chế đến mức tối đa
phn cng
. Điều này đòi hỏi mt quy trình
phát triển phần mềm nghiêm ngặt, bao gồm
việc tài liệu hóa kỹ lưỡng, thông qua cùng vi
nhiều vòng đánh giá và kiểm duyệt liên tục để
đảm bảo mọi thành phần hoạt động chính xác
và hiệu quả.

Trái ngược lại, việc viết một đoạn script nhỏ


để xử lý dữ liệu cho một dự án cá nhân có thể
không cần đến mức độ chuẩn mực cao như
vậy. Script này có thể được viết một cách
nhanh chóng, sử dụng một lần và sau đó
không còn giá trị sử dụng, không yêu cầu tài
liệu hóa hay đánh giá kỹ lưỡng. Khả năng
chạy trên cấu hình máy tính mạnh mẽ giúp nó
dễ dàng xử lý dữ liệu mà không cần tối ưu hóa
đến mức cao.

Điều này phản ánh sự đa dạng trong lĩnh vực


công nghệ thông tin, từ những ứng dụng đòi
hỏi độ phức tạp, độ tin cậy cao đến những nhu
cầu thông thường với mục đích cải thiện hiệu
quả công việc cá nhân.

Nhìn từ độ cao 30.000 feet, các sản phẩm


phần mềm có vẻ không mấy khác biệt. Tuy
nhiên, thực tế lại cho thấy ngành công nghệ
thông tin là một lĩnh vực đa dạng và phức tạp.

Trong một môi trường đa dạng như vậy,


những kinh nghiệm và bài học quý giá được
tích lũy ở một phân khúc có thể trở nên không
phù hợp hoặc thậm chí gây hại khi áp dụng
vào một phân khúc khác. Điều này đặt ra
thách thức cho các kỹ sư phần mềm khi họ
chuyển từ ngành này sang ngành khác, ngay
cả khi hai ngành đó có vẻ liền kề hoặc tương
tự nhau, họ có nguy cơ áp dụng những giải
pháp và bài học không phù hợp với hoàn cảnh
mới.

Tổng Kết

Trước hết, cần phải nhìn nhận rằng, những


hậu quả không mong muốn thường xuất phát
từ các tổ chức kém chất lượng chứ không phải
từ những nhân viên kỹ thuật thiếu kỹ năng.

Tuy vậy, ngay sau đó, chúng ta lại thấy sự


xuất hiện của một nhóm người thiếu sự quan
tâm đến việc nâng cao trình độ chuyên môn
hoặc không thc s sẵn lòng đóng góp công
sức thc s mà chỉ tham gia vào lĩnh vực công
nghệ thông tin với mục tiêu kiếm được một
khoản lương cao hơn mức bình thường.

P.S. Tôi cũng muốn nhấn mạnh một ý kiến


thú vị từ Vivek về động lực cá nhân. Có vẻ
như một bộ phận không nhỏ những người
tham gia vào ngành này với mục đích tài
chính có thể dễ dàng chấp nhận một mức
lương không cao trong ngành, bởi việc đầu tư
thêm thời gian và năng lượng để học hỏi và
phát triển bản thân, nhằm đạt được những cơ
hội lương bổng hấp dẫn hơn, có thể được xem
là một thách thức quá lớn đối với họ.

You might also like