Điều gì định nghĩa vai trò của nhà phát triển phần mềm


10

Tôi là một nhà phát triển phần mềm cơ sở và tôi đã làm việc cho một công ty chưa đầy một năm.

Mặc dù tôi luôn nghĩ trở thành một nhà phát triển phần mềm có nghĩa là phát triển phần mềm và CODE một cái gì đó, nhưng các nhiệm vụ của tôi lại thuộc về loại công việc quản trị, chẳng hạn như thiết lập Jenkins, SQL Tái tạo, v.v.

Những loại công việc này có trong vai trò Nhà phát triển hay nhà phát triển chỉ phát triển phần mềm? Tôi có nên nói chuyện với người quản lý của mình về điều này? Đây có phải là cách phổ biến để các công ty đánh giá các kỹ năng "phát triển"?


9
Phụ thuộc vào người sếp tóc nhọn của bạn là ai.
Neil

Mỗi công ty sẽ xác định vai trò hơi khác nhau. Hỏi người quản lý của bạn những trách nhiệm và kỳ vọng vai trò đòi hỏi.
Bernard

4
Có những khoảng thời gian mà thợ mộc phải tải gỗ, đẩy xe cút kít, vv Tất cả đều là một phần của công việc. Nếu bạn là một thợ mộc thiếu kinh nghiệm, có lẽ bạn đang làm nhiều hơn thế so với một thợ mộc cao cấp.
Bryan Oakley

1
Phát triển phần mềm> viết mã. Nếu một nhà phát triển phần mềm không biết cách thiết lập / sử dụng và / hoặc không biết giá trị của (một công cụ như) Jenkins, thì theo định nghĩa, họ sẽ là một nhà phát triển phần mềm cơ sở (rất). Hãy xem xét việc đào tạo tại chỗ và tự cho mình may mắn rằng bạn không làm việc trong môi trường mà bạn phải chạy máy chủ CI của riêng mình trên máy ảo của riêng bạn để duy trì thời gian của chính bạn để duy trì mức chất lượng phần mềm. dự kiến, nhưng trong thực tế không khuyến khích nếu các công cụ như thế này không được phép trong các "quy trình" thủ công (chủ yếu là thủ công) của chúng.
michael

Câu trả lời:


11

Âm thanh với tôi như họ đã thuê một đàn em vì họ không đủ khả năng cho một đàn anh, hơn là vì họ thực sự muốn có một đàn em (một người mà họ có thể đầu tư và cố vấn cho đến khi họ trở thành đàn anh). Tôi đã quản lý một đội có quyết định đó buộc họ phải quản lý bởi những người quản lý không biết rõ hơn.

Anh ấy đã kết thúc với tất cả các công việc không may như tạo video đào tạo cho người dùng và tôi vẫn cảm thấy có lỗi về nó, nhưng tôi bị áp lực phải giao hàng và kỳ vọng là việc thêm một cái đầu vào phòng phát triển sẽ chỉ tăng tốc mọi thứ .

Thật không may, vì nó đặt bạn và sếp vào những vị trí khó khăn.

Anh ta có lẽ không có bất kỳ công việc nào anh ta có thể tin tưởng với một thiếu niên, và bất kỳ người cao niên nào anh ta có thể không bị phân tâm khỏi công việc hàng ngày của họ. Cách dễ dàng là cung cấp cho đàn em rất nhiều nhiệm vụ không phát triển, điều mà anh ta cũng không thực sự muốn lãng phí thời gian của các nhà phát triển cao cấp.

Nhưng một vài vấn đề phát sinh từ điều này.

Đầu tiên, loại công việc sùng đạo mà anh ấy giao cho bạn thực sự cần một nhà phát triển cao cấp. Đặc biệt, một máy chủ xây dựng nên được thiết lập bởi một người đang xây dựng phần mềm và biết điểm đau ở đâu.

Thứ hai, cơ sở không trở nên hữu ích hơn. Sau năm năm, bạn vẫn sẽ thực hiện các nhiệm vụ tương tự, vì bạn vẫn không thể tin tưởng được với công việc phát triển thực tế.

Thứ ba, đàn em cuối cùng sẽ (như bạn có) nhận ra rằng họ không giúp đỡ sự nghiệp của chính họ. Giả định rằng đàn em có chất lượng thấp, thay vì kinh nghiệm thấp (và tìm kiếm) là một sai lầm khủng khiếp, nhưng rất phổ biến trong ngành này.

