Tại sao phải ước lượng dự án phần mềm là gì, ước lượng dự án

Ước lượng phần mềm hay điện thoại tư vấn nôm na là Estimate là 1 trong những bước không thể không có để bắt đầu một dự án, 1-1 cử như KH giao cho công ty hay nhóm của người sử dụng một dự án công trình thì hiện nay làm nỗ lực nào để hiểu được dự án này làm cho hết bao nhiêu thời gian, với với thời gian mong ước ao Release của KH thì nên cần bao nhiêu nhân sự nhằm thực hiện, trong những số đó lại có bao nhiêu Senior, từng nào Junior hoặc Intern.

Bạn đang xem: Ước lượng dự án phần mềm là gì

Hoặc là dễ dàng và đơn giản hơn khi Teamleader giao cho bạn một màn hình, anh ý hỏi các bạn là em mất bao nhiêu thời gian để gia công màn hình này, thì phải dựa vào cái gì để giám sát đây?

*

Thường hay thì gồm 2 dạng est cho toàn bộ các case như bản thân nói ngơi nghỉ trên:

1. Thịnh hành nhất là dựa trên kinh nghiệm.

Tức là tôi sẽ làm screen này rồi, thì dự kiến khoảng tầm 3 tiếng, cũng rất có thể có siêu nhân xuất hiện nay thì thông báo là em yêu cầu 40 phút nhằm làm ngừng cái này.Ví dụ như các bạn làm Freelancer thì lại áp dụng thêm một tiếng khoảng tầm 15$ ~ 20$, thì suy ra được kiếm dc từng nào tiền sau khi làm xong.

Nhưng phương pháp này hơi là hên xui, ví như nghiệp vụ của cái screen đấy gần giống như chiếc màn nhưng bạn đã từng có lần làm. Thì dường như sai số khoảng 5~10%, mà lại nếu nhìn có vẻ giống, mà phía bên trong lại lòi ra vài chức năng khác, thì không đúng số là đã là khôn xiết lớn.

Ngoài ra cũng còn tùy trực thuộc vào người triển khai ước lượng thuộc màn chơi nào, các bạn đó cầu lượng dựa trên kinh nghiệm và khả năng của công ty đó, tuy vậy trong team, đâu phải ai ai cũng được như vậy

*

Và tất nhiên bạn commit thời gian xong như cụ nào, thì cần phải cố gắng, rồi OT thực hiện đúng commit kia thôi.

Nhưng năng lực là không người nào muốn trường vừa lòng đó xẩy ra cả.

2. Phương pháp 2 là dựa trên dự kiến bằng khoa học và phương pháp tính toán.

Đây là phương pháp mình đang ao ước muốn share tới chúng ta trong phạm vi nội dung bài viết này.

Tức là cùng với từng chức năng, screen mà mình sẽ cố bí quyết tính tương xứng để đưa ra con số cuối cùng, và từ con số đó có thể tính toán ra được manhours hoặc Line
Of
Code.

Các phương thức này thì thường năng lực sai số chỉ ở mức dưới ~ 15% tùy trực thuộc vào thời gian áp dụng, thời gian áp dụng ngơi nghỉ đây giống hệt như kiểu là vừa có tác dụng vừa học tập và thay đổi trọng số mang lại phù hợp. Áp cần sử dụng cho càng nhiều dự án công trình thì sau này độ đúng đắn càng cao.

Nghe thì có vẻ như to to là chỉ áp dụng cho quy mô dự án, nhưng thực tiễn là phần lớn task nhỏ dại các chúng ta được leader giao cũng trả toàn có thể áp dụng được, với sẽ giảm được không ít rủi ro cho các bạn và dự án.

*

Có tương đối nhiều cách thức hỗ trợ mình thao tác làm việc này, từ bây giờ mình xin phép chỉ ra mắt về phương pháp khá cơ phiên bản là Function Point Analytics (FPA) thôi.

Về cơ phiên bản là FPA là phương thức đếm chức năng/item trong một màn hình hoặc cả 1 dự án, kế tiếp áp dụng phương pháp để suy ra được điểm, từ số đặc điểm này thì suy ra được 2 mẫu mấu chốt là LINE OF CODE hay những Man
Hours.

Và tất yếu từ 2 mẫu output này thì chúng ta hoàn toàn rất có thể est được task bản thân làm, hoặc các sếp cai quản có thể tính được dự án này bắt buộc làm vào bao lâu cùng KH đề nghị chi bao nhiêu tiền và nên bao nhiêu tín đồ để thực hiện.

Với FPA thì có thể ước lượng được:

Dự án bắt đầu hoàn toàn
Dự án Maintaince
Dự án Đang chạy Production

