12 Jan, 2021
Thái độ xấu
Tháng trước khi tôi ở Ấn Độ, một người quản lí phần mềm phàn nàn: “Ngày nay nhiều người lập trình đi làm với thái độ xấu bởi vì họ biết rằng họ có thể dễ dàng kiếm được việc làm với các công ti khác vì có thiếu hụt công nhân phần mềm. Với toàn cầu hoá, thị trường việc làm được mở rộng với nhiều cơ hội hơn cho mọi người nhưng nó cũng thay đổi hành vi của nhiều người phần mềm khác.”
Tôi hỏi ông ấy: “Điều gì đã xảy ra và người phần mềm đã làm gì?” Ông ta lắc đầu và nói: “Nhiều người lập trình trở nên kiêu ngạo vì họ đang làm ra nhiều tiền hơn, một số người từ chối không theo các chuẩn dự án và muốn làm mọi thứ theo cách riêng của họ. Sau khi nhận được lệnh từ người quản lí, một người lập trình viết mã theo chuẩn nhưng thay đổi tên biến, tên hàm cho nên không ai biết chúng là gì. Người lập trình khác nhấn mạnh rằng công việc của anh ta đã được hoàn thành; trong khi đó anh ta dành thời gian thám hiểm internet để học “Thủ thuật mới”. Khi đến lúc tích hợp mã của anh ta với phần còn lại của tổ, không phần việc nào của anh ta được thực hiện. Anh ta chỉ tạo ra các chức năng mức cao mà không kiểm thử chút nào. Người phát triển phần mềm khác đã thêm số các “lối tắt” mà anh ta sao từ “phòng chat” rõ ràng ai đó đã viết chúng cho anh ta. Dường như là những người lập trình đang học nhiều thói quen xấu từ những người lập trình khác trên internet hay bắt nguồn từ các đại học đào tạo kém.”
Tôi rất ngạc nhiên về thái độ này ở một nước có nền văn hoá hài hoà và chân thực cho nên tôi hỏi: “Các ông đã làm gì khi những điều này xảy ra?” Ông ta nói với tôi: “Tất nhiên, tôi phải đuổi họ nhưng có nhiều điều nữa. Bên cạnh thói quen xấu, có những kĩ năng có nghĩa khác nhau giữa những người lập trình, người có kinh nghiệm nữa. Khó tìm ra người lập trình tốt, phần lớn những người tôi thuê chỉ đơn thuần biết lập trình tương ứng, và họ học nhiều “thủ thuật” chỉ để làm cho chương trình làm việc nhưng KHÔNG đủ tốt để duy trì chúng. Nhiều người phạm nhiều sai lầm hay có tỉ lệ lỗi cao nhưng không biết cách sửa chúng. Dường như là các đại học đã không làm việc tốt chút nào trong đào tạo họ. Bản thân cá nhân tôi đã đào tạo lại nhiều người trong số họ về các kĩ năng lập trình cơ sở. Nhiều người không có khả năng hay không sẵn lòng tuân theo các qui ước viết mã hay các chuẩn thiết kế. Họ không biết cách loại lỏ lỗi hay tạo ra các kế hoạch kiểm thử. Nhiều người chỉ viết mã và hi vọng chương trình của họ làm việc. Họ không thể ước lượng được công việc của mình một cách tin cậy bởi vì họ không biết khi nào họ thậm chí sẽ kết thúc. Tất nhiên, với dự án phần mềm, KHÔNG không phải là một tuỳ chọn. Với người lập trình đã không kết thúc theo lịch thì chúng ta phải cho họ nhiều thời gian hơn để hoàn thành công việc của họ hay ai đó khác sẽ phải hoàn thành công việc của họ cho họ.”
Trong tuần du hành từ Bangalore tới Chennai, tôi nghe nói nhiều về các phàn nàn về những người đã được đào tạo kém. Nhiều người quản lí nói với tôi về các trường hợp tương tự về thái độ xấu và thiếu kĩ năng. Một người nói: “Nếu họ có kĩ năng hàng đầu và hành động ngạo mạn thì tôi có thể hiểu được nhưng nhiều người thậm chí không có kĩ năng trung bình nhưng dầu vậy vẫn hành động như họ là “ai đó” và yêu cầu nhiều tiền hơn bằng không họ sẽ tìm việc với công ti khác.” Điều xấu nhất là nhiều người quản lí không sẵn lòng giải quyết các vấn đề hiệu năng kém vì họ quá bận rộn kiếm tiền. Khi nhiều doanh nghiệp nước ngoài đổ tiền vào, những người quản lí bận rộn thương thảo các thoả thuận mua bán và không sẵn lòng giải quyết trực tiếp và hiệu quả với vấn đề nội bộ. Một người nói với tôi về một người lập trình tới làm việc muộn, đi ăn trưa sớm và nghỉ trưa rõ dài, rồi sau vài giờ làm việc, người đó về nhà sớm. Tổ phàn nàn với người quản lí dự án và anh ta yêu cầu người lập trình này phải đúng giờ, người lập trình này phàn nàn về thiếu tinh thần làm việc tổ, đối xử không công bằng rồi đe doạ bỏ đi. Một kĩ sư nói: “Vài năm trước đây, chúng tôi may mắn tìm ra việc làm tốt với lương tốt nhưng ngày nay có nhiều việc làm, nhiều người đổi việc thường xuyên để được lương tốt hơn. Bởi vì thị trường việc làm đang bùng nổ trên khắp Ấn Độ, nhiều người phần mềm không quan tâm tới chất lượng hay đạo đức công việc thêm nữa vì mọi thứ bị dẫn đi bởi tiền. Càng nhiều nước phát triển khoán ngoài cho Ấn Độ, họ càng tạo ra nhiều việc làm phần mềm và càng nhiều người hăm hở làm tiền theo cách nhanh chóng. Đó là một thế giới điên khùng với nhiều tiền được làm ra và mọi người thay đổi hành vi của họ một cách nhanh chóng.”
Khi thanh niên có nhiều tiền, họ chi tiêu vào những thứ mà vài năm trước không sẵn có. Trong mọi thành phố lớn, bạn có thể thấy quán rượu, hộp đêm, nhà hàng, karaoke, xoa bóp và nhiều thứ nữa. Trò chơi video bạo hành rất phổ biến và các phim phương tây đang thay thế dần phim Ấn Độ với nhiều bạo lực và dục. Những thanh niên không may đó không biết sự khác biệt giữa điều xảy ra trong phim và thực tại cho nên họ hấp thu nhiều thái độ xấu và họ phản ánh vào trong xã hội. Tỉ lệ li dị và đau tim tăng lên trong giới trẻ nhưng những điều này có thể được thấy khi nhiều người đang bị stress nhưng điều ngạc nhiên nhất với tôi là làm sao văn hoá có thể thay đổi từ tốt sang xấu nhanh thế.
Một người quản lí nói với tôi: “Có nhiều việc phần mềm sẵn có hơn các kĩ sư phần mềm cho nên nhiều người đi vào lĩnh vực phần mềm, kể cả những người không đủ chất lượng nhưng trường vẫn cho họ tốt nghiệp và công ti đằng nào cũng thuê họ. Trong mọi công ti, có những người không có kĩ năng và những người có thái độ xấu. Họ che đậy dốt nát của họ bằng việc ở trong một việc làm trong một thời gian ngắn rồi đổi việc trước khi người quản lí thấy rằng họ không thể làm được công việc. Họ không muốn học và tích cực chống đối việc để các thành viên khác trong tổ kiểm điểm lại thiết kế hay mã của họ. Họ rất hung hăng và ngạo mạn với thái độ như “Không ai có thể chạm vào mã của tôi vì tôi quá bận bây giờ, nhưng tôi sẽ làm chúng tuần tới.” Họ ngăn cản các thành viên tổ không cho kiểm điểm công việc của họ và phàn nàn về các quyết định của tổ. Một số trong họ bạo hành và sẵn sàng gây chuyện đánh lộn cho nên ngày nay nhiều công ti phần mềm phải thuê cảnh vệ để giữ mọi thứ có trật tự.”
Khó mà tưởng tượng được mọi thứ có thể còn tồi tệ hơn như điều đó trong một nền văn hoá truyền thống như Ấn Độ. Tôi không biết nó bắt đầu ở đâu hay làm sao nó có thể đi theo cách đó cho nên trong cuộc họp với Hiệp hội quản lí phần mềm, tôi cố vấn: “Thái độ là khó thay đổi. Nếu vấn đề là do thiếu kĩ năng, quí vị có thể bổ sung thêm nhiều đào tạo nhưng nếu mọi người có thái độ xấu việc sửa nó còn khó hơn. Quí vị càng giữ người phá phách, người đó sẽ càng tạo ra nhiều vấn đề cho nhóm. Nhiều việc hơn sẽ bị ảnh hưởng, nhiều mã hơn mà người đó chịu trách nhiệm sẽ tạo ra nhiều lỗi hơn cho toàn tổ. Điều quan trọng là sàng lọc mọi người khi họ xin việc, quí vị cần dành nhiều thời gian hơn vào lúc bắt đầu thì quí vị sẽ không hối tiếc về sau. Cách tốt nhất để phát hiện người lập trình xấu là dành ra nhiều buổi kiểm điểm thiết kế và mã. Nếu họ không đáp ứng chuẩn của quí vị, xử lí với họ ngay lập tức. Không khó nhận diện thành viên tổ không muốn chia sẻ công việc của họ hay không chấp nhận gợi ý của người quản lí. Vì người quản lí bận rộn thương thảo việc kinh doanh và làm ra nhiều tiền hơn, điều quan trọng là hiểu rằng đây là tư duy ngắn hạn. Phẩm chất và cam kết là rất mấu chốt trong bất kì kinh doanh nào. Ngày nay Ấn Độ thành công bởi vì dịch vụ tuyệt hảo trong quá khứ nhưng nếu các công ti Ấn Độ không duy trì hội tụ vào hôm nay, ngày mai sẽ không như vậy đâu. Với nhiều nước thế đang vào kinh doanh có lời này, cạnh tranh là cao và nếu quí vị không sửa vấn đề này ngày hôm nay thì trong vài năm nữa, Ấn Độ có thể không còn là điểm đến ưa chuộng cho kinh doanh phần phần mềm nữa. Dung thứ thái độ xấu có thể gây tai hại cho năng suất của người tốt khác và tương lai của công ti của quí vị.”
Tôi chưa bao giờ viết về những điều tiêu cực. Tuy nhiên tôi rất ngạc nhiên về vấn đề xã hội này trong xã hội luân lí truyền thống như vậy. Về toàn thể, tôi tin cấp quản lí chịu trách nhiệm về việc cho phép hành vi không thể chấp nhận được xảy ra tại chỗ làm việc vì họ quá bận làm tiền, nhưng thực tế gốc rễ của nó bắt nguồn từ hệ thống giáo dục vì nó đã không GIÁO DỤC sinh viên về đạo đức, luân lí, kính trọng, trung thành, nhân từ và nhân đạo. Bằng việc sản xuất ra số lượng lớn nhiều người phần mềm chỉ để đáp ứng nhu cầu cao nhưng KHÔNG quan tâm tới chất lượng và kĩ năng thì không chỉ là sai mà còn không thể nào chấp nhận được.
—-English version—-
bad attitudes
Last month when I was in India, a software manager complained: “Today many programmers go to work with bad attitudes because they know that they can easily get jobs with other companies since there is a shortage of software workers. With globalization, the job market is wide open with more opportunities for everybody but it also changes behaviors of many software people”. I asked him: “What has happened and what did software people do?” He shook his head and said: “Many programmers became arrogant since they are making more money, some refused to follow the project’s standards and wanted to do thing their own way. After given orders from manager, one programmer coded according to the standard but change the variable names, function names so no one know what they are. Another programmer insisted that his works was finished; meanwhile he spent time exploring the internet to learn “New Tricks”. When the time came to integrate his code with the rest of the team’s work, none of his work was done. He only created some high level functions without testing at all. Another software developer had added number of “Short cuts” that he copied from “Chat room” apparently someone wrote them for him. It seems that programmers are learning so many bad habits from other programmers in the internet or come from poorly trained universities”.
I was very surprised about this attitude in a country with a traditional culture of harmony and honesty so I asked: “What did you do when these things happen?” He told me: “Of course, I have to fire them but there are more. In addition to bad attitudes, there are significant skills differences among programmers who had experience too. It is difficult to find good programmers, most people I hired just barely know how to program accordingly, and they learn a lot of “Tricks” just to make the program work but NOT good enough to maintain them. Many make a lot of mistakes or have high defects rate but do not know how to fix them. It seems that universities did not do a good job in training them at all. I have to personally retrain many of them on basic programming skills. Many are either not able or not willing to follow project coding conventions or design standards. They do not know how to remove defects from their code or create test plans. Many just code and hope their programs work. They can not estimate their work reliably because they don’t know when they will even finish. Of course, for software project, NOT finishing isn’t an option. For programmers who didn’t finish according to the schedule then we have to give them more time to complete their work or someone else would have to complete their work for them”.
During the week travelling from Bangalore to Chennai, I heard more complains about poorly trained programmers. Several managers told me about similar cases of bad attitude and lack of skills. One person said: “If they have top skill and act arrogant then I can understand but many do not even have average skill but still act like they are “somebody” and demand more money or else they will find jobs with another company”. The worst thing is many managers are not willing to resolve poor performance problems as they are so busy making money. As more foreign businesses are pouring in, managers are busy negotiating deals and are unwilling to deal directly and effectively with internal problem. One person told me about one programmer arrived at work late, went to lunch early then took a long lunch time, then after few hours at work, he went home early. The team complained to project manager and he asked the programmer to be on time, the programmer complained about the lack of teamwork, unfair treatment then threatens to quit. One engineer said:”Few years ago, we are lucky to find good jobs with good salaries but today there are so many jobs so people change jobs often for better salaries. Because the job market is booming all over India, many software people do not care about quality or work ethic anymore as everything is driven by money. The more developed countries outsource to India, the more software jobs they create and the more people are eager to make money the fast way. It is a crazy world with so much money to be made and people change their behavior quickly”.
When young people have so much money, they spend on things that are not available few years ago. In every big city, you can see bars, night-clubs, restaurants, karaoke, massages and many more. Violent video games are very popular and western movies are replacing traditional Indian movies with more violence and sex. Unfortunate young people do not know the difference between what happens in movies and reality so they adapt many bad attitudes and they reflect on the society. Divorce rate and heart disease are increasing among young people but these things can be expected as more people are under stress but the most surprising to me is how fast the culture can change from good to bad.
One manager told me: “There are more software jobs available than software engineers so many people go into software field, including people who do not qualify but schools still graduate them and companies hire them anyway. In every company, there are unskilled people and people with bad attitude. They cover up their ignorance by staying in the jobs for a short time than change jobs before managers find out that they can not do the works. They do not want to learn and actively resist having other team members review their designs or code. They are very aggressive and arrogant with an attitude such as “No one can touch my code as I am too busy now, but I will get to them next week.” They prevent team members from reviewing their works and complain about teamwork decisions. Some of them are violent and ready to pick fight so today many software companies have to hire security guards to keep things in order.”
It is difficult to imagine things could get worse like that in a traditional culture like India. I do not know where it starts or how it could get that way so in meeting with the Software Management Association, I advised: “Attitudes are hard to change. If the problem is caused by lack of skill, you can add more training but if people have bad attitude it is harder to fix. The longer you keep a disruptive person around, the more problems that person will create to the groups. More works will be affected, more code that person responsible for will create more defects for the whole team. It is important to screen people when they apply for jobs, you need to spend more time in the beginning then you will not regret later. The best way of detecting bad programmers is having more design and code reviews. If they do not meet your standards, deal with them immediately. It is not difficult to identify team members who do not want to share their works or do not accept manager suggestions. As managers are busy negotiating business and making more money, it is important to understand that this is short term thinking. Quality and commitment are very critical in any business. Today India is successful because of the service excellence in the past but if Indian companies do not stay focus today, tomorrow will not be the same. With so many countries enter this lucrative business, competition is high and if you do not fix the problem today then in a few years, India may not be the prefer destination for software business anymore. Tolerating bad attitude could hurt the productivity of other good people and the future of your companies”.
I never like to write about negative things. However I was very surprised about this social issue in such traditional ethical society. Overall, I believe management is responsible for allowing unacceptable behavior from happening in the workplace as they are too busy making money but actually the root of it stems from an education system as it failed to EDUCATE student in moral, ethic, respect, loyalty, benevolent and humanity. By massively producing more software people just to meet high demand but do NOT concern with quality and skills is not just wrong but unacceptable.