Ngày hôm qua, tôi có viết 1 status về việc những lập trình viên (LTV) cần phải nhanh hơn nữa. Thật là khó để diễn tả hết lý do trong 1 status ngắn, nên post này tôi hy vọng sẽ nói được nhiều hơn 1 chút.

Thế giới ngày càng khắc nghiệt…

20 năm, 10 năm trước, chuẩn mực của một LTV là gì? Dù là béo phì (LTV Mỹ) hay gầy còm (LTV Việt) thì cũng đều căng thẳng, đầu tóc rối bời, những cặp kính cận lớn và… xa lánh cộng đồng; họ đặt mình vào những căn phòng với thuốc lá, bia, chất kích thích và chỉ giao tiếp với nhau hoặc với máy tính. Chẳng khó để nhận ra một LTV trong đám đông.

Ngày nay, thật khó để nhận ra một LTV trong đám đông. Tôi xin lỗi, song dấu hiệu duy nhất để tôi nhận ra những đồng nghiệp của mình là họ thường mang theo laptop. Vậy thôi. Những LTV ngày nay, họ quá giống một người bình thường với áo thun, quần jeans, đầu vuốt keo, đôi khi cùng khuyên tai hay quần tụt.

Công bằng mà nói, những LTV ngày nay đang có cuộc sống xã hội phức tạp hơn. 20 năm trước, LTV là những người đi tiên phong trong ngành CNTT với chỉ số IQ bắt buộc phải nằm trong top 10% nhân loại, họ luôn phải giải quyết những bài toán khó đòi hỏi nền tảng khoa học tốt; và họ tạo cho mình 1 đặc quyền: tách ra khỏi đời sống xã hội. Giờ đây, như xu thế của mọi ngành công nghiệp phát triển khác, việc lập trình trở nên đại chúng hơn, và LTV dần mất chất hơn. Họ bị kéo trở lại đời sống xã hội bình thường.

Và góc nhìn của LTV cũng buộc phải thay đổi. Cảm giác của LTV cũng buộc phải thay đổi. 20 năm trước, LTV vui mừng vì viết ra 3 dòng code giúp tiết kiệm được 1KB bộ nhớ sau 1 tuần trăn trở. Giờ đây, LTV vui mừng vì tạo ra sản phẩm giúp ích tới hàng ngàn người dùng. Hệ quy chiếu thay đổi, và thước đo cũng đã thay đổi. LTV thay vì đặt mình trong một không gian riêng, chiêm ngưỡng vẻ đẹp của những đoạn code về mặt khoa học thuần tuý; giờ họ buộc phải gắn mình với đời sống kinh doanh phức tạp hơn: Tiết kiệm 1KB bộ nhớ chẳng có ý nghĩa gì nếu nó không mang lại giá trị cho người dùng. 20 năm trước, những LTV được coi là tệ hại nếu không biết cách tiết kiệm thêm 10KB bộ nhớ. Ngày nay, những LTV được coi là thiếu đạo đức nếu viết ra những dòng code tuy tối ưu nhưng khiến đồng nghiệp khó hiểu. Tất nhiên, ở đâu đó trên thế giới, hệ quy chiếu truyền thống vẫn tồn tại, nhưng nó đang ít dần đi.

Và rồi những LTV truyền thống cảm thấy thất vọng, họ thấy thật nực cười khi phải quan tâm tới những giá trị mang lại cho khách hàng, bực bội khi phải quan tâm tới lợi nhuận của doanh nghiệp. Không, tôi muốn làm thế này, vì nó chạy rất nhanh, vì nó là thử thách, vì tôi muốn giải quyết bài toán này... Họ bị stress khi bị lôi trở lại đời sống xã hội phức tạp, nơi những giá trị kinh doanh là thứ họ chưa bao giờ muốn biết. Tôi chỉ muốn lập trình thôi, trời ơi. – một LTV gào lên và ngay lập tức ông chủ của anh ta sẽ đáp lại: Anh bạn à, một bức ảnh đẹp phải được đo bằng view và like chứ không phải vì nó tuân theo tỉ lệ vàng. Thế đấy.

Nhưng thế giới cũng đang đẹp hơn…