Bên trong số ấy thì dựa vào 5 yêu tố chính để tính toán ra số lượng cuối cùng

Về DBVề Màn hình
Về Input/Output những file bên ngoài hệ thống
Liên kết đến khối hệ thống thứ 3...

Tính toán riêng cho từng yêu tố kia và cộng lại thì ra được điểm cuối cùng

Cụ thể ví dụ như khi ước lượng cho một màn hình đăng nhập chẳng hạn.

*

Một màn hình hiển thị đăng nhập thì thông thường sẽ có 4 items chính

User
IDPassword
Remember
Me
Login Button

Ngoài ra thì còn tồn tại thêm những link Lost Password/Create New Account, thực tế 2 cái đó nó liên kết sang màn hình khác rồi, nên rất có thể gộp chung làm 1 thành công để tính toán, còn action thì mình lại estimate riêng cho các screen đó.

Ở màn hình hiển thị có 5 items, mỗi tác phẩm này tùy theo loại sẽ sở hữu được một trọng số riêng,

Ví dụ như Textbox, Checkbox, Button, link thì sẽ sở hữu độ phước tạp cùng point riêng, điều này thì FPA họ giới thiệu cho mình pattern sẵn, nên chỉ việc đếm cùng tính toán.

Sau lúc đếm các item trên screen rồi, thì bước đầu đếm thêm các ngoại lệ (exception) rất có thể xảy ra, ví dụ như có từng nào lỗi có thể xảy ra với màn hình hiển thị login này, như là:

Nhập sai tài khoản mật khẩu
Tài khoản không nên định dạng
Lỗi khối hệ thống (server chết)

Mỗi message này là được cấu hình tĩnh trong code, hay là đem từ file message tham thiếu, hay là lấy từ DB, tuyệt là lấy ra từ msg của thithparty trả về.

Mỗi loại đó coi như là một trong những item và lại sở hữu point riêng,

Cuối cùng họ có 1 bảng tổng hợp số lượng item theo phân loại và point tương ứng của màn hình hiển thị này.

Có tổng lượng point của màn hình hiển thị này rồi, thì còn cần thêm một bước là nhân cùng với trọng số của nước ngoài cảnh, có 14 tác nhân ngoại cảnh có thể ảnh hưởng đến số lượng point cuối cùng,

Ví dụ như:

Xử lý phân tán tuyệt không
Xử lý cùng với performance cao
Có dùng lại được hay không.Triển khai có thuận tiện không....

Sau lúc nhân cùng với trọng số ta sẽ sở hữu được con số Point cuối cùng, có con số này thì việc sót lại khá 1-1 giản.

Thường thì có 2 cách chính để đầu ra ra kết quả từ con số FPA này,

Output thẳng ra Manhours
Ouput ra LOC tiếp đến ra Manhours

Cách 1 thì thường đo lường và tính toán bằng 1 trọng số, nó được đưa ra dựa trên con số project mà bọn họ đã làm trước đó và tính trung bình, tức là ước lượng lại các dự án sẽ làm, nhằm ra con số Point, tiếp đến +-*/ nhằm ra số trọng số trung bình nhằm áp dụng cho những dự án sau này.

Thường thường xuyên thì 1FP = 5 hours

Cách 2 thì có vẻ chính xác hơn, tự FP hoàn toàn có thể tính toán ra được LOC theo công thức có sẵn, tiếp nối tùy từ án áp dụng ngôn từ lập trình gì thì lại sở hữu cách giám sát riêng.

Ví dụ như:

Javascript/PHP: 67 LOC/FPJava/Ruby/Python: 53 LOC/FP

Ref: http://www.qsm.com/resources/function-point-languages-table

Ra được con số LOC buộc phải cho màn hình, thì có thể dễ dàng suy ra được số giờ cần để gia công và bao nhiêu thành viên các một số loại tham gia. Theo như mình tìm hiểu được thì:

1 Senior: 1 giờ đồng hồ = 100 ~ 400 LOC

1 Junior: 1 giờ = 50 ~ 100 LOC

Tất nhiên là LOC sau review, không bao gồm các chiếc blank cùng theo một số trong những tiêu chuẩn Coding Standard.

Xem thêm: Cách tạo phần mềm quản lý bán hàng bằng excel

Rồi cứ từ đó sẽ giám sát ra được số người cần làm cho tất cả 1 dự án, và hết bao thọ thì hoàn toàn có thể release được!

Hy vọng nội dung bài viết mình chia sẻ lúc này sẽ hữu dụng để hỗ trợ có quan điểm mạch lạc hơn về vấn đề ước lượng, tính toán về thời gian làm khi nhận ra một yêu thương cầu cụ thể hoặc mơ hồ.