Vì vậy, vâng, ngồi xuống với ông chủ của bạn. Nhưng hãy hiểu tình trạng khó khăn của anh ấy. Xem bạn có thể đi đến một sự sắp xếp nào đó để giải quyết vấn đề của mọi người không. Bạn sẽ cần một cố vấn cao cấp và một số nhiệm vụ hiện tại của bạn sẽ cần phải được chuyển cho cấp cao. Điều này sẽ làm chậm dự án, nhưng về lâu dài, nó sẽ được đền đáp. Đó là điểm bạn cần thông qua với sếp của bạn, và có thể là với sếp của họ. Ngoài ra, hãy xem nếu bạn có thể tìm thấy một cái gì đó bạn có thể cung cấp để đổi lại để giảm thiểu chi phí.

Nếu bạn không thể thì bạn có thể muốn tìm nơi khác.


Đây KHÔNG phải là nhiệm vụ "nhà phát triển cao cấp". Điều này (jenkins) chỉ là theo hướng dẫn. Nhà phát triển cấp cao quyết định con đường (từ kinh nghiệm), nhà phát triển cơ sở đi theo con đường. Nếu một nhà phát triển cơ sở phàn nàn về việc thiết lập jenkins, tôi sẽ tìm một nhà phát triển cơ sở khác; thời gian cần thiết để thiết lập nó ít hơn thời gian để đăng câu hỏi này và đọc các câu trả lời. (Tôi biết, vì tôi đã thiết lập hudson / jenkins nhiều lần. Và sao chép cơ sở dữ liệu. Sooo nhiều lần.) "Cứ làm đi," thì bạn sẽ biết cách. Nếu bạn không bao giờ học cách làm bất cứ điều gì và mong muốn được lãnh đạo, bạn chẳng là gì ngoài PHB trong đào tạo.
michael

@michael_n: Hoàn toàn không đồng ý. Có một sự khác biệt giữa thiết lập Jenkins và thiết lập toàn bộ môi trường xây dựng theo cách làm giảm nỗ lực của tất cả các nhà phát triển, đồng thời cho phép triển khai an toàn, chỉ bằng một cú nhấp chuột, v.v. Và đó là sự khác biệt giữa những gì Junior sẽ mang lại cho bạn và những gì một Senior sẽ cung cấp cho bạn, khi được yêu cầu thiết lập một máy chủ xây dựng.
pdr

... nhưng tôi đồng ý với bạn: "Có một sự khác biệt giữa thiết lập Jenkins và thiết lập toàn bộ môi trường xây dựng." Chính xác. Vì vậy, tôi đoán nó phụ thuộc nếu bạn diễn giải câu hỏi theo nghĩa đen (tôi đã làm). Cài đặt jenkins là một buổi chiều; thiết lập bản dựng / ant / maven của bạn mất nhiều ngày và có thể dễ dàng chuyển thành tuần và phải được thực hiện ngay. Những người quản lý giỏi có thể phá vỡ mọi thứ và ủy thác dựa trên kinh nghiệm (về mặt này, tôi đã từng là một người quản lý tồi, đã chọn tự mình làm mọi thứ chỉ vì nó thực sự sẽ nhanh hơn. Nhưng đó không phải là quy mô, và " nhóm "không phát triển.)
michael

@michael_n: Xem ý của bạn. Tôi có xu hướng có kỳ vọng thấp hơn của một người quản lý, tôi đoán. Đặc biệt một người thuê một đàn em vì lý do tài chính, hơn là lập kế hoạch trong tương lai.
pdr

7

Tôi thấy thuật ngữ "Nhà phát triển phần mềm" đồng nghĩa với "Lập trình viên". Do đó, một nhà phát triển phần mềm là người có trách nhiệm chính là viết mã. Trong công việc đầu tiên của tôi, tiêu đề của tôi là "Nhà phát triển" và trách nhiệm chính của tôi là thiết kế và viết mã phần mềm. Nhưng tôi nghĩ rằng không có định nghĩa chính xác của thuật ngữ này. Nó được sử dụng khác nhau bởi những người khác nhau, do đó ý nghĩa trở nên mờ nhạt.

Nhưng để nhóm phát triển hoạt động hiệu quả, bạn phải thiết lập những thứ này, máy chủ CI, sao chép SQL, Triển khai để kiểm tra máy chủ, giám sát máy chủ thử nghiệm, lưu trữ bản dựng, v.v. (Có thể không phải tất cả đều áp dụng trong mọi tình huống) .

Các tác vụ này sẽ chiếm một lượng lớn thời gian trong giai đoạn ban đầu của dự án, nhưng sẽ chiếm một lượng thời gian nhỏ hơn một khi bạn có một thiết lập đẹp đang chạy.

Thật không may, các nhà phát triển muốn mã hơn là quản lý các máy chủ xây dựng. Do đó, thông thường, các nhiệm vụ nhàm chán này rơi vào tay các nhà phát triển cơ sở, vì các nhà phát triển cấp cao có các nhiệm vụ quan trọng hơn.

Tôi chưa có kinh nghiệm về bất kỳ công ty nào sử dụng các nhiệm vụ này như một phương tiện để đánh giá các kỹ năng.

