Các nền kinh tế sai lầm tồi tệ nhất (đó là cách tiết kiệm tiền mà cuối cùng chi phí nhiều hơn so với tiết kiệm) phổ biến trong ngành công nghiệp phần mềm và làm thế nào để bạn chống lại chúng?
Các nền kinh tế sai lầm tồi tệ nhất (đó là cách tiết kiệm tiền mà cuối cùng chi phí nhiều hơn so với tiết kiệm) phổ biến trong ngành công nghiệp phần mềm và làm thế nào để bạn chống lại chúng?
Câu trả lời:
tức là "Chỉ cần làm nhanh thôi, chúng ta sẽ tái cấu trúc sau". Thứ nhất bởi vì tôi chưa thấy ai đó tham gia vào hành vi này thực sự tái cấu trúc sau này. Thứ hai bởi vì làm mọi thứ một cách nhanh chóng, thay vì cách tốt làm cho việc thêm các tính năng trong tương lai hoặc giải quyết các lỗi trong tương lai khó khăn hơn để bạn mất thời gian trong thời gian dài.
Đáng buồn thay, nhiều người vẫn nghĩ rằng nó tiết kiệm chu kỳ nhà phát triển để họ làm điều gì đó nhanh chóng. Tôi đoán nó có thể, nhưng tôi chưa thấy nó trong thực tế.
Thuê 2 nhà phát triển giá rẻ thay vì 1 thực sự tuyệt vời. (với cùng giá)
Ví dụ của tôi sẽ trái ngược hoàn toàn với ví dụ của NimChimpsky , cụ thể là:
Cố gắng phát triển một thứ gì đó trong nhà có thể mua được ngoài giá.
Thông thường điều này xảy ra do không thực sự kiểm tra thị trường để xem liệu một cái gì đó đã tồn tại sẽ giải quyết vấn đề. Điều này có thể được kết hợp bởi các nhà phát triển, những người thích "lặn" mã hóa trước khi thực hiện bất kỳ nghiên cứu nào và bởi các nhà quản lý dự án, những người không thành công trong thời gian đó = tiền.
Một trong những ví dụ phổ biến nhất tôi từng thấy trong lĩnh vực của mình, phát triển web, là các công ty đang cố gắng phát triển và hệ thống CMS nội bộ. Những thứ này luôn luôn bắt đầu nhỏ, nhưng sẽ sớm bị phình to và mất kiểm soát khi các tính năng được củng cố, trong khi mọi lúc có rất nhiều sản phẩm và khung miễn phí phù hợp hơn nhiều.
Không có tài nguyên dành riêng cho quản lý dự án
Tôi đã trải nghiệm nhiều lần khi một vài lập trình viên được ký hợp đồng và một người đã có một công việc đòi hỏi khắt khe nên đã quản lý dự án, nhưng thực tế là quá bận rộn với các nhiệm vụ khác nên dự án không bao giờ thực sự có được động lực. Các lập trình viên đã tạo ra "nguyên mẫu" và các thứ, nhưng không có người dẫn, phần lớn trong số họ đang chạy trong vòng tròn để trông bận rộn.
Thiết bị xấu cho lập trình viên mới
Tôi đã từng trải nghiệm một công ty trong đó chính sách là "lập trình viên mới phải làm việc trên một PC thực sự cũ với màn hình nhỏ cho đến khi họ chứng minh rằng họ xứng đáng". Không có gì ngạc nhiên khi một chính sách như vậy gây ra một lựa chọn tiêu cực đã loại bỏ những người tốt, những người luôn có lựa chọn làm việc trong một môi trường lành mạnh hơn.
Chúng ta có thể tiết kiệm tiền bằng cách lập trình viên tăng gấp đôi là người thử nghiệm / người viết kỹ thuật
Nếu bạn đang trả lương cho lập trình viên cho công việc của người thử nghiệm / nhà văn kỹ thuật, thì bạn đang lãng phí tiền và có khả năng nhận được công việc chất lượng thấp hơn so với người đã cống hiến sự nghiệp của họ cho nhiệm vụ đó. Ngoài ra, khi một lập trình viên chống lại việc kiểm tra thời hạn chặt chẽ và tài liệu rất có khả năng bị bỏ hoặc thực hiện nửa ass để đáp ứng nó.
BTW: Các nhà phát triển LUÔN LUÔN chống lại thời hạn chặt chẽ.
Nghiên cứu / Đọc / Viết mã không liên quan đến phát triển sản phẩm là một sự lãng phí tài nguyên.
Một số lập trình viên và thậm chí các nhà quản lý tin vào điều đó. Thông thường, họ chỉ làm lập trình dựa trên kiến thức trong đầu, và nghiên cứu và tìm kiếm câu trả lời khi họ gặp vấn đề. Họ không liên tục nâng cao kiến thức của mình một cách chủ động. Ý kiến của tôi, chúng ta nên luôn luôn cập nhật và kiến thức chúng ta thu thập sẽ hữu ích cho chúng ta trong việc giải quyết các vấn đề hiện tại và tương lai. Tất nhiên, bạn phải phân bổ thời gian của bạn một cách khôn ngoan để làm như vậy.
Điều này cũng tương tự như câu trả lời của Dan . Một số nhà quản lý chỉ muốn các nhà phát triển nhanh chóng lao vào và phát triển sản phẩm theo yêu cầu mà không cần nghiên cứu về các sản phẩm hiện có trên thị trường.
Trong nhiều trường hợp, chi phí bù đắp nhiều tiền hơn. Trong công ty của tôi, rất khó để có được các vị trí nhân viên mới, chúng tôi bị đẩy mạnh ra bên ngoài. Nó cũng khó để có được các nhà thầu tại chỗ; có tỷ lệ 3: 1 ngoài khơi so với trên bờ mà họ phải duy trì. Do đó, nhiều đội chỉ thuê một tá ngoài khơi và hầu như không sử dụng chúng, chỉ để họ có thể có được 4 nhà thầu tại chỗ.
Vòng phản hồi dài!
Nó xảy ra với tất cả mọi người: bạn xây dựng một cái gì đó mà bạn nghĩ là tuyệt vời, và hóa ra bạn đã sai. Đó không phải là vấn đề. Vấn đề là bạn mất bao lâu để xây dựng trước khi phát hiện ra rằng bạn nên dừng lại.
Ở cấp độ cao, bạn thấy vấn đề này với chu kỳ phát hành dài. Nếu bạn xây dựng trong một năm mà không có phản hồi, bạn sẽ đánh bạc cả năm. Bạn càng phát hành thường xuyên, các canh bạc của bạn càng nhỏ và bạn càng giỏi đánh bạc.
Nhưng nó cũng xảy ra ở mức thấp nhất. Là một nhà phát triển, tôi thực sự thích đánh giá mã thường xuyên (hoặc, tốt hơn, lập trình cặp) vì nó giới hạn thời gian tôi có thể tiếp tục làm điều gì đó ngớ ngẩn trước khi ai đó nói, "Này, có một cách đơn giản hơn!" Vì lý do tương tự, tôi thích các bài kiểm tra đơn vị của mình chạy nhanh và thường xuyên, vì vậy tôi có thể bắt và diệt bọ trước khi chúng phát triển.
Khi bạn bắt đầu nhận thấy tầm quan trọng của các vòng phản hồi ngắn, bạn sẽ thấy nó ở khắp mọi nơi. Ví dụ, khái niệm quân sự của vòng lặp Aluminium .
Không phải giai thoại của riêng tôi, nhưng tôi đã từng nghe về một cửa hàng ngừng cung cấp cà phê miễn phí cho các nhà phát triển của nó, nói với họ rằng bất cứ khi nào họ muốn lấy cà phê, họ có thể tự do đi bộ đến quán cà phê gần nhất (khoảng mười phút chuyến đi mỗi cách) và mua một số.
Khá nhiều định nghĩa về nền kinh tế sai lầm.
Cung cấp máy trạm một màn hình vì màn hình thứ hai quá đắt . Ngay cả khi nó chỉ giúp bạn tiết kiệm một giờ làm việc mỗi năm, một màn hình thứ hai vẫn là một khoản đầu tư tốt. Tôi biết chắc chắn rằng tôi đã tiết kiệm cho tôi rất nhiều giờ làm việc.
Thiết lập nhiều màn hình có thể làm cho hầu hết mọi tác vụ hiệu quả hơn, không chỉ các tác vụ phát triển. Ba màn hình thậm chí còn tốt hơn hai, nhưng hiệu ứng trở nên kém rõ rệt hơn với mỗi màn hình phụ.
Thiết lập nhiều màn hình:
Phần cứng rẻ nhất được trao cho một nhà tư vấn khi nhà tư vấn có giá hơn 150 $ / giờ .
Đặt nó trong viễn cảnh một phần cứng tốt hơn ít nhất có thể làm cho công việc hiệu quả hơn 30 phút mỗi ngày. Điều đó sẽ cho 30 phút * 20 ngày làm việc mỗi tháng = 600 phút / tháng = 10 giờ / tháng> nhiều hơn công việc 1 ngày = 10 giờ * 150 $ / giờ = 1500 $
Bây giờ, một nhà tư vấn sẽ làm việc hiệu quả hơn nếu anh ấy / cô ấy có một máy tính $ 1500? Nó sẽ làm cho các nhà tư vấn ít bị kích thích?
Bây giờ vấn đề dường như là có hai ngân sách, một cho tư vấn và một cho phần cứng PC.
Tháng làm việc tiết kiệm ngày lập kế hoạch
(Không đầu tư đủ thời gian vào kế hoạch)
Phổ biến nhất tôi nghi ngờ là các nhà quản lý chỉ đơn giản là không cung cấp cho các nhà phát triển các công cụ họ cần để thực hiện công việc của họ một cách hiệu quả.
Về cơ bản, điểm 9 trong bài kiểm tra Joel .
Thật không may, "ném (đủ) cơ thể vào vấn đề" vẫn có thể được sử dụng ở một số nơi. Luật của Brook không phản đối điều này từ Tháng huyền thoại , mặc dù một số yêu cầu kinh nghiệm để học bài học này. Nói chung, đây không phải là thứ nằm trong khả năng của tôi vì ban lãnh đạo có thể tin vào tuyên bố sai lầm về việc thêm người và không phải trả giá cho việc đó.
Các cuộc họp hàng ngày :
(meeting duration in hours) x (Y team members) x (average salary per hour) = ...
Mua phần mềm thay vì phát triển nội bộ.
Tôi có kinh nghiệm về các hệ thống quản lý quy mô ngẫu nhiên, tập trung vào cả Phòng thí nghiệm nhân sự và sinh học.
Một giải pháp giảm giá có giá 50 - 100 nghìn bảng Anh và cần phát triển và tùy biến hơn nữa để đáp ứng các yêu cầu kinh doanh.
Giải pháp phát triển nội bộ mất (<6) tháng để phát triển, với các dự án khác đang được thực hiện song song và sử dụng một nhà phát triển đã được sử dụng.
Tôi đã đi từ khu vực công nơi chúng tôi đã phát triển và vận hành LIMS (hệ thống quản lý thông tin phòng thí nghiệm), đến một dược phẩm quốc tế lớn nơi việc triển khai một giải pháp giảm giá đã mất hơn một năm và chưa hoàn tất.
(6 tháng của một nhà phát triển đã được thuê làm việc song song với các dự án khác. Vì vậy, ~ 10k. Và điều đó không bao gồm chi phí hỗ trợ liên quan đến giải pháp giảm giá). Điểm chính là hệ thống phát triển nội bộ đã thực sự được sử dụng! Vì vậy, sau đó bạn có lợi ích chi phí gia tăng liên quan đến điều đó, mà tôi không thể tính toán được.
Tôi đồng ý cho các trang web cơ bản, vv, tại sao phải phát triển trang web của riêng bạn. Nhưng đối với bất kỳ hệ thống phức tạp lớn nào và nếu bạn đã có kỹ năng về nhà, tôi sẽ tự mình xây dựng nó .
Mua các sản phẩm đắt tiền khi các lựa chọn thay thế nguồn mở tốt hơn và miễn phí.
Có bao nhiêu công ty sử dụng git? Có bao nhiêu công ty sử dụng một số kiểm soát phiên bản enterprisey crappy?
Vâng, việc tìm lập trình viên để duy trì mã dễ dàng hơn, nhưng việc tìm lập trình viên giỏi , những người không học được từ thông dụng mới nhất sẽ khiến họ được thuê dễ dàng hơn. Vâng, nó làm cho mã bit riêng lẻ dễ hiểu hơn, nhưng nó cũng làm cho nó cứng như 2x4 và tăng khối lượng mã cần phải hiểu. Vâng, nó được hỗ trợ bởi một tập đoàn lớn, nhưng cho biết tập đoàn lớn đổi mới chậm và quan liêu.
Quản lý dự án xấu / trưởng nhóm.
Vì một người bất tài có quyền hủy hoại công việc của một nhóm người. Cuối cùng, dự án sẽ làm tốt hơn nhiều nếu không có các quyết định quản lý cấp cao (dự án / nhóm trưởng).
Quyết định "Chỉ cần làm nhanh thôi, chúng ta sẽ tái cấu trúc sau".
Thiếu yêu cầu người dùng
Một bước quan trọng và khó khăn trong việc thiết kế một sản phẩm phần mềm là xác định những gì khách hàng thực sự muốn nó làm.
Tin hay không đôi khi phần này bị thiếu hoặc đã lỗi thời. Những gì nó nói về chi phí là người ta tạo ra các chức năng mà người dùng cuối không bao giờ yêu cầu.
Năng suất có giá trị hơn sáng tạo
Sáng tạo rất khó để đo lường nói chung, và hầu hết thường không thể quan sát, không bao giờ quan tâm đến đo lường, khi nói đến phát triển phần mềm. Năng suất, mặt khác, có thể được đo lường (thường là kém), và có thể được quan sát.
Do đó, các nhà phát triển có thể (viết nhiều dòng mã hơn | viết mã nhanh hơn | đọc thuộc lòng công nghệ nhanh hơn để trả lời các câu hỏi mất nhiều thời gian hơn để viết mã, nhưng tạo ra một sản phẩm đáng tin cậy hơn
Tất cả dưới đây có thể xấu khi sử dụng hoặc không sử dụng không đúng cách
phần mềm bên ngoài vs kênh
Tuân thủ ISO 9001 (nền kinh tế - giảm thiểu rủi ro mất MSS nếu chất lượng sản phẩm giảm)
phát triển / gia công QA
thủ tục phát triển / xây dựng / phát hành / hỗ trợ
Có quá nhiều người quản lý giao hàng không có hóa đơn.
Vài năm trước, trong công ty của chúng tôi, chúng tôi đã có một vài dự án ngân sách lớn đang diễn ra và tuyển dụng đang ở đỉnh cao. Vào thời điểm đó, công ty chúng tôi đã thuê quá nhiều người quản lý giao hàng (Nhiều người trong số họ không phải là IT!) Và rất ít lập trình viên / người kiểm thử. Tỷ lệ giữa người quản lý và lập trình viên theo nghĩa đen là 1: 2. Sau đó, sau khi hoàn thành các dự án đó, chúng tôi đã có một tình huống mà chúng tôi có nhiều người quản lý (một số trong số họ là những người chậm chạp thực sự) ngồi trên băng ghế dự bị không làm gì cả. Chúng tôi đã có một chu trình thẩm định trong đó mọi người đều được tăng / ít tiền (Ngay cả chúng tôi, những lập trình viên chăm chỉ, thở dài) để công ty không phải sa thải bất cứ ai! May mắn thay, công ty đã nhận ra tình huống này và đã thực hiện QUYỀN trong quý đầu tiên của năm nay!
Tối ưu hóa trước khi định hình (còn gọi là tối ưu hóa sớm).
Đã rất nhiều lần tôi thấy ai đó tiếp cận một giải pháp thông minh, điều đó không cần thiết làm phức tạp việc bảo trì và dễ đọc với lý do là nó nhanh hơn. Đương nhiên, mã không được đánh dấu băng ghế dự bị (thậm chí không có điểm chuẩn vi mô), do đó, mã này nhanh chóng trở nên "nhanh hơn dựa trên lập luận thuyết phục hơn" đối với một phần mã có khả năng không ảnh hưởng đến hiệu suất chung của toàn bộ ứng dụng nhiều.
Như vậy, đó là một nền kinh tế rất sai lầm, và loại nền kinh tế sai lầm đôi khi vướng víu ngay cả những thuận lợi dày dạn.
Giới hạn hoặc không có truy cập internet
Bởi vì rõ ràng nhân viên của bạn sẽ sử dụng internet để chơi các trò chơi trên facebook không quá nghiên cứu câu trả lời cho các câu hỏi kỹ thuật trên Stackoverflow.
Trong thực tế, internet là một công cụ tăng năng suất rất lớn và trong khi có thể thích hợp sử dụng một số loại bộ lọc trang web cho các trang web thực sự tinh ranh thì có gì đó sai nếu nó chặn tệp readme của studio trực quan hoặc chặn các trang quản trị cục bộ của telford vì lý do "du lịch tình dục"
Làm cho các nhà phát triển của bạn sử dụng màn hình 15 inch và PC có thông số kỹ thuật thấp vì đây là tiêu chuẩn của công ty.
Màn hình có kích thước hợp lý là giá rẻ, nhanh chóng để cài đặt và làm cho các lập trình viên làm việc hiệu quả hơn cũng như làm cho các lập trình viên của bạn nghĩ rằng bạn quan tâm đến họ.
Quá nhiều Cử nhân Quản trị Kinh doanh (hoặc tương tự), được sắp xếp theo thứ bậc, cố gắng áp dụng những gì họ nghĩ về quản lý hiện đại: Làm phiền mọi người với "KPI", "SLA" và những gì không, yêu cầu "báo cáo" (không có, tất nhiên, quan tâm đến cơ sở hạ tầng để tạo ra chúng), để các lập trình viên lãng phí thời gian để điền vào các bảng EXCEL ưa thích, báo cáo Q4 và những gì không và sao chép từ một công cụ quản lý mới tuyệt vời này và dán vào một công cụ khác (dường như đó là quy tắc các công cụ này không bao giờ được tích hợp cũng như không thể tích hợp với nhau) và tham dự các cuộc họp nơi trình bày các báo cáo và số liệu (và mọi người đều cảm thấy tội lỗi vì đã không hoàn thành điều này hoặc KPI đó).