2009-06-09 6 views
6

내가 일하는 회사가 출시 일정을 구현하기 위해 노력하고 내가에 나보다 더 구조화 된 환경에서 일하는 사람들에서 일부 건설적인 피드백을 얻을 싶어요.는 출시 일정을 구현

우리는 하나 개의 제품이 완성되고 여러 고객이 사용하고 있지만, 우리는 작품에 4 개의 추가 제품을 보유하고 있으며 마치 완성 된 것처럼 적극 판매됩니다. (상상해보십시오!)

우리는 매우 작은 회사 (예 : 때때로 엉성함)와 엄격한 마감 기한과 엄격한 예산으로 작성된 요구 사항, 체계적인 품질 보증 프로세스, 기본적으로 회사의 소유자는 개발자 (3 명)에게 아이디어를 제공하고이를 구현합니다. 그런 다음 주제 분야 전문가가 기능을 테스트하여 앱이해야 할 일을하는지 확인합니다.

나는 마지막 단락에서 모든 종류의 "당신이이 방법대로"할 수는 없다는 것을 알고있다. 그러나 나는 그런 필요가 없다. 나는이 접근법이 얼마나 틀린 지 이해합니다. 어느 시점에서 나는 프로젝트 관리자와 품질 보증 담당자를 고용 할 소유자를 알릴 수 있었지만 짧은 시간이 지나면 수익 손실로 인해 해고당했습니다. 우리는 우리가있는 곳이며,이 시점에서 문화가 바뀌지는 않습니다.

내가하려는 것은 기대를 관리하는 것입니다. 우리는 마일 길이의 요청 된 기능 목록을 가지고 있으며 여기에 제가 제안한 것들이 있습니다.

우리는 완제품 생산에 분기별로 석방 할 것입니다. 첫 번째 릴리스는 10 월에 나올 예정입니다. 중/저/낮음 우선 순위를 기준으로 현재와 다음 사이에 수행 될 작업을 관리하기보다는 현재와 9 월 사이에 완료 할 수있는 작업과 수행 할 수없는 작업을 기반으로 기능을 관리합니다. 이 시점에서 우리는 모든 기능 개발을 중단하고 다음 달에 출시 될 제품을 출시하기 위해 결함 테스트 및 수정에 집중할 것입니다. 매 분기마다이 과정을 반복하겠습니다. 기본적으로이 단계는 다음과 같습니다.

1) 모든 중요한 기능을 얼마나 중요한지에 따라 향후 릴리스에 배치하십시오. 2) 분기 중에 이러한 기능을 사용하십시오. 3) 새로운 기능이 요청되면 특정 릴리스주기의 "대기열"에 배치하십시오. 4) 기능이 현재 릴리스로 이동해야하는 경우 다른 기능을 다음 릴리스로 이동하십시오. 5)주기 중에 특정 시점에서 현재 출시되지 않은 기능을 평가하고 그에 따라 조정하십시오. 6) 생산 예정일 최소 30 일 전에 기능 개발을 끝내고 테스트 및 버그 수정에 집중하십시오. 7) 예정된 날짜에 무언가를 생산에 적용한 다음 처음에 합의한 모든 작업을 완료하지 못한 것에 대한 열을가집니다. (이봐, 나는 현실적입니다. 내가 일하는 사람들은 그렇지 않습니다.)

아, 또한, "새로운 일자리를 구하십시오"라고 말하면 대답을 귀찮게하지 마십시오. 지금은 옵션이 아닙니다.

제안 된 접근 방식이나이 프로세스를 구조화하는 방법을 더 잘 이해하는 데 도움이 될만한 리소스에 대한 링크가 있으면 크게 감사하겠습니다.

미리 도움을 주셔서 감사합니다.

다르비스

+0

"나는 할 수 없다."라고 말하면 모든 좋은 답변을 제거했습니다. "이 미분 방정식을 풀어 라. 그러나 수학은 사용할 수 없다." :) – BobbyShaftoe

답변

1

정의 된 프로세스가 없으므로 솔리드 릴리스 일정을 성공적으로 구현할 가능성은별로 없습니다. 이것은 이 아니며 단지 비관론이지만 쉽게 인정할 수 있습니다.

근면과 운이 근본적으로 성공한 것과 마찬가지로, 견고하고 반복 가능한 방출 일정은 프로세스를 기반으로합니다. 기능 사양 및 설계 사양과 같은 것들이 일관되고 견고한 일정에 발표하는 데 정말로 중요합니다. (사람들이 그런 사양을 가지고있는 이유가 무엇인지 알고 있습니다.) 그리고 그것은 당신이 당신의 일정에 부딪치지 않고 그런 것들이 없이는 기대를 풀 수 없다는 것을 말하는 것은 아닙니다. 당신은 할 수 있습니다. 그러나 그러한 프로세스를 갖추는 것이 기대를 충족시킬 수있는 가능성을 크게 높여줍니다. 왜냐하면 아직 구현 중일 때 기대가 "불합리한"영역으로 이동하지 않도록 보장하기 때문입니다.

