2009-07-27 42 views
8

Tôi đang làm việc trên một dự án mới và chúng tôi đang sử dụng một ngăn xếp khá đẹp. NHibernate, Spring, MVC ... danh sách tiếp tục. Một điều tôi đã nhận thấy tho là trong 6 tháng kể từ khi chúng tôi bắt đầu, chúng tôi đã có một phiên bản mới của NHibernate, một phiên bản mới của bộ công cụ kiểm soát của bên thứ ba và Windows 7 đang ở trên đường chân trời. Chúng tôi gặp vấn đề trước khi bị kẹt trên một phiên bản cũ của công nghệ khiến chúng tôi phải trả giá đắt, vì vậy tôi tự hỏi một số kỹ thuật chúng tôi có thể sử dụng để giúp đảm bảo quá trình chuyển đổi sang phiên bản mới nhất của chúng là gì càng đau càng tốt?Các kỹ thuật để giữ các dự án của bạn trên phiên bản mới nhất

Trả lời

8

Tôi đồng ý với các nhận xét khác ở đây về việc cập nhật thường xuyên. Nếu bạn chờ đợi quá lâu nó sẽ là đủ công việc mà bạn sẽ nhận thấy nó trong năng suất dự án.

Cách chúng tôi thực hiện như sau.

  • Một người trong nhóm, nhận phiên bản mới nhất và đảm bảo rằng tất cả các thử nghiệm đều chạy.
  • Người đó nâng cấp mọi công cụ/dll của bạn sẽ được nâng cấp
  • Anh ấy cũng ghi lại bản nâng cấp.
  • Tạo tất cả mã để thực hiện các thay đổi cần thiết để xây dựng
  • Chạy tất cả các kiểm tra, đảm bảo chạy thử.
  • kiểm tra khói Manual UI
  • Gửi thông tin cho phần còn lại của nhóm với doc nâng cấp
  • Checkin/chắc chắn rằng nó được xây dựng trên xây dựng máy chủ

Bằng cách này chúng tôi không năng suất lỏng lẻo của đội trong suốt nâng cấp. Lưu ý điều này sẽ khó khăn hơn nhiều nếu không có kiểm tra đơn vị.

10

Khá đơn giản làm cho nó trở thành ưu tiên và nâng cấp khi bạn đi cùng. Nếu bạn cập nhật phiên bản mới nhất, sẽ có ít thay đổi hơn nếu bạn phải cập nhật 5 phiên bản cùng một lúc.

Có thể tạo chi nhánh và thực hiện cập nhật thử nghiệm cho bản beta để bạn biết các vấn đề sắp tới khi phiên bản RTM đó (nếu sử dụng betas là mối quan ngại với bạn).

+1

Quản lý thay đổi thông qua các nhánh chắc chắn là một tùy chọn. – lomaxx

4

"cập nhật sớm, cập nhật thường xuyên"

nếu bạn chờ đợi nó sẽ được nhiều hơn và khó khăn hơn do đó, đặt ưu tiên cao cho việc cập nhật hệ thống. Các nhà phát triển phần lớn thích được ở cạnh chảy máu nên họ sẽ không bận tâm quá nhiều, thách thức chính là bán ý tưởng này cho ban quản lý.

Bạn luôn có thể thực hiện từng bước một cách tốt nhất để nâng cấp từng công cụ. Sau đó, nó cũng dễ dàng hơn nếu bạn cần phải quay trở lại phiên bản cũ hơn. Cách tiếp cận Big Bang là khó khăn hơn và rất nhiều thứ có thể đi sai. Cho phép thực tế, mọi cập nhật sẽ khiến bạn tốn thời gian và cả nhóm của bạn thực hiện chuyển đổi sang phiên bản dụng cụ mới nhưng sau một thời gian, nhóm học cách xử lý và mức độ căng thẳng khi chuyển đổi phiên bản ít hơn nhiều.

+0

Điều này là tốt về lý thuyết, nhưng làm thế nào để bạn chắc chắn rằng bạn không giới thiệu các vấn đề sớm và thường xuyên? – lomaxx

+1

@lomaxx: nếu bạn không thử nghiệm nâng cấp, bạn sẽ được bảo đảm giới thiệu các vấn đề sau này. Giới thiệu các thay đổi chỉ đơn giản là một phần của thử nghiệm và QA. Thật dễ dàng và nó phải là một phần của quá trình của bạn. –