Nếu bạn không hài lòng với trách nhiệm hiện tại của mình, tôi sẽ đề nghị giải quyết vấn đề với quản lý trực tiếp của bạn.


1
Có một sự khác biệt giữa các điều khoản theo điều này .
Bernard

1
cũng theo điều này
smp7d

2

Nó phụ thuộc. Dường như các công ty khác nhau định nghĩa điều này khác nhau và đối với một số người, đây là một thuật ngữ ô cho một loạt các chức năng kỹ thuật. Đối với một số người, nó chỉ là một tiêu đề. Đặt câu hỏi tương tự trước đây, tôi nhận được câu trả lời tương tự như "Chỉ các nhà phát triển mới có khả năng thực hiện điều này trong tổ chức của chúng tôi", tôi có thể nói, nhưng điều đó không nhất thiết làm cho nó phát triển).

Câu trả lời lý thuyết là nhà phát triển (so sánh với lập trình viên / lập trình viên) là người "giải quyết vấn đề" ngay cả khi họ không phải làm gì với "mã hóa thứ gì đó".

Bạn muốn mã hóa nhiều hơn, vì vậy có thể yêu cầu người quản lý của bạn thực hiện thêm các nhiệm vụ mã hóa hoặc thực hiện một số điều bạn làm bằng cách mã hóa? Bạn đã đề cập đến công cụ vận hành, vì vậy có thể một số trong số chúng có thể được thực hiện bởi các khung DevOps (kiểm tra đầu bếpcon rối ), điều này sẽ làm cho các chức năng hiệu quả hơn và gần với sự phát triển.


2

Không có gì lạ khi Nhà phát triển dự kiến ​​sẽ có một số kỹ năng quản trị hệ thống. Là một nhà phát triển cấp cao, tôi ước tính rằng khoảng 5% thời gian của tôi dành cho các nhiệm vụ như vậy.

Tuy nhiên, nếu bạn không thực hiện bất kỳ mã hóa nào , thì có lẽ bạn nên nói chuyện với người quản lý của mình về việc nhận các tác vụ mã hóa. Rốt cuộc, bạn muốn xây dựng kinh nghiệm mã hóa. Bạn cũng có giá trị như một lập trình viên hơn là một quản trị viên hệ thống.


1

Mã không thực sự hữu ích nếu nó không được tích hợp đúng vào ứng dụng hoặc truy cập dữ liệu chính xác, vì vậy các hoạt động bạn liệt kê có vẻ rất phù hợp với những gì nhà phát triển thực hiện. Tôi nên thêm rằng các nhà phát triển phần mềm cũng bị lẫn lộn trong tài liệu và thử nghiệm là tốt. Đây là những hoạt động cần thiết trong sản xuất phần mềm.

Thật tuyệt nếu công ty của bạn có các chuyên gia có thể làm công cụ này cho bạn, nhưng nếu không, các nhà phát triển phần mềm chịu trách nhiệm cho mọi thứ (và có thể bao gồm) triển khai một ứng dụng vào sản xuất và hỗ trợ nó ở đó.


0

Điều khá phổ biến đối với một nhà phát triển trong một công ty vừa và nhỏ để đảm nhận một số nhiệm vụ cấu hình máy chủ / DBA / quản trị viên chung.

Tuy nhiên, nếu những nhiệm vụ này bắt đầu trở thành phần lớn trách nhiệm của bạn, thì đó có thể là điều cần quan tâm tùy thuộc vào mục tiêu nghề nghiệp của bạn. Mặc dù bạn có thể phát triển mạnh trong một số công ty nhất định với tư cách là một chuyên gia công nghệ, nhưng khi bạn cần chuyển sang một công ty mới, nó có thể gây ra nhiều vấn đề trong quá trình chuyển đổi của bạn. Nếu bạn không thực hiện bất kỳ sự phát triển truyền thống nào, bạn cần chắc chắn làm rõ điều đó trong sơ yếu lý lịch của mình. Nếu bạn muốn có được một công việc phát triển thẳng sau một thời gian làm việc như bạn mô tả, bạn có thể phải chấp nhận một cái gì đó bạn "đủ tiêu chuẩn" trong nhiều năm trong ngành.

Mặt khác, có thể có các công ty đang tìm kiếm các nhà phát triển với các kỹ năng đa dạng. Nhưng với xu hướng viết mã hiện nay trong các cuộc phỏng vấn, bạn cũng sẽ cần phải có các kỹ năng mã hóa đỉnh cao, ngay cả khi công việc yêu cầu ít mã khi bạn vào.

Nếu bạn không muốn bị kẹt ở vị trí hiện tại của mình, tôi chắc chắn sẽ cố gắng khắc phục tình trạng này sớm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.