Những LTV chân chính có cảm giác rằng LTV không còn là một nghề cao quý và đáng trân trọng khi mà công việc lập trình được bình dân hoá đến mức #kids_can_code và luôn bị cuốn theo giá trị kinh doanh của doanh nghiệp. Song không thể phủ nhận rằng, cuộc sống của họ đang tốt dần lên chính nhờ những điều đó. Họ biết thêm nhiều kiến thức, kỹ năng mới, hoà nhập hơn đồng nghiệp và xã hội. Họ có thời gian để tập gym, quan tâm tới thời trang, những show ca nhạc… thay vì chỉ vùi đầu trong những đoạn code và chất kích thích.

Nhưng không có nghĩa là những LTV chân chính muốn mất đi không gian riêng. Họ vẫn muốn và vẫn cần có những không gian để không quan tâm tới giá trị kinh doanh, rời xa những ồn ào hiện tại và quay trở lại niềm vui chỉ với những dòng code. Đấy là lý do hàng loạt những website như topcoder, projecteuler, hackerrank… ra đời cùng hoạt động Code Retreat, Code Kata… Và doanh nghiệp cũng ngày càng chú trọng đến những hoạt động như Hackathon nơi họ cố gắng tạo ra một không gian để nhân viên của mình được làm  những LTV chân chính dù chỉ 1 vài lần trong năm.

Cũng giống như mọi ngành nghề khác, nhiều LTV không muốn nghề nghiệp của mình bị bình dân hoá; nhưng số nhiều và toàn xã hội lại hưởng lợi khi công việc này trở thành đại chúng với những con người cân bằng giữa công việc và đời sống xã hội. Nhưng cuộc chơi giờ là vậy, những LTV, hãy sống cân bằng, biết cách giao tiếp với đồng nghiệp, quan tâm tới những chỉ số kinh doanh và giá trị mang lại cho khách hàng. Nhưng đừng quên rằng, vẫn còn đó những nơi cho chúng ta không gian để chỉ quan tâm tới kỹ thuật, chỉ sống như một LTV chân chính. Hãy tìm lấy không gian để sống như một LTV chân chính nếu bạn thực sự là một LTV chân chính 🙂

 3,290 total views,  3 views today

Follow the topic The most important job is recruiting, I want to share my view on the level of developer. It may be not meet your idea, but to know the differences can give you a deep level you want to go on.

There are at least 4 levels as follow i think:

Coders. They can figure out it, your idea or detail specification with flow. It’ll work, easy like drink a beer, but it won’t be pretty or usable in large scale environment.

Hackers. Don’t mix it with the black hat/white hat hackers. In this case, they are the folks with skillful, with detailed understanding of (some) area deeply, or they can hack into the core of framework, can do some crazy things with tricks.

Programmers. Ok, they write code with understand of algorithms, workflow. They can work alone and well, they can do some incredible things.

Developers. Are the best of all, can use lots of different systems and languages and get them to communicate with each other. They have deep and broad knowledge, from hardware to software, they are true and broad professionals, they can work with people, transfer knowledge and communicate well.

I’ve more than 10 years working experience, have good connection, know a lot of people who working in IT related field in Vietnam … but i know only some true developer. I’m pretty sure that “Your Education” won’t get you hired, especially in A level candidate, it depends on your experience, your skill set and what you can bring to their business, what they’ll receive if hire you. To be honest, if you are closer to one of above level already, you can get an idea of which direction to head and do the best of you.

And now, let me ask some questions:

1. What is the differences between Game Developer and Game Programmer ? Why the game companies always want hire game developer instead of game programmer ?

Game development involves managing all of the different jobs that need to be done, it’s not only coding, it needs skill and tools to build up a game, and it’s not easy. They need the real developer, who can make system run, who can lead the game programmer to code.

2. What is fullstack Developer ? Why company still want to hire .NET Web Developer ?

For me, fullstack developers who are familiar with the entire stack (from hard ware to software, from environment to business logic) … and they know how to make thing easier for those around them. They don’t care about languages, platforms or environment.

