2009-07-27 3 views
8

저는 새로운 프로젝트를 진행하고 있으며 꽤 좋은 스택을 사용하고 있습니다. NHibernate, Spring, MVC ... 목록이 계속됩니다.프로젝트를 최신 버전으로 유지하기위한 기술

내가 알아 차 렸던 한 가지 사실은 우리가 시작한 이래로 6 개월 만에 새 버전의 Hibernate, 제 3 자 컨트롤 툴킷의 새로운 릴리즈 및 Windows 7이 출시된다는 것입니다.

이전 버전의 기술로 인해 막대한 비용이 드는 곳에서 문제가 발생 했으므로 최신 버전으로 전환하는 데 필요한 기술은 무엇인지 궁금합니다. 가능한 한 고통없이?

답변

8

자주 업데이트하는 것에 대한 다른 의견에 동의합니다. 너무 오래 기다리면 프로젝트 생산성에 눈에 띄는 작업이 될 것입니다.

우리가하는 방식은 다음과 같습니다. 팀에

  • 사람은 최신 버전을 가져오고 모든 테스트를 실행해야합니다.
  • 해당 사용자가 업그레이드 할 dll/tools가 무엇이든 업그레이드하십시오.
  • 또한 업그레이드에 대해 설명합니다.
  • 빌드 할 코드를 모두 작성하십시오.
  • 모든 테스트를 실행하고 실행하십시오. UI의
  • 수동 연기 테스트는
  • 체크인/확인이 빌드 서버에 구축하게 업그레이드의 의사와 팀의 나머지 정보를 보내기

우리가 동안 팀의 느슨한 생산성을이 방법 업그레이드. 이것은 단위 테스트 없이는 훨씬 더 어려울 것입니다.

10

간단히 말해서 우선 순위를 정하고 업그레이드하십시오. 최신 버전을 최신 상태로 유지하면 한 번에 5 개의 버전을 업데이트해야하는 것보다 크게 변경되지 않습니다.

아마도 베타 버전을 만들고 베타 버전에 대한 테스트 업데이트를 수행하면 해당 버전의 RTM (베타 버전이 문제가되는 경우)을 알게 될 것입니다. 당신이 그렇게 시스템 업데이트에 대한 높은 우선 순위를 넣어 더 어려울 것이다 기다리면

+1

분기를 통한 변경 관리는 확실히 옵션입니다. – lomaxx

4

"를 갱신 일찍 자주 업데이트". 개발자는 대부분 최첨단에 머물러있어 마음에 들지 않을 것입니다. 핵심 과제는이 아이디어를 경영진에게 판매하는 것입니다.

하나씩 도구를 업그레이드하는 단계별 접근 방식을 사용하는 것이 좋습니다. 또한 이전 버전으로 롤백해야하는 경우 더 쉽습니다. 빅뱅 방식은 더 어렵고 많은 일이 잘못 될 수 있습니다.

모든 업데이트는 새로운 툴링 버전으로 전환하는 데 시간과 비용이 들지만 시간이 지나면 버전을 전환 할 때 팀이 스트레스 수준을 처리하는 방법을 배우는 데 시간이 많이 걸립니다.

+0

이것은 이론 상으로는 좋은 방법이지만, 문제를 조기에 자주 제기하지 않도록하려면 어떻게해야합니까? – lomaxx

+1

@lomaxx : 업그레이드를 테스트하지 않으면 나중에 문제가 발생할 수 있습니다. 변경 사항을 도입하는 것은 단순히 테스트 및 품질 보증의 일부입니다. 쉽고 프로세스의 일부 여야합니다. –

1

관리의 관점에서 말하지만, 설득력있는 이유가없는 한 업그레이드하지 마십시오. 업그레이드가 프로젝트에주는 영향을 살펴 봐야합니다.업그레이드에 도움이되지 않는다면 업그레이드하지 마십시오. 분명히 이것은 어렵고 빠른 규칙은 아니지만 대부분의 팀은 아무 이유없이 시스템을 업그레이드하는 데 시간을 할애 할 수 없으며 기능 요청 및 버그 수정으로 너무 바쁩니다. 나는 다음과 같은 기준으로 업그레이드에서 작업하는 것이 좋습니다 : 새 버전 가 [상당히] 빠르거나 효율적으로하고 고객 더/클라이언트가이 개선을 볼 수 또는 당신의 내재 하드웨어 요구 사항을 줄일 실행

  1. .
  2. 특징 고객 또는 고객 고객이 원하는대로 걸릴 수 있으며 [즉석]을 활용할 수 있습니다.
  3. 현재 즉각적인 아키텍처에 영향을 미치는 보안 결함에 대한 보안 강화.
  4. 라이센스/지원 이유. 당신이 계약의 끝에 을 경우 당신은 아마 당신은 여전히 ​​ 업그레이드에 대한 지원을하는 동안 을받을 수있는 소프트웨어의 마지막 버전으로 최종 점프를 확인하는 것이 좋습니다. 또는 과 같은 이전 버전의 소프트웨어 을 찾는 경우 지원 문서 을 찾는 것이 바람직하지 않으므로 업그레이드하려면 이 반드시 필요합니다.
  5. 에서 작업중인 프로젝트의 일부 측면은 업그레이드 될 수있는 소프트웨어의 영향을 직접받습니다. 이미 을 사용 중이며 기능을 테스트 할 경우 일 가능성이 있으며 일 것입니다. 은 프로젝트에 상당한 부하를 추가하지 않습니다.
  6. 주요 변경 사항 프로젝트 또는 프로젝트에 의존하는 소프트웨어가 인 경우 프로젝트 계획에 업데이트를 추가 할 때가 많습니다. 은 아마도 좋은 시간입니다. 주요 변경 사항은 더 많은 업그레이드 경로 인 을 의미하며 은 예상 수정 또는 향상으로 인해 막판에 신발 끈이 달려 있어야하는 것보다 이 아닌 일정 시간에 설득해야합니다.

구체적인 이유는 업그레이드하지 :

  1. 소프트웨어, 설치 및 회귀 테스트가 돈을 비용. 따라서 업그레이드 할 강력한 이유가 필요합니다.
  2. 새 소프트웨어는 종종 버그가 있거나 알 수없는 "기능"이 있습니다. 이런 이유로 많은 사람들은 최신 버전 뒤에 하나의 버전을 유지하려고 선택합니다.
  3. 최신 버전은 종종 이전 버전보다 느릴 수 있습니다. 특히 작은 업데이트 및 패치의 경우 더욱 그렇습니다.
  4. 호환성 문제. 업그레이드가 문제를 일으키지 않는 한, 다음 업데이트에서 수정 될 수있는 호환성 문제를 해결하기 위해 최대한 많은 증분 업그레이드를 건너 뛰는 것이 좋습니다.

프로젝트에서 사용하는 모든 소프트웨어의 목록과 버전 및 마지막 업그레이드 날짜 (라이센스 정보, 지원 정보 등)를 보관하는 것이 좋습니다. 누락되었을 가능성이있는 업그레이드 이유와 일치하는 업데이트를 놓치지 않으려면 일 년에 한 번이 목록의 모든 항목을 평가하십시오. 이전 버전/날짜 및 사용 가능한 최신 버전이있는이 목록의 소프트웨어는 업그레이드가 완료되어야 함을 관리자에게 알리기에 충분한 인센티브가 될 수 있습니다.

관련 문제