Niit - Ict Hà Nội » Tin tức » Tin tức công nghệ » Cách xây dựng đội ngũ lập trình viên hoàn hảo
Cách xây dựng đội ngũ lập trình viên hoàn hảo

Thật dễ dàng để có thể cảm thấy thoải mái khi ở xung quanh mọi người giống như bạn. Với cùng một kinh nghiệm và văn hóa, cùng một lối suy nghĩ. Nhưng có một đội ngũ lập trình viên thành công không phải là để thoải mái, mà là về những ý tưởng mới, năng động và làm việc tốt nhất.

 

cach-xay-dung-doi-ngu-lap-trinh-vien-hoan-hao

 

Việc lắp ráp một nhóm lập trình viên để khởi nghiệp là một trong những thách thức lớn nhất mà một CTO mới sẽ phải đối mặt. Bất kể ý tưởng tuyệt vời đến mức nào, đó là những người trong nhóm của bạn, những người sẽ biến ý tưởng trở thành hiện thực sinh lợi khi bạn làm việc cùng nhau để cố gắng đánh bại thời gian, làm việc mạo hiểm. Đó cũng là nhóm của bạn, người sẽ cho phép bạn mở rộng nhanh chóng khi thời cơ đến.

 

Ngày nay, các công ty khởi nghiệp tạo ra một hệ sinh thái độc đáo, nơi các nền tảng của các công nghệ ưa thích phát triển mạnh. Nó có thể là Python, Ruby on Rails hoặc PHP, các triệu chứng vẫn giữ nguyên bất kể ngôn ngữ hoặc Framework.

 

Vì thiếu kinh nghiệm (hoặc không cởi mở) nhiều CTO rơi vào cái bẫy tạo ra một sự sùng bái công nghệ ưa thích của họ, họ cố gắng sử dụng công nghệ ưa thích của họ cho mọi việc. Thật không may, điều này được coi là tệ khi họ không bao giờ nhìn lên từ những cột mốc ngay lập tức để suy nghĩ về bức tranh lớn hơn và giải quyết câu hỏi về cách công nghệ có thể nhanh chóng để đáp ứng nhu cầu của khách hàng.

 

Đó là một bài học khó để học hỏi khi nhiều CTO khởi nghiệp chưa bao giờ xây dựng bất cứ điều gì đủ quy mô mà vẫn chịu trách nhiệm điều hành công nghệ của một công ty phát triển nhanh.

 

Câu chuyện thất bại của tôi về việc sử dụng công nghệ mình ưa thích

 

Hãy để tôi cung cấp cho bạn một ví dụ cá nhân - một kinh nghiệm từ một vài năm trở lại đã dạy tôi một số bài học khó khăn nhưng có giá trị.

 

Ruby on Rails là Web Framework phổ biến nhất hiện nay trong cộng đồng Startup - và vì những lý do rất tốt. Bạn có thể nhanh chóng phát triển ứng dụng của mình trong khi có các cách thuận tiện để kiểm tra phần mềm của bạn. Nó giúp cho bạn có thể sử dụng cơ sở dữ liệu của bạn mà không bao giờ cần phải trực tiếp ghi các truy vấn đến cơ sở dữ liệu.

 

Nhiều lập trình viên thấy điều này như là một điểm cộng lớn, vì việc học hỏi những điều không thể hiểu được của SQL có thể là một nhiệm vụ khó khăn, và tôi cũng không ngoại lệ. Vì vậy, khi xây dựng một dịch vụ web cho một cộng đồng chia sẻ hình ảnh, tôi đã chọn Rails mà không có chút nghi ngờ. Tôi không có một đội ngũ đa dạng xung quanh tôi để nuôi những ý tưởng mới. Tôi đã quá tập trung vào nhiệm vụ trong tay, bằng việc sử dụng 'ngôn ngữ lập trình' của tôi.

 

Theo thời gian, tôi đã tìm ra rằng PostgresSQL mạnh hơn rất nhiều so với phần nhỏ các chức năng Rails sử dụng. Ví dụ, nhiều chức năng có thể được thực hiện trực tiếp trong cơ sở dữ liệu và thường nhanh hơn gấp 100 lần.

 