I read many job posting in Internet, it’s too funny that some companies want to hire .NET Web Developer, Java/PHP Web Developer. If you want to hire developer, don’t care about the language, just simple like “1 back-end developer, 1 front-end developer or mobile developer. Expect on their skill on back-end or front-end, don’t expect on their skill on programming language. If you just want people who can work with .NET, hire a coder / hacker, they can do almost your idea.

And again, what’s the difference ??? 🙂

 1,402 total views,  1 views today

Đây là một chủ đề được tranh luận rất nhiều, có nhiều quan điểm và chưa có hồi kết. Gần đây vấn đề này lại được khơi gợi và chia sẻ nhiều qua bài viết Lập trình viên có thực sự cần bằng cấp (bản dịch từ Do software developer really need degrees). Tôi khá đồng tình với quan điểm của tác giả, và muốn tiếp nối một chút, về lập trình viên (LTV) và bằng đại học (ĐH).

Vài năm trước, trong lightning talk của Barcamp tại Hà Nội, có một bạn sinh viên tại một trường hàng đầu về CNTT, đứng lên nói, đại khái thế này: Em thấy việc học ĐH là vô vị, em đã có quyết định sáng suốt nhất trong đời là bỏ học ĐH để dành thời gian tình nguyện cho các sự kiện, từ sáng tới giờ em đã có mặt tại 3 sự kiện… Vâng, bạn ấy đã có quyết định sáng suốt nhất trong đời ở tuổi 19. Lúc đó cả khán phòng như sôi sục hẳn lên, vỗ tay tán thưởng và cổ vũ quyết định của bạn sinh viên trẻ, một số ít thì không — trong đó có tôi. Đến giờ tôi vẫn không hiểu tại sao có quá nhiều người tán thưởng quyết định đó, bởi tôi vẫn bảo lưu quan điểm của mình. Tôi không cực đoan cổ suý một quan điểm nào, tôi không nghĩ rằng một lập trình viên nhất định phải cần bằng ĐH, vì ở Việt Nam cũng không dễ để chúng ta bước vào giảng đường ĐH, nhưng tôi không cổ vũ việc bỏ học trừ khi họ biết chắc chắn mình đang làm gì. Khi tôi hỏi những bạn đã từng có ý định hoặc đã bỏ học, tôi thường nhận được những lý do sau, và tôi thì có những suy nghĩ khác:

Học ĐH quá nhàm chán

Đúng. Không chỉ học ĐH, học gì cũng nhàm chán, hoặc không nhàm chán — đó là do cách suy nghĩ và tiếp cận của mỗi người. Nếu chúng ta học ĐH chỉ vì lý bị định hướng tới một lĩnh vực không yêu thích (cũng khá nhiều tại Việt Nam), và rồi bỏ học để theo đuổi đam mê — quá đúng đắn, vì chẳng gì tệ hại hơn khi chúng ta phải làm việc mà thiếu đam mê. Nhưng nếu chúng ta bỏ học ĐH và vẫn làm công việc cùng ngành được đào tạo, theo tôi là không hợp lý.

Nếu chúng ta không thể khiến những môn học sinh động và vui nhộn hơn, làm sao chúng có thể làm việc trong mọi dự án khi công ty yêu cầu? Nếu chúng ta chỉ luôn muốn học những thứ mình cho là hữu ích, làm những việc mình thích, tôi nghĩ sẽ cần rất nhiều thời gian để tìm kiếm được một tổ chức cho chúng ta điều đó. Vậy tại sao không biến những thứ nhàm chán trong trường ĐH thành những thứ vui nhộn hơn và coi đó là một cách luyện tập suy nghĩ tích cực? Data structure and algorithm có lẽ là môn học lý thuyết và nhàm chán nhất, nhưng sao không áp dụng nó để viết một chương trình tính đường đi hiệu quả từ nhà mình tới nhà bạn gái?

Tôi thích những sinh viên biết cách “chịu đựng” một môn học nhàm chán, bởi sau này, họ sẽ sẵn sàng nhận bất cứ công việc gì trong một thời gian ngắn để duy trì đam mê lâu dài. Tôi thích hơn những sinh viên biết cách khiến mọi môn học trở nên sinh động, bởi họ có tiềm năng sáng tạo lớn. Cả hai con người này đều rất quý với mọi tổ chức, và những môn học như vậy tại trường ĐH là một cách để rèn luyện không thể tốt hơn.