1. Estimate vào kiểm thử ứng dụng là gì?

Estimate là một chuyển động trong việc cai quản dự án nhằm mục tiêu ước lượng bao lâu thì các bước có thể thoàn thành. Ước lượng effort cho chuyển động kiểm thử là một trong những task quan trọng và đặc biệt quan trọng trong việc quản lý dự án của QA leader.

Có hai câu hỏi mà người tiêu dùng thường kể khi đàm đạo về kế hoạch kiểm thử, đó là:

*

Đối với những dự án nhỏ, những thắc mắc này là tương đối dễ trả lời. Nhưng so với các dự án lớn thì ko hề dễ ợt để trả lời những câu hỏi trên. Cần phải có nghệ thuật để hoàn toàn có thể estimate, đưa ra câu trả lời thuyết phục cho phía khách hàng.

2. Estimate phần nhiều gì?

*

Resources: những tài nguyên được yêu mong để thực hiện bất kì task nào của dự án. Tất cả thể bao gồm con người, thiết bị, phương tiện hoặc bất kể tài nguyên làm sao được định nghĩa đề xuất cho việc ngừng dự án.Times: thời hạn là tài nguyên có giá trị tối đa trong một dự án. Mỗi dự án đều sở hữu một deadline để bàn giao (deadline delivery).Human: Số member cần thiết sẽ thâm nhập vào kiểm thử dự án. Năng lực kiểm thử bao gồm kiến thức với kinh nghiệm của các thành viên trong team kiểm thử, chúng ảnh hưởng tới câu hỏi ước tính tiến độ. Ví dụ: team thiếu tay nghề thì sẽ mất không ít thời gian hơn để ngừng dự án so với team có năng lực test giỏi hơn.Cost: đưa ra phí, chi tiêu của dự án. Nó có nghĩa là cần bao nhiêu tiền để kết thúc dự án.

3. Estimate ra làm sao - Estimation Techniques

Hiện tại, vào kiểm thử phần mềm có những kĩ thuật Estimate sau:

Work Breakdown Structure3-Point Software Testing Estimation Technique
Wideband Delphi technique
Function Point/Testing Point Analysis
Use – Case Point Method
Percentage distribution
Ad-hoc method

3 kỹ năng này thường được áp dụng:

*

Dưới đó là 4 bước để estimate và chúng ta sẽ tra cứu hiểu các bước thông qua một case study là ứng dụng Guru99 Bank.

*

Step 1: Phân chia tổng thể task của dự án công trình thành phần nhiều sub-task.

Sử dụng chuyên môn Work Breakdown Structure: Chia các task bao gồm thành những task nhỏ mà từng task đó sẽ được assign đến từng bạn cụ thể. Trong kỹ thuật này, một dự án tinh vi được tạo thành các module. Các module được phân thành các sub-module. Từng sub-module được phân chia tiếp thành các function. đọc một cách đơn giản dễ dàng là phân chia cục bộ dự án thành các task nhỏ dại nhất.

*

Áp dụng vào case study Guru99 bank thành 5 task nhỏ dại hơn:

*

Sau kia chia nhỏ tuổi từng task thành các sub-task. Mục tiêu là tạo ra các task càng cụ thể càng tốt.

*

Step 2: phân loại task cho những thành viên trong dự án.

Ở bước này, từng task được phân chia cho các thành viên phù hợp trong dự án.

*

Step 3: Ước lượng effort cho từng task.

Sử dụng chuyên môn Functional Point Method

Thực hiện tại estimate kích cỡ (kích cỡ), duration (thời gian), cost (chi phí) cho từng task:

*

Estimate size Ở step 1, họ chia tổng thể dự án thành những task nhỏ bằng cách sử dụng cách thức WBS. Ở bước này, estimate kích cỡ của các task. Size của task nhờ vào vào size của function. Size của function phản ánh qua số lượng các quá trình function đó bắt buộc thực hiện. Function nào triển khai càng những công việc, function đó càng phức tạp.

Trước khi bắt đầu estimate effort đến task, thì function được nhận xét vào 3 đội sau:

complex: các hệ thống phức tạp bao gồm nhiều thành phần can dự với nhau.medium: khối hệ thống có giới hạn số lượng các thành phần.simple: khối hệ thống có con số các nguyên tố nhỏ.

Dựa vào độ tinh vi của các tính năng phần mềm, kiểm tra manager rất có thể tự khái niệm weightage cho mỗi nhóm. Ví dụ:

*

Quay quay lại với case study Guru99 Bank. Website này được tạo thành 12 function với độ tinh vi như sau:

*

Estimate duration: sau khi phân các loại độ tinh vi của những function, rất cần được ước lượng thời lượng nhằm test

*

Total Effort: effort để hoàn thành việc kiểm thử tất cả các chức năng của hệ thống.Total Function Points: tổng số point (weightage) của cục bộ function trong hệ thống.Estimate defined per Function Points: effort vừa đủ để dứt 1 Function Point. Giá trị này phụ thuộc vào năng suất của thành viên chịu trách nhiệm về task được giao.

Giả sử dự án công trình estimate thời hạn thực hiện 1 function point là 5 giờ. Vậy tổng effort dự trù để kiểm thử tất cả tác dụng ở case study Guru99 ngân hàng như sau:

*

Như vậy tổng effort mang lại case study Guru99 ngân hàng là 170 man-hours. Ví dụ ngơi nghỉ trên cũng cho thấy tầm quan trọng đặc biệt của các member trong team. Nếu team có khá nhiều member khả năng và giàu kinh nghiệm thì tất cả thể dứt nhiệm vụ được giao trong thời gian ngắn và dự án công trình sẽ xong xuôi đúng thời hạn hoặc nhanh chóng hơn.

Estimate cost: bước này sẽ giúp chúng ta trả lời các câu hỏi “How much will it cost?” giả sử, thu nhập bình quân là $5/người/giờ. Thời gian cần thiết kiểm thử toàn dự án công trình là 170 giờ. Theo đó, ngân sách chi tiêu là 5 * 170 = $850

Sử dụng nghệ thuật Three Point Estimation

Three Point Estimation là trong những kỹ thuật được sử dụng để cầu tính một task. Sự đơn giản và dễ dàng của Three Point Estimation khiến cho nó biến một kĩ thuật hữu ích nhất vào estimate dự án. 3 value vào Three Point Estimation bao gồm:

*

Với case study Guru99 ngân hàng ta sẽ tiến hành như sau:

The best case : 120 man-hours (trong 15 ngày). Trong trường hợp này, đề nghị đội ngũ các member xuất sắc để thực hiện các task trong thời hạn ngắn nhất.The most likely case : 170 man-hours (trong 21 ngày). Đây là trường đúng theo bình thường, gồm đủ mối cung cấp lực để thực hiện.The worst case : 200 man-hours (trong vòng 25 ngày). Trường thích hợp này rất cần phải thực hiện quá trình mất nhiều thời hạn hơn vì các thành viên không tồn tại kinh nghiệm.

Gán giá trị cho mỗi thông số như sau:

*

Effort tính bởi công thức double-triangular như sau:

*

trong kia E là Weighted Average, đó là estimation effort quan trọng cho task.

Công thức tính độ lệch:

*

Theo kia để xong xuôi task buộc phải 166.6 ± 13.33 Man-hour (153.33 to 179.99 man-hour).

Step 4: xác nhận estimation.

Sau lúc estimate xong, đề xuất chuyển tiếp mang đến Project Management, những người sẽ review và approve, hồ hết bên tương quan như khách hàng hàng...

Một số tip để estimate hiệu quả:

Thêm một khoảng chừng thời gian dự trữ và nguồn lực có sẵn dự phòng: các thứ tất yêu đoán trước có thể xảy ra với dự án, chẳng hạn như một thành viên chủ yếu trong team đùng một phát nghỉ bài toán hoặc ngủ phép nhiều năm ngày, những task phải mất không ít thời gian rộng so với ước tính để hoàn thành.... Đó là lý do tại sao phải một khoảng thời gian dự phòng trong estimate hoặc tất cả member dự phòng để tránh không kịp deadline.

Vận dụng tay nghề từ những dự án trước: kinh nghiệm tay nghề từ các dự án trước đây đóng một vai trò quan trọng cho việc estimate. Bởi vì một số dự án hoàn toàn có thể có một trong những điểm giống nhau, nên có thể tái áp dụng các phiên bản estimate trước đây, cố gắng khắc phục tất cả những khó khăn hay sự việc đã chạm chán phải. Phụ thuộc vào đó estimate vẫn trở nên thực tế hơn.

Bám gần kề vào estimate: Estimate hoàn toàn có thể sai. Trong quy trình tiến độ đầu của dự án, nên liên tục kiểm tra lại phiên bản estimate và thực hiện sửa thay đổi nếu bắt buộc thiết. Họ không nên không ngừng mở rộng estimate, trừ khi tất cả những đổi khác lớn trong yêu cầu, hoặc phải bàn bạc và được sự gật đầu của khách hàng khi estimate thêm.

Leave a Reply

Your email address will not be published. Required fields are marked *

x

Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.