Tôi đã buộc phải học tất cả điều này trong một thời gian rất ngắn - vì nếu ứng dụng bị cản trở bởi một dịch vụ chậm chạp, công ty của tôi sẽ không kiếm được tiền. Tôi phải nhận ra rằng Rails không phải là công cụ hoàn hảo cho công việc này. Điểm yếu vốn có của nó trong việc xây dựng các API JSON tốc độ cao cho dịch vụ hàng triệu người dùng trở nên rõ ràng hơn khi tôi tiếp tục với các tối ưu hóa của mình.

 

Nếu tôi phải xây dựng lại tất cả, tôi sẽ chọn một cách tiếp cận rất khác.

 

Tôi sẽ làm những gì tôi đã làm với Adeven và xây dựng một đội ngũ đa dạng và kỹ năng từ các ngôn ngữ lập trình khác nhau và các lĩnh vực chuyên môn bổ sung cho nhau.

 

Khi chúng tôi nói về C, C ++, C, Object-C, Ruby, Perl, R, Go, Java, JavaScript và Python. Tôn trọng sự khác biệt về ý kiến ​​và cách tiếp cận là thiết yếu trong nhóm - nếu không thì các cuộc thảo luận có thể không hiệu quả. Sự đa dạng về văn hóa cũng rất quan trọng vì nó mang đến những quan điểm mới mẻ và những cách thức mới để làm những việc trong nhóm đến từ các vùng khác hoặc thậm chí cả châu Âu.

 

Tôi vô cùng tự hào về tất cả các tính năng tuyệt vời mà các lập trình viên đã mang đến và làm phong phú thêm các sản phẩm của chúng tôi. Những thứ tốt nhất mà chúng tôi đã xây dựng là ở phía sau và bạn không thể thấy được, NHƯNG nó làm cho công việc thật sự tuyệt vời.

 

Trở lại ngày hôm nay, tôi có thể thấy nhiều người mới bắt đầu mắc sai lầm chính xác như tôi đã làm trong những ngày đầu. Các lập trình viên tuyệt vời, kỹ năng lập trình tuyệt vời, thực hành các phương pháp Agile. Tuy nhiên, một nhóm các nhà phát triển thuần nhất sẽ không bao giờ nhận ra rằng thực tế họ đang sử dụng một cái búa đã úa vàng. Chỉ một giải pháp, một lựa chọn duy nhất cho mọi tình huống giữa hàng ngàn công cụ tuyệt vời.

 

Đó là một vấn đề mà tôi thấy trong toàn ngành, ngay cả ở một số công ty lớn. Những người này cuối cùng sẽ hiểu được thông qua thất bại chắc chắn của họ, công cụ của họ sẽ phá vỡ chính sự sùng bái của họ và đến lúc đọ họ sẽ hiểu tại sao (mà có thể cái giá sẽ khá đắt).

 

Vì vậy, bạn cần tìm gì khi muốn xây dựng đội ngũ tuyệt vời, đa dạng và năng động của bạn?

 

Trong cuộc phỏng vấn tuyển dụng lập trình viên, hãy hỏi họ những gì họ đã thất bại.

 

- Nhiệm vụ nào đã đưa họ đến giới hạn của họ?

- Khi nào công nghệ yêu thích của họ chứng minh sự lựa chọn sai?

- Những gì họ lựa chọn thay thế cho các nhiệm vụ trong tầm tay?

- Họ có nhận thức được những hạn chế của công nghệ mà họ đang sử dụng không?

- Họ có ý tưởng về quy mô của nhiệm vụ không?

- Họ có hiểu được các tắc nghẽn của giải pháp của họ không?

 

Điều này sẽ giúp bạn hiểu liệu nhóm của bạn có thể xử lý việc mở rộng quy mô của một Công ty Web thành công và cạnh tranh trong một thế giới toàn cầu, đa dạng hay không.

 

 

Paul H. Müller - CTO Adjust