Trường ĐH học quá nhiều môn vô bổ, học xong vẫn chưa thể làm việc ngay

Đúng. Khoảng 80% những kiến thức và kỹ năng chúng ta học được có vẻ vô bổ. Theo định luật 80/20 thì chỉ khoảng 20% những gì chúng ta học được tại trường ĐH sẽ mang lại khoảng 80% giá trị sau này. Nhưng hãy nhớ, chúng ta còn 20% giá trị — dù nó được tạo thành bởi tới 80% kiến thức và thời gian — thì nó cũng là phần đưa chúng ta tới nhóm vượt trội và khác biệt.

Nhiều doanh nghiệp phàn nàn rằng sinh viên sau khi tốt nghiệp ĐH vẫn không đáp ứng được ngay yêu cầu của về kiến thức và kỹ năng. Đây cũng không phải là vấn đề của riêng Việt Nam. Vậy chúng ta cần nhớ rằng, trường ĐH đào tạo những kiến thức và kỹ năng cơ bản, vững chắc để những sinh viên sau khi tốt nghiệp có thể phát triển xa hơn. Các trung tâm đào tạo nghề hay trường cao đẳng đào tạo những con người đáp ứng ngay cho doanh nghiệp với những công nghệ mới nhất, nhưng khó có kiến thức nền đủ tốt để đi xa hơn. Một LTV tốt nghiệp ĐH với những kiến thức tốt về lập trình, hệ thống, mạng, hoàn toàn dễ dàng hiểu và chuyển đổi giữa các công nghệ với hiểu biết sâu sắc. Một LTV tốt nghiệp trường cao đẳng hay trung tâm nghề với thời gian đào tạo ngắn chỉ đủ biết lập trình căn bản và công nghệ ở lớp vỏ, họ sẽ mất bao lâu để tiếp cận làn sóng về lập trình di động? Và mất bao lâu để chuyển qua công nghệ khác khi làn sóng đã qua đi?

Và các doanh nghiệp, thì cần những nhân sự có sự khởi đầu chậm nhưng chắc chắn, làm việc lâu dài, đối diện với những thử thách công nghệ hàng ngày hay những nhân sự làm được việc ngay nhưng không thể tiến xa khi gặp thử thách mới?

Chúng ta hãy nhớ lại khoảnh khắc Luis Suarez dùng tay chơi bóng như một thủ môn tại trận tứ kết World Cup 2014. Hãy khoan thảo luận về vấn đề fair play, vì ở Uruguay, Suarez được coi là người hùng sau hành động đó. Đúng vậy, nếu Suarez chưa từng chơi bóng bằng tay trong các buổi tập thì anh khó có thể trở thành người hùng của cả đất nước Uruguay chỉ trong một tích tắc. Quan trọng là khi khoảnh khắc gọi tên, Suarez đã có sự chuẩn bị đủ kỹ năng cần thiết. Đó chính là sự khác biệt.

Ngày nay, những kiến thức đó có thể học ở các khoá học online

Đúng. Ngày nay chúng ta có thể tiếp xúc với rất nhiều những khoá học online từ những trường ĐH hay chuyên gia hàng đầu qua Coursera, Pluralsight… Vậy bạn có thể cho tôi xem danh sách 40 khoá học bạn đã hoàn thành tương ứng với các môn học tại trường ĐH được không? Chúng ta sẽ trả lời ra sao với câu hỏi đó từ nhà tuyển dụng? Sự khác biệt giữa một bên là bắt buộc tại trường ĐH và một bên là tuỳ chọn tại những khoá học online. Và thường thì lựa chọn của chúng ta ít khoa học khi chúng ta chưa đạt tới một trình độ nào nhất định — cũng giống như chúng ta thường ăn uống theo sở thích thay vì theo khoa học dinh dưỡng khi còn học mẫu giáo. Hay ít nhất là các môn học tại trường ĐH đã được nghiên cứu, sắp đặt bởi những người có kinh nghiệm trong ngành.

