Có cách nào tao nhã để phân tích quy trình của kỹ sư không?


12

Rất nhiều tình cảm tồn tại mà đo lường cam kết là không phù hợp.

Có bất kỳ nghiên cứu nào đã được thực hiện mà cố gắng rút ra nhiều nguồn hơn các cam kết - chẳng hạn như:

  • mẫu duyệt
  • Công việc IDE (cam kết trước)
  • thời gian rảnh
  • đa nhiệm

Tôi không thể nghĩ ra một cách dễ dàng để thực hiện các biện pháp này, nhưng tôi tự hỏi liệu có nghiên cứu nào đã được thực hiện không.


Về lưu ý cá nhân, tôi tin rằng sự phản ánh về 'số liệu' của chính mình có thể có giá trị bất kể (hoặc không có) sử dụng những thông tin này để đánh giá hiệu suất. IE một cách không thiên vị để phản ánh thói quen của bạn. Nhưng đây là một vấn đề thảo luận ngoài Q & A.

Câu trả lời:


6

Không chắc bạn có cho rằng nó thanh lịch hay không, nhưng Watts Humphrey đã viết toàn bộ cuốn sách có tên Quy trình phần mềm cá nhân, tất cả là về việc đo lường năng suất của chính bạn. Ông đã phác thảo các số liệu cho các đầu vào như thời gian tại bàn của bạn so với các lần gián đoạn, thời gian làm việc trên các loại hoạt động vòng đời phần mềm khác nhau, lỗi trên mỗi lượng mã. Có một báo cáo kỹ thuật cung cấp phiên bản ngắn tại:

http://www.sei.cmu.edu/lvern/abstracts/reports/00tr022.cfm

Nếu bạn muốn xem xét một cái gì đó giống như chất lượng của mã nhà phát triển, Chidamber & Kemerer đã đề xuất một số số liệu cho mã hướng đối tượng.

Số liệu cho mã hướng đối tượng

  • độ sâu của cây thừa kế,
  • số phương pháp trọng số,
  • số lượng chức năng thành viên,
  • số trẻ em và
  • khớp nối giữa các đối tượng.

Sử dụng một cơ sở mã, họ đã cố gắng tương quan các số liệu này với mật độ khiếm khuyết và nỗ lực bảo trì bằng cách sử dụng phân tích covariant. Các nghiên cứu sau đó đã phân tích tương tự trên hàng trăm dự án Java của Source Forge để xác định các đặc điểm của chúng liên quan đến Số liệu CK và một số số liệu bổ sung được đề xuất sau đó.

Số liệu phát sinh trong bối cảnh Đánh giá mã

Khiếm khuyết có thể được phân loại theo nhiều tiêu chí:

  • mức độ nghiêm trọng: (chính, phụ, mỹ phẩm, điều tra / không rõ),
  • loại (logic, lỗi chính tả, chính tả, vi phạm tiêu chuẩn mã hóa, v.v.),
  • nguồn gốc / pha ngăn chặn (yêu cầu, thiết kế, mã, v.v.).

Ngoài ra còn có tỷ lệ chuẩn bị và kiểm tra (thời gian cho mỗi người đánh giá, thời gian trên mỗi dòng mã) và mật độ khiếm khuyết (trên mỗi KLOC (nghìn dòng mã), mỗi phút thời gian của người kiểm tra / người đánh giá).

Việc vẽ các giá trị này dựa trên các biểu đồ kiểm soát có thể cho chúng ta biết liệu chúng ta có ở trong giới hạn của quy trình hay không (ví dụ: một nhóm kiểm tra 200 dòng mã không tìm thấy lỗi trong một nhóm có trung bình hai mươi lăm lỗi trên mỗi KLOC có thể bị trục trặc).

Các số liệu khác

Các số liệu khác có thể giúp bao gồm những số liệu cho

  • giá trị thu được để giúp hiệu chỉnh dự toán
  • vận tốc cho những người sử dụng Scrum hoặc Kanban .
  • Công việc của Pareto , Juran , Demming , Ishikawa và những người khác từ chất lượng và kỹ thuật công nghiệp có phần dễ mang theo để phát triển phần mềm với một chút trí tưởng tượng.

Hạn chế của phân tích

Có những giới hạn to lớn về giá trị của số liệu. Lỗi được sửa cho mỗi nhà phát triển có thể có nghĩa là hầu hết mọi thứ và khi bạn bắt đầu trừng phạt hoặc thưởng cho phép đo đó, tôi cá rằng các lỗi sẽ có nhiều hơn và chi tiết hơn, và sự pha trộn giữa các lỗi khó sửa dễ dàng cũng sẽ thay đổi khi nhóm anh đào chọn chạy đua để có nhiều nhất.

Ngoài ra còn có một sự xao lãng nhất định và có khả năng mất tập trung và thích thú có thể đi kèm với phép đo xâm nhập. Bạn không thể có được sự tao nhã (và gánh nặng cảm xúc) nhiều hơn một nhà thơ hồ như Wordsworth đã nói,

      Sweet is the lore which Nature brings;
      Our meddling intellect
      Mis-shapes the beauteous forms of things:--
      We murder to dissect.

