여기에 약간의 배경이 있습니다. 우리는 대기업이 아닌 소프트웨어 회사의 내부 소프트웨어 개발을 담당하는 RAD 개발자로 구성된 소규모 팀 (5 명)입니다. "내부 소프트웨어"는 MSSQL 서버를 백엔드로 사용하는 데스크톱 .NET 응용 프로그램과 백그라운드에서 실행되는 Python 스크립트의 백엔드 인 MS Word 문서 및 템플릿 (기술 동물원)에 따라 다릅니다.
전체 팀은 사용자로부터 요구 사항을 가져 와서 코딩하고 테스트하며 프로덕션 환경에 배포 할 수있는 올 로더로 구성됩니다. 프로덕션 환경의 소프트웨어는 다른 팀에서 관리하지만 문제가 발생하면 쉽게 개입 할 수 있습니다.
지금까지 모든 것이 잘 들리지만 문제가 있습니다. RAD 팀이 되려면 자주 출시해야하며, 하나 또는 두 개의 응용 프로그램의 새 버전을 출시하지 않고는 하루가 없습니다 (또는 스크립트, 업데이트 된 단어 문서 일 수 있음) , C ++ 콘솔 앱 등)을 프로덕션에 삽입하십시오. 우리는 개발 테스트를 수행하고 최종 사용자가 UAT 환경에서 소프트웨어를 실행하도록하여 최종 사용자를 참여시킵니다.
...하지만 버그는 어쨌든 생산에 들어오고 있습니다. 사용자는 이러한 버그와 가끔 불안정성이 실제로 원하는 것을 빨리 얻기 위해 지불하는 가격이라는 것을 이해하지만 동시에 우리는 생각을 얻었습니다. 아마도 개발을 개선하거나 릴리스 관행의 안정성을 향상시킬 수 있습니다. 새로운 기능을 추가 할 때 소개하는 버그 수를 줄입니다.
좋은 점은-처음에는 프로세스가 많지 않기 때문에 개선하기가 쉽고, 나쁜 점은-구현할 시간과 리소스가 거의없는 소규모 RAD 팀이라는 것입니다. 우리는 다음과 같은 이니셔티브에 대해 생각하고 있으며 피드백, 팁, 힌트 및 제안을 환영합니다.
현재 일부 응용 프로그램은 사용자 테스트를 거치지 않고 개발자 테스트 직후 프로덕션에 출시됩니다. 이러한 관행은 중단되어야하며 최종 사용자는 약간의 변경도 테스트해야합니다. 각 응용 프로그램에는 최종 사용자가 선택한 전용 베타 테스터가 있습니다. 베타 테스터가 새 릴리스를 확인한 후에 만 테스트에서 프로덕션 환경으로 승격됩니다.
우리는 코드 검토를 수행하지 않지만 우리 중 하나가 변경 세트를 체크인하기 전에 코드 검토를 시작합니다. 또한 "롤아웃 검토"에 대해 생각하고있었습니다. 기본적으로 개발자 중 한 명이 소프트웨어 롤아웃 (이진 복사, 구성 업데이트, 데이터베이스에 새 테이블 추가 등)을하는 다른 사람과 나란히 앉아 있어야합니다. 5 ~ 10 분이 걸리므로 "롤아웃 검토"시간이 많이 걸리지 않습니다.
새로운 릴리스가 프로덕션에서 풀 아웃되고 이전 버전으로 교체하기에 충분히 버그가있는 것으로 판명 될 때 롤백 시간을 줄이는 방법. 모든 버전의 이력을 이진 파일로 저장하여 한 버전으로 쉽게 이동할 수 있습니다. "새 버전의 이진 파일을 이전 버전의 이진 파일로 덮어 쓰기"는 빠르지 만 여전히 오류가 발생하기 쉬운 수동 프로세스입니다. 그리고 때때로 "롤백이 실패하고 버그 대신 시스템을 사용할 수 없게 만드는 경우"를 요구합니다.
여기에서 아이디어가 부족한 부분에 대해 의견을 듣고 싶습니다. 간단한 릴리스 / 개발 프로세스 개선 조언을 공유 할 수 있다면 정말 좋습니다.