Tấm bằng đó tự bản thân nó không đại diện cho điều gì cả ngoài học phí đã trả và thời gian mà bạn dành cho nó.

Đây là câu nói được nhiều người hưởng ứng trong bài viết Lập trình viên có thực sự cần bằng cấp, nhưng theo tôi, không học ĐH đồng nghĩa với chúng ta bỏ lỡ nhiều hơn…việc đóng học phí.

Trải nghiệm

Đúng. “Hạnh phúc không phải là cảm giác tới đích mà là trên từng chặng đường đi.” (Che Guevara). Học ĐH là một trải nghiệm khác biệt. Chúng ta đều biết, ở đâu có thư viện, có phòng lab, có những đêm dài thức trắng khi ngày thi gần tới? Ở đâu có sự ganh đua để giành những suất học bổng có hạn nhưng luôn chia sẻ cùng nhau tiến bộ? Ở đâu có những hoạt động cộng đồng, tình nguyện — dù có tham gia hay không, chúng ta cũng ở “đủ gần” để biết chúng được tổ chức ra sao?

Và trên hết, một thứ gần như chúng ta chỉ có khi là sinh viên ĐH: các cuộc thi Olympic, các nghiên cứu khoa học — không hẳn là giải thưởng, thứ hạng là thước đo để chúng ta biết mình đang ở đâu trong một lĩnh vực nhất định.

Thước đo tốt hơn

Một điều chắc chắn là: Hơn 90% những con người xuất sắc nhất trong cùng lĩnh vực với chúng ta đã và đang học ĐH. Và rất nhiều những nghiên cứu và sản phẩm đột phá đều đi ra từ đây. Không học ĐH, chúng ta mất đi cơ hội tiếp xúc với những con người đó để biết mình đang ở đâu. Nếu không học ĐH, có lẽ chúng ta chỉ biết tới những người như Bill Gates, Steve Jobs hay Mark Zuckerberg,.. nhưng việc đó không giúp ích nhiều, vì thực sự có cố gắng cả đời thì gần như chúng ta không có nhiều cơ hội sánh ngang với những con người đó — đơn giản vì không phải ai cũng có thể trở thành huyền thoại. Nhưng những giáo sư ĐH, những bạn học cùng lớp cũng là những người rất đáng ngưỡng mộ và đủ để chúng ta phấn đấu đạt đến “đẳng cấp” của họ, đơn giản vì chúng ta được tiếp xúc hàng ngày, và ở khoảng cách “gần” hơn trên thước đo hơn về trình độ. Tất nhiên, dù rất tài năng nhưng những con người đó không xuất hiện nhiều trên tạp chí, sách báo như Bill Gates hay Steve Jobs, nhưng chúng ta lại có cơ hội trao đổi thậm chí làm việc chung tại phòng lab.

Một điều rất dễ thấy là những sinh viên tốt nghiệp các trường hàng đầu thường rất tự tin. Theo tôi lý do chính không nằm ở việc họ tự tin về tấm bằng hay tên tuổi của ngôi trường mà bởi những người bạn học. Nghe hơi nực cười? Có thể. Khi chúng ta dù không có thành tích gì nổi bật, nhưng quá trình học có thể cạnh tranh (hoặc chỉ đơn giản là “bám theo” được) với bạn cùng lớp đã đạt HCV Olympic quốc gia, chúng ta có đủ cơ sở để tự tin. Khi không có một mốc chuẩn để so sánh, chúng ta thường không đủ tự tin (hoặc quá ảo tưởng) vì không biết mình đứng ở đâu. Và tất nhiên, những (con người) “thước đo” tốt nằm trong trường ĐH.

Như tôi đã nói, một trong những trải nghiệm tốt nhất tại trường ĐH là các cuộc thi Olympic — là nơi “thước đo” được mở rộng ra phạm vi lớn hơn, trong một quốc gia hay khu vực thay vì chỉ trong 1 trường hay 1 tổ chức chúng ta đang hoạt động.

Những mối quan hệ (kết nối) tốt

