Ước tính thời gian hoàn thành công việc

Mình chưa lập trình Web bao h. Kiến thức HTML, CSS, và Javascript ở mức cơ bản nhất có thể. Mình được 1 người quen giới thiệu cho 1 cái project (có trả công), và họ hỏi làm trong bao lâu để họ tính (chắc để biết nên giao hay ko).

Những thứ sẽ dùng: SQL Server, jQuery, bootstrap 5, MVC C# và datatables.net
Trình độ của mình tự nhận xét (Basic < Intermediate < Advanced < Expert < Master)

  • SQL Server: Advanced

  • C# vanilla (ko tính MVC): Advanced

  • Còn lại là mù tịt hoặc là basic.

Source code: chỉ biết là database tables đã được tạo, chỉ việc dùng thôi.

Yêu cầu: tạo chức năng View để xem 1 bảng bất kì cho cái website. Khi hiển thị thì ra dạng bảng giống như Excel. Thêm, bớt, xóa này kia dữ liệu người dùng. Tìm và hiển thị dữ liệu trả về.

Nếu với trình độ của mình thì các bạn nghĩ nên nói bao lâu? Thầy mình từng làm game AAA hơn chục năm nói vầy: Mấy đứa như tấm chiếu chưa trải. Chưa đụng vô thì không biết bao lâu mới làm xong nên đưa 1 thời hạn thư thả thay vì cố quá rồi chết. Ước lượng thời gian hoàn thành công việc cũng là 1 nghệ thuật khi đi làm.

Mình chưa trả lời nhưng mạnh dạn nói với trình độ của mình thì 10 ngày. Nói vậy thì nhiều khả năng là rớt vì tính công theo h.

Còn với các bạn thì sao nếu đặt vào địa vị của mình? Các bạn ước tính với yêu cầu như vậy thì làm bao lâu? Mấy bạn 2-3 năm kinh nghiệm trở lên chắc nhanh hơn rồi nên các bạn đặt mình vào vị trí của mình nha (lúc mới tốt nghiệp hoặc còn ngồi trên ghế nhà trường)

Cậu có các task sau:

  • Chức năng thêm dữ liệu người dùng
  • Chức năng sửa dữ liệu người dùng
  • Chức năng xóa dữ liệu người dùng
  • Chức năng hiển thị dữ liệu người dùng
  • Chức năng hiển thị bảng bất kỳ như excel (không rõ nguồn từ đâu, và không rõ bảng như thế nào, không rõ cần cover những tính năng nào của excel trong bảng)

Chức năng “giống excel” cậu nên làm rõ nhiệm vụ của cậu. Cố gắng định nghĩa ra cụ thể nhất.

Thường thì cậu nên ước lượng khối lượng trước, dựa trên việc so sánh tương đối giữa 1 task mốc nào đó. Sau đó, cậu ước lượng thời gian cậu thực hiện task mốc, rồi từ đó cậu quy ra thời gian thực hiện toàn bộ công việc.
Tớ đánh giá task “thêm dữ liệu người dùng” là 5 point.

  • Chức năng thêm dữ liệu người dùng: 5 point
  • Chức năng sửa dữ liệu người dùng: 5 point
  • Chức năng xóa dữ liệu người dùng: 5 point
  • Chức năng hiển thị dữ liệu người dùng: 5 point
  • Chức năng hiển thị bảng bất kỳ như excel (không rõ nguồn từ đâu, và không rõ bảng như thế nào, không rõ cần cover những tính năng nào của excel trong bảng): không xác định do chưa rõ yêu cầu

=> Tổng: 20+ point
Giờ tớ sẽ hỏi cậu: cậu thấy cậu hoàn thành 1 chức năng 5 point (bao gồm design, implement, test, deploy) mất bao lâu?
Đó sẽ là vận tốc của cậu, 20+ point là quãng đường cậu cần đi. Cậu có thể suy ra thời gian của cậu là bao lâu :smile:

Hope it helps!

11 Likes

Uớc tính công việc thì chỉ có thể tự mình bạn ước tính thôi vì chỉ mỗi mình bạn hiểu rõ yêu cầu và năng lực của bản thân. Mình thấy có 2 điểm vô lý sau :