다시 말하지만, 위에서 설명한 내용을 달성 할 수 없다는 의미는 아닙니다. 솔직히 말해서, 현장에서 설명한 프로세스를 수행하는 데 적극적으로 적대적인 환경에 있다면, 필요한 것을 달성하는 최선의 방법으로 일하고있을 것입니다. 그리고 저는 완전히 비관적 인 것을 의미하지는 않습니다. 이 일을 끝내려고 시도하는 방법에 대한 좋은 이해를 얻은 것 같습니다. 당신이 작업해야하는 것에 대해 합리적인 절차가 마련되어있는 것처럼 들립니다. 그러나 나는 당신이 단지 두 가지를 얻을 수 있다면 당신이 더 나아지는 것을 실질적으로 보장 할 수 있습니다. 1) 경영진이 소프트웨어에서 원하는 기능을 설명하는 기능 사양 및 2) 기술 사양에서부터 관리에 이르기까지 소프트웨어를 기능 사양에서 원하는대로 수행 할 수있는 디자인 사양.나는 이것이 당신의 과정에 맞을 수도 있다고 생각합니다. 기능적 명세는 복잡 할 필요가 없다. 그 (것)들에 관하여 중요한 것은 그들이이라고 쓰여진 이고, 이는 경영진이 요구 한 것에 대한 논쟁을 방지합니다. 맞아. 그리고 설계 사양은 많은 시간을 필요로하지 않습니다. 경영진이 필요한 것을 구현하는 방법 (높은 수준에서)을 알게 해주는 빠른 한 페이지 호출기는 귀하가 듣고있는 확신을 제공하고 복잡성을 이해하는 데 도움을 줄 수 있습니다 (그러나 가지 마십시오. 너무 깊다면, 그렇지 않으면 지루하고 주의력을 잃을 위험이 있습니다.)

0

자주 그리고 일찍 발표하십시오.

나는 사용자가 우리가 보여줄 때까지 그들이 원하는 것을 알지 못하는 경우가 종종 있습니다. 우리 시설에서는 경량 QA/테스트 시스템을 갖추고 있습니다. 사용자가 새로운 것을 시도하도록하십시오. 사용자가 아이디어를 승인하면이를 제작 단계로 이전합니다.이를 통해 생산 코드를 손상시키지 않고 항상 새로운 작업, 인터페이스 테스트, 데이터베이스 테이블 및 컬럼 추가 작업을 수행 할 수 있습니다.

"트릭"은 고객에게 테스트 플랫폼이 프로덕션 플랫폼이 아니라는 사실을 지속적으로 상기시켜줍니다.

+0

많은 사용자에게 테스트 플랫폼이 테스트 일임을 잊지 말라고 말하는 것은 참으로 훌륭한 라인입니다. 이것은 사용자 프로토 타입을 보여주는 것과 같은 문제입니다. – BobbyShaftoe

2

프로젝트 관리, 조직 등이 부족하다는 점을 감안할 때 분기 별 (또는 고정 날짜) 출시주기를 강요하려고 할 때 문제가 발생할 것이라고 생각합니다. 개발 시간을 허용하기 위해 개발하는 데 2 ​​개월 이상 소요되는 "큰"기능이있는 경우 특히 그렇습니다.

내 제안은 기능 기반 출시주기를 수행하는 것입니다. 기능 대기열을 만들고 특정 시간대에 합리적으로 수행 할 수 있다고 판단되는 기능을 결정하십시오. 이러한 기능을 구현하고 테스트를 위해 한 달 (또는 무엇이든)을주고 릴리스하십시오. 다음 기능 그룹으로 이동하십시오. 3 대신에 2 달이 걸리는 경우에, 중대하다. 그것이 4를 가지고가는 경우에, 그것은 역시 좋다.

내가 말했듯이, 나는 이것을 더 짧게 만들려고 노력하는 데 초점을 맞출 것입니다. 더 작은 버전을 사용하면 실제로 QA 처리 등 공식 절차 (및 인력)가 없기 때문에 실제로이 경우 도움이 될 것입니다. 융통성있게 유지하면 출시에 들어가는 문제를 해결하는 데 도움이됩니다 ...

0

소스 제어에 무엇을 사용하고 있습니까?

우리는 SVN을 사용하고 필요한 경우 다음 릴리스에서 배포 할 항목에 따라 다양한 다른 분기를 만들 수있는 유연성을 가지고 있습니다. 릴리스 a1, a2 W a3이 해제되도록 설정된 경우, 이러한 변경 사항을 프로덕션 분기에서 병합 할 수 있습니다. a2의 우선 순위가 낮아지면 a2의 변경 사항 만 롤백하거나 겹치는 부분이 있으면 새 분기를 만들고 a1과 a3 만 병합하여 나중에 릴리스 할 때 a2를 남겨 둡니다.

소유자가 주어진 릴리스 전에 사양을 다시 쓰는 가능성은 얼마나됩니까? 작동하는 곳에서 자주 발생하며, 필요한 경우 기어를 바꾸거나 롤백/다시 병합 할 수 있습니다.

0

우리 회사도 기능 요청으로 인해 수렁에 빠졌습니다.

우리가 한 일은 모든 기능을 수행하고 구현하는 데 걸리는 시간을 추정하는 것입니다. 그런 다음 다음 스프린트에서 완료 할 기능을 제공하기 위해 "변경위원회"(CEO, 팀 리더 등)에게 맡깁니다.

이렇게하면 부당하게 큰 작업 부하가 주어지지 않으며 최종 사용자는 완료된 작업에 대해 어떤 말을합니다.