Đây có vẻ như là hệ quả của những phân tích trên. Những người tốt nhất trong ngành chủ yếu xuất thân từ trường ĐH, và cơ hội để có những mối quan hệ tốt luôn mở rộng tại đây. Tôi không phủ nhận việc chúng ta có thể xây dựng những mối quan hệ tốt nếu không học ĐH, nhưng sẽ là khó khăn hơn rất nhiều. Cơ hội để chúng ta có một người bạn sau này làm tại Microsoft, Google, Facebook… tại trường ĐH là rõ ràng hơn. Những mối quan hệ đó tối thiểu cũng mang lại lợi ích để chúng ta “đo” mình với một nhân viên Microsoft hay Google.

Cơ hội

Chúng ta vẫn cần nhớ rằng Bill Gates, Steve Jobs hay Mark Zuckerberg đều tạo ra những sản phẩm huyền thoại khi đang là sinh viên ĐH. Và những người cộng tác cùng họ đều là bạn đồng môn. Và tất nhiên, Chris Hughes, Eduardo Saverin,.. sẽ chẳng có những cơ hội cộng tác và tạo ra những sản phẩm tuyệt vời nếu không bước vào giảng đường ĐH và kết thân với những tài năng này. Và dù họ không trở thành huyền thoại như những tên tuổi trên, nhưng họ cũng rất thành công, vẫn tận hưởng bầu không khí và nhận bằng ĐH.

Hoàn thành một công việc

Đúng. Không chỉ nói về học phí, mảnh bằng ĐH chứng nhận chúng ta đã đủ “lỳ lợm” để hoàn thành một công việc. Dù vất vả, nỗ lực hay an nhàn; dù hăng say hay cam chịu học tập; dù “thi thật” hay “thi giả”; dù “học gạo” hay “học tiền”, thì ở một khía cạnh cũng cho thấy sự cố gắng hết sức, bằng nhiều cách để chúng ta hoàn thành một công việc. Đó ít nhất là bài học đầu tiên về sự kiên nhẫn cho một công việc với thời gian đủ dài.

Tôi thực sự biết lập trình khá sớm, và viết phần mềm từ năm 17 tuổi. Vào năm cuối THPT, tôi ngỏ ý với ba mẹ về việc không học ĐH bởi thực sự tôi có đủ kiến thức và kỹ năng của một LTV tốt thời đó. Mẹ tôi chỉ nói rằng: Nếu con sợ việc thi rớt ĐH đến nỗi không dám đăng ký thì chắc cũng không thể làm được phần mềm. Và bởi tự ái, tôi đã đăng ký thi, bỏ tiếp 4 năm để học ĐH. Nhưng tôi thật sự coi trọng thời gian đó — dù tôi không thường xuyên tới lớp — bởi tôi có một trải nghiệm, những mối quan hệ đủ dài và hữu ích cho công việc sau này.

Thế giới bây giờ thực sự nhiều cám dỗ. Chỉ cần một chút kỹ năng, nhiều công ty sẽ trả cho chúng ta một khoản thu nhập đủ hấp dẫn để chúng ta bỏ học. Chỉ cần một ý tưởng, chúng ta nghĩ mình có thể thay đổi thế giới, và cần làm ngay vì thị trường quá biến động. Chỉ cần một sáng đọc báo, chúng ta có hàng ngàn câu nói từ nhà tuyển dụng “chỉ cần kỹ năng, không cần bằng cấp”, hàng chục hình mẫu huyền thoại thành công không cần bằng cấp. Điều đó làm những bạn trẻ không đủ kiên nhẫn. Và tôi để ý thấy tỉ lệ sinh viên bỏ học ĐH ở ngành CNTT dường như cao hơn các ngành khác, có thể vì thị trường CNTT đang thực sự sôi động và cũng nhiều cám dỗ hơn, cũng như cái lệ “không cần bằng cấp” trong lĩnh vực này cũng rõ ràng hơn. Nhưng cần phải nhớ rằng, trong hàng triệu người bỏ học ĐH, chỉ một số ít trở thành huyền thoại.

Một LTV không nhất thiết cần học ĐH, nhưng nếu đã có cơ hội để học ĐH, hãy cân nhắc thật kỹ trước khi chúng ta đóng cánh cửa đó lại, ít nhất với những lý do trên.