Mặc dù phần mềm không chính xác là Tự nhiên, hãy cho tôi một chút vĩ độ vì tôi nghĩ tôi sẽ không bao giờ được sử dụng bất cứ thứ gì từ lớp Văn học Anh trung học.

Agile có thể được coi là một phản ứng đối với quá trình lớn, tập trung. Đôi khi chế độ làm việc đó có thể đòi hỏi rất nhiều nỗ lực phân tích đến mức khả năng tiếp cận dòng chảy trong khi tạo ra tất cả phần mềm đã biến mất.


Tôi thích câu trả lời này, bất kể người khác có thông qua thông tin tốt hơn hay không - vì vậy tôi đã chỉnh sửa nó cho nội dung theo từng phần.
New Alexandria

Tôi không hiểu nhận xét của bạn về giá trị kiếm được dành cho "các nhà phát triển chưa thực hiện chuyển đổi sang Agile". Chỉ cần tìm kiếm "giá trị kiếm được nhanh" và "giá trị kiếm được nhanh" mang đến nhiều người đã áp dụng các kỹ thuật EVM truyền thống vào môi trường nhanh ...
Thomas Owens

Giá trị thu được có vẻ như là một kỹ thuật thích ứng tốt liên quan đến ước tính. Tôi cho rằng ước tính Agile có các cách tiếp cận riêng của nó chủ yếu liên quan đến các điểm. Tôi sẽ xem liệu tôi có thể điều chỉnh lại mọi thứ được bao gồm không.
Nhà phát

Có toàn bộ sách về ước tính nhanh, vì vậy nó khá toàn diện. Tuy nhiên, tôi đã làm việc trong các môi trường nhanh, theo bản chất là báo cáo ra và lên, yêu cầu EVMS phải được áp dụng.
Thomas Owens

2

Tôi muốn thêm một câu trả lời thay thế từ thực tiễn kỹ thuật phần mềm tiêu chuẩn sang một lĩnh vực khác với mục đích đánh cắp từ các công cụ cơ bản mà chúng ta có thể điều chỉnh khi cần thiết. Những người đảm bảo chất lượng quan tâm đến sản xuất, sản lượng và phát hiện và ngăn ngừa lỗi, giống như các nhà phát triển phần mềm.

http://en.wikipedia.org/wiki/Seven_Basic_Tools_of_Quality

Tôi thích biểu đồ kiểm soát.

http://en.wikipedia.org/wiki/Control_chart

Thực hiện một hoạt động, vẽ một số liệu, thực hiện một số liệu khác, vẽ sơ đồ số liệu của nó, v.v. Ví dụ, cam kết cốt truyện mỗi ngày. Biểu đồ sẽ phân tán dữ liệu nằm trong khoảng từ tối thiểu đến tối đa. Có lẽ sau này bạn có thể mô tả kết quả để xác định rằng khi giá trị thấp, một cái gì đó đang cản trở tiến trình và khi nó quá cao, công việc được bắt đầu một cách nhanh chóng nhưng cẩu thả. Cách bạn khuyến khích nhân viên tăng tốc hoặc giảm tốc độ là tùy thuộc vào bạn.

Số liệu cá nhân có thể là thứ bạn có thể tự tương quan bắt đầu bằng một câu hỏi như: "Tôi cảm thấy hiệu quả nhất khi tôi ..."

  • Viết một trường hợp sử dụng hoàn chỉnh trước khi bắt đầu viết mã.
  • Viết bài kiểm tra đơn vị của tôi trước mã của tôi.
  • Thường xuyên kiểm tra với các bên liên quan để đảm bảo các yêu cầu không thay đổi và tạo ra việc làm lại lớn đối với công việc được thực hiện đối với một kế hoạch lỗi thời.
  • Thay đổi càng nhiều mã càng tốt.
  • Đại biểu xác định rõ các thay đổi cho các thành viên trong nhóm là chuyên gia nhất với các phần tôi yêu cầu họ thay đổi.
    • Cung cấp cho nhóm của tôi một cái nhìn tổng quan hoàn chỉnh, nhưng với các ưu tiên, chúng tôi có thể hoàn thành trong giai đoạn nước rút hiện tại.
    • Bắt đầu vượt qua tái cấu trúc của tôi với một danh sách phân cấp các thư mục, tệp, lớp, phương thức, phương trình, biến, tài liệu, vv mà tôi sẽ thay đổi.
    • Nghiên cứu một vấn đề cấp cao để tìm giải pháp nghệ thuật trước đó, ước tính phạm vi và các cải tiến chính cần thiết để đưa ra giải pháp tốt hơn.

Người xưa thấy những gì chúng tôi đo lường là những gì được thực hiện có thể khiến bạn tấn công vấn đề dựa trên những gì bạn xác định là yếu tố giới hạn

hoặc nhiều yếu tố theo thứ tự ưu tiên dựa trên sơ đồ Pareto.

http://en.wikipedia.org/wiki/Pareto_chart

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.