Tôi đã được giao nhiệm vụ quản lý một dự án được thuê ngoài cho một số nhà phát triển Ucraina.
Công ty đã thuê họ thông qua Elance với mức giá cố định . Vào thời điểm đó, ông chủ của tôi đã để tôi một mình xử lý chúng và hoàn thành công việc. Tôi đã tạo ra một đặc điểm kỹ thuật chi tiết của điều hoàn chỉnh cần phải được thực hiện.
Dự án liên quan đến việc xử lý những thứ như XMPP, RabbitMQ và Cơ sở dữ liệu. Trong cuộc họp đầu tiên của tôi với họ (luôn IM) tôi đã giải thích cặn kẽ những gì họ cần làm. Họ dường như hiểu điều đó - và họ rất tự tin rằng nó sẽ được thực hiện dễ dàng.
Càng xa càng tốt. Nhưng sau một tuần, khi chúng tôi gặp lại nhau, họ đầy những hiểu lầm về những gì cần phải làm. Khi tôi hỏi một trong những nhà phát triển rằng anh ta có biết XMPP không, anh ta nói rằng lần đầu tiên anh ta làm việc với nó. Trong cuộc họp đầu tiên của chúng tôi, tôi đã đề cập rất cụ thể về sự phức tạp của dự án và các công nghệ liên quan. Thêm vào đó, tôi đã nhiều lần yêu cầu họ viết một đặc tả chức năng chính xác CÁCH họ sẽ làm điều đó. Nhưng họ nói KHÔNG, và khăng khăng rằng họ thà viết mã. Tôi nói OK.
Dự án hoàn thành sau 3 tuần và họ đã giao những gì cần thiết. Lúc đó tôi bắt đầu xem lại mã. Phần lớn mọi thứ đều ổn, nhưng có một số vấn đề quan trọng:
- họ mã hóa cứng một số thứ cần tách ra thành tệp cấu hình
- có nhiều tập tin cấu hình mà tôi cần được hợp nhất trong một
- họ đã viết hoàn toàn KHÔNG có tài liệu
- một số thay đổi nhỏ khác
Tôi yêu cầu họ thực hiện những thay đổi này (trừ tài liệu) - Và, chúng tôi đã có một cuộc tranh luận.
Họ nói, vì giá đã được ấn định, tôi đã không công bằng khi yêu cầu họ thực hiện bất kỳ thay đổi nào sau khi họ hoàn thành mã làm việc. Rằng họ đã làm việc trong một khoảng thời gian không hợp lý cho dự án và bây giờ việc yêu cầu bất cứ điều gì là hoàn toàn sai lầm.
Cuối cùng bây giờ họ đã thực hiện các thay đổi, và dự án đã kết thúc. Nhưng nó để lại một số câu hỏi trong tâm trí tôi ...
Họ đã làm những gì cần thiết nhưng tôi cần nó được thực hiện đúng , và do đó những thay đổi. tôi thực sự không công bằng?
Tại sao tôi đồng ý cho phép họ viết mã mà không có đặc tả chức năng?
Tại sao tôi không chắc chắn rằng họ hiểu mọi thứ lần đầu tiên?
Có ai tìm thấy chính họ ở cùng một vị trí? Bạn có nghĩ rằng có một cách tốt hơn để quản lý các dự án thuê ngoài?
- CẬP NHẬT -
Cảm ơn tất cả các ý kiến - sau khi phản ánh toàn bộ kinh nghiệm, tôi có thể kết luận ...
Mặc dù tôi không mơ hồ về các thông số kỹ thuật từ phía tôi, tôi chắc chắn đã không làm cho chúng trở nên sắt như đề xuất. Vì vậy, việc bỏ đi là: luôn luôn cụ thể nhất có thể - đọc thông số kỹ thuật của bạn từ quan điểm của họ và xem nếu bạn bỏ lỡ điều gì. Lặp lại ít nhất ba lần.
Chỉ cần xác định những gì mã nên làm nó là không đủ. Bạn phải xác định mã được cho là trông như thế nào. Cấu trúc thư mục sẽ là gì; thậm chí tên tập tin nếu có thể. Điều này sẽ cứu bạn khỏi nhiều phiền toái sau này. Chỉ định nghiêm ngặt các nguyên tắc mã hóa, quy ước đặt tên biến, định dạng tài liệu nội bộ, v.v ... Hãy xem họ tuân thủ các nguyên tắc đó và nếu không, hãy hét lên.
Yêu cầu một đặc tả chức năng từ phía họ - nhấn mạnh rằng nó được viết trước bất kỳ mã nào. Điều này sẽ nhận được rất nhiều nhầm lẫn và hiểu lầm ra khỏi đường đi.
Xem lại mã khi nó đang được phát triển để bạn xác định sự bất thường trước đó và sửa chúng. Nói chuyện với họ ít nhất một lần mỗi ngày.
Cuối cùng, hãy cố gắng thực hiện một mối quan hệ tốt với họ. Làm cho họ cảm thấy rằng bạn đánh giá cao công việc của họ. Đừng đẩy chúng quá mức để phù hợp với hướng dẫn của bạn - thay vào đó hãy yêu cầu họ làm như vậy và nói với họ rằng điều đó sẽ giúp duy trì mã dễ dàng hơn cho bạn một khi họ hoàn thành dự án.