Và đúng là bằng ĐH thì không quan trọng, nhưng nó cho thấy chúng ta đã có đầy đủ trải nghiệm ĐH và sẵn sàng cho một tương lai xa bởi đã có sự chuẩn bị tốt.

Ảnh: Nguồn http://simpleprogrammer.com/2014/07/07/software-developers-really-need-degrees/

 2,418 total views,  22 views today

In the conferences and meetup, when I ask people “What are you doing? (in your company)”, I usually get these answer “I am a project manager”, “I am a team leader”, “I am a CTO”. OMG, too many PMs, CTOs here, where are our developers? These conferences don’t just open for the management positions only.

Then I found that some of them just tell me their titles, not their real jobs. It seems similar to the case of my friend, Bob, a very talent and skilled developer, became a project manager (PM) and then CTO after graduation and joining his company in 4 months. He is of course right to tell me his title but does he know what jobs need to be done by a PM or CTO? Why should a small outsourcing company, that does every project it could bid, need a CTO?

Let’s see the definition a common title (by Wikipedia):

Software project management is the art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled.

And look back to Bob’s daily work. How many time share of his daily coding in his project? 50%, 60%, 70% or 80%?

80%, sure, Bob is not a PM, he is a developer in PM title. Even though he choose 50%, he is still a developer. It seems a common case in a small company where the number of PM equals to a large company.

Why?

There are 2 reasons I see.

Small project. A small company usually does a small project with team size is about 3 to 6 members (sometimes 1 or 2) compares to large team in a bigger company.

Benefit. Company gives Bob a title (and may pay a little extra money for this title) for getting a very big benefit from him. Life is not fair. Bob feels more important as being a PM of project? Sure. Bob is mainly responsible to the success of project? Right. And what would Bob do? Double his work hours day by day. If you are a best technical and skilled guy but work in PM title, it would be a nightmare. I guess Bob hope that he is not good at technical. But if he is, it’s so difficult for Bob in getting the chance to have PM title. It sounds funny.

The pitfalls

Renaming jobs by a title this way may bring some issues to the both employee and company sides.

Bob thinks that he has enough knowledge and skills of a PM and doesn’t want to be a developer so far although he is still a good developer and bad PM in a lot of successful projects. Some months ago, I had an interview with a good candidate who truly believed that TL or PM is a position suits him and didn’t want to be a developer any more because he have worked as PM for 3 years and completed some projects well. But I asked him “How many teamwork issue did you find in the most recent project?”, “Hmm, 1 or 2”, he said. “You seems not a good PM. No matter with your teamwork issue, 1, 2 or 100, how you answer me with “hmm” and “or” shows that you didn’t monitor and control it well”. Yes, he didn’t monitor project as he should do because he spent too much time focusing on development. He was just assigned to PM position to fulfil project roles and couldn’t get enough time to do the main tasks. But it’s so hard for me to convince him joining us in a developer title although every developers manage works and the technical stuffs themselves here. The title illusion has killed a developer’s career softly.

It’s unreasonable to promote the best developer to PM position where he can show off the bad management skill but why is it the common way we are doing? It seems an easiest way to keep him here and reach out his coding competence – but it just works in a short term. If we still want, please keep him out of coding time (or at lest, have a plan to decrease it), he need to have overall view of what is going on in this project while the team is working.

The project cannot scale that way. Sure, developer is just a developer even though he is in PM title for a long time.

It’s exact my case in some years ago when I worked for a small company in several small projects and was proud of how they introduced me, PM or “Web product director” sometimes, until I spent a whole day to look back what jobs I had done, how much time shares I had spent for in this project. Then I quit thinking that way. We cannot change our jobs by just renaming them. And I see it’s the common case of the young guys especially the graduated students who always have big ambition and want to quickly have big steps in their career path. But they don’t have enough knowledge to identify it’s just a trap by the title outside.

But why shouldn’t Bob answer me “I am a developer”? I don’t know, he may feel better by “I am a PM”. But I believe in some next years, Bob may say “I am a developer, a guru”.

Let the daily main jobs set your title.

 1,399 total views