Bootstrap 5 đang là bản beta. Khách hàng nào lại yêu cầu dùng bản này.

Mình không có ý gì nhưng bạn biết game AAA là gì không ? Thầy bạn làm cho CTY nước ngoài hay làm game AAA cá nhân ? Game AAA tầm cỡ GTA5, battlefield 5, … mới được gọi là AAA

4 Likes

Member on advisory boards for Sony (PS3, 4), Microsoft (Xbox One), Renderware, Havok. Trên dưới 30 game từ arcade đến AAA có đóng góp của thầy, nổi tiếng nhất là Mortal Kombat series. Làm CTO đc khoảng 5 năm trước khi khủng hoảng kinh tế 2007/2008.

Cám ơn bạn :smiley:

Mình trao đổi với người ta bằng tiếng Anh qua email. Mình chỉ dịch sát nghĩa nhất có thể. Đưa cả cái email lên thì kì lắm

Ohm, cậu có thể thử giải thích chức năng đó rõ hơn theo ý hiểu của cậu không?
Nếu được thì tốt, vì cậu hiểu rõ yêu cầu. Nếu cậu không thể làm được, cậu cần làm rõ requirement trước khi làm bất cứ điều gì khác :smile: (Một trong các tiêu chí quan trọng để đánh giá 1 kỹ sư của tớ là họ có hỏi lại để làm rõ requirement không).

5 Likes

haha mình cũng đang chờ email trả lời của họ. Họ viết 4 cái bulletpoint nhưng 3 trong số đó yêu cầu có vẻ trùng nhau. Trong thời gian chờ đợi thì mình làm cái post này.

3 Likes

10 ngày không thể làm xong được đâu. Bởi vì chạy dạng xem thử thấy có vẻ chạy với thực tế chạy được rất khác. Mình đã từng làm một cái tương tự nhưng với ngôn ngữ PHP chứ không phải công nghệ Microsoft, chạy tốt khi số lượng biểu ghi ít, một khi số biểu ghi vượt quá N nào đó, sẽ trở nên chậm chạp đến quái dị, việc phân trang cũng chỉ giải quyết một phần. Kết quả, việc viết cho chạy mất có vài ngày, nhưng tuning cho nó chạy có thể sử dụng được trong thực tế công việc lại mất thời gian gấp 3 lần.

Hỏi chủ topic thử có làm cái này bao giờ chưa? Lấy dữ liệu theo kiểu streaming, không phải dữ liệu video và cũng không phải Ajax nhé, mà stream data từ server về, trong vài tình huống phải ước tính để stream ở chế độ nền, khi cần dữ liệu có sử dụng ngay mà không phải đợi.

6 Likes

Thím Thìn nói rõ hơn về “Lấy dữ liệu theo kiểu streaming” đi, cái này chưa hiểu lắm. Có nghĩa là query 100k record trở lên à

2 Likes

Ngày nay người ta đang xây dựng Stream API để giúp giải quyết việc đó dễ dàng hơn, nhưng hiện vẫn còn đang thử nghiệm chứ chưa đủ độ chín để dùng rộng rãi. Trước đây, các lập trình viên phải loay hoay đủ kiểu, còn phải yêu cầu người dùng cài extension cho trình duyệt như Flash Player, SilverLight.

5 Likes

Business có phức tạp không. hay chỉ CRUD trên từng table 1.
Giống excel thì có chức năng undo-redo không? có filterring, sort giống excel không? có thì vỡ mồm ấy chứ.
Data thực tế là bảo nhiêu?
Hỏi cho rõ, để chốt scope lại.
Bên này cũng đàng làm 1 cai webapp giống google sheet. và đã làm gần 2 năm… và vẫn đang làm :frowning:

9 Likes

Chuẩn. Giống excel là 1 câu chung chung nhưng lại có thể làm dự án làm mãi không xong.
Bạn chủ có thể lấy excel làm chuẩn để thiết kế tính năng nhưng nhất định phải ghi rõ làm những gì càng cụ thể càng tốt. Tránh ghi mô tả chung chung là làm giống excel

7 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?