1

Nói từ quan điểm quản lý, không nâng cấp trừ khi có lý do thuyết phục. Bạn phải nhìn vào những gì nâng cấp mang đến cho dự án của bạn.Nếu không có lợi ích cho việc nâng cấp, không làm điều đó. Rõ ràng đây không phải là một quy tắc cứng nhắc và nhanh chóng, nhưng hầu hết các nhóm tôi biết không có thời gian để chi tiêu hệ thống nâng cấp không có lý do, họ quá bận rộn với yêu cầu tính năng và sửa lỗi. Tôi khuyên bạn nên làm việc trong nâng cấp trên cơ sở sau đây:

  1. Phiên bản mới chạy [đáng kể] nhanh hơn hoặc nhiều một cách hiệu quả và khách hàng của bạn/khách hàng sẽ thấy sự cải thiện này hoặc nó sẽ giảm nhu cầu phần cứng nội tại của bạn.
  2. Tính năng đã được thêm rằng bạn hoặc khách hàng/khách hàng của bạn muốn và có thể mất [ngay] lợi thế của.
  3. Tăng cường bảo mật cho an ninh lỗ hổng ảnh hưởng đến kiến ​​trúc hiện tại của bạn hoặc tương lai ngay lập tức.
  4. Lý do cấp phép/hỗ trợ. Nếu bạn là vào cuối hợp đồng thì có thể sẽ muốn thực hiện lần cuối cùng chuyển đến phiên bản cuối cùng của phần mềm mà bạn có quyền trong khi vẫn hỗ trợ nâng cấp . Cách khác, nếu bạn đang sử dụng phiên bản cũ của phần mềm tìm tài liệu hỗ trợ thì rất khó, sau đó nâng cấp chắc chắn được gọi.
  5. Một số khía cạnh của dự án mà bạn đang hoạt động trên bị ảnh hưởng trực tiếp bởi phần mềm có thể được nâng cấp . Nếu bạn đang thực hiện để làm việc với nó và thử nghiệm chức năng, có thể là thời gian tốt để nâng cấp và [có thể] sẽ không thêm tải trọng đáng kể vào dự án .
  6. Thay đổi lớn. Nếu dự án của bạn hoặc phần mềm dựa trên đã trải qua những thay đổi lớn thì có lẽ là thời điểm tốt để thêm bản cập nhật vào kế hoạch dự án của bạn. Thay đổi lớn ngụ ý thêm đường dẫn nâng cấp khó khăn và phải là suy giảm theo cơ sở được lập lịch thay vì hơn là phải đeo giày vào phút cuối do sửa chữa hoặc tăng cường cần thiết.

lý do cụ thể không nâng cấp:

  1. phần mềm, cài đặt, và kiểm tra hồi quy tốn tiền. Do đó sự cần thiết cho một lý do thuyết phục để nâng cấp.
  2. Phần mềm mới thường bị lỗi hoặc có "tính năng" không xác định. Vì lý do này, nhiều người chọn ở lại một phiên bản đằng sau bản phát hành mới nhất.
  3. Phiên bản mới hơn thường có thể chậm hơn các phiên bản trước, điều này đặc biệt đúng với các bản cập nhật và bản vá nhỏ.
  4. Sự cố tương thích. Nâng cấp phá vỡ mọi thứ, nó là tốt hơn để bỏ qua càng nhiều nâng cấp gia tăng càng tốt để tránh các bản cập nhật phá vỡ tính tương thích, khả năng tương thích có thể được sửa trong bản cập nhật tiếp theo.

Tôi khuyên bạn nên giữ danh sách tất cả phần mềm mà dự án của bạn sử dụng cùng với phiên bản và ngày nâng cấp cuối cùng (cùng với thông tin quan trọng khác như thông tin cấp phép, thông tin hỗ trợ, v.v.). Đánh giá mọi mục trong danh sách này mỗi năm một lần để đảm bảo rằng bạn không bỏ lỡ bất kỳ cập nhật nào phù hợp với lý do nâng cấp mà bạn có thể đã bỏ lỡ. Phần mềm trong danh sách này có phiên bản/ngày cũ và phiên bản mới hơn có thể đủ khuyến khích để thuyết phục quản lý rằng việc nâng cấp nên được thực hiện.

Các vấn đề liên quan