2008-11-12 8 views
13

프로젝트에 처음 접근 할 때 모든 것을 생각해 보거나 나중에 생각해보고 나중에 코딩하고 시작하십시오. 본질적으로, 먼저 설계하거나 신속하게 프로토 타입을 만들려고합니까?먼저 디자인 또는 프로토 타입을 만드시겠습니까?

나는 두 가지 방법으로 구워졌으며 때로는 모든 것을 시도하고 생각해 냈습니다.하지만 실제로 생각이 들지 않는 문제에 직면했을 때 고려하지 않은 문제가 발생하고 때로는 처음으로 끝내기도합니다. 전체적인 디자인을 개선하기 위해 다시 작성해야하는 코드 경험이 부족하여 많은 문제가 발생하지만 어떤 조언도 환영합니다.

+0

매우 주관적이므로이 질문에 대한 답은 없습니다. 대답을받지 않을거야. –

답변

5

먼저 디자인하는 것이 더 안전하지만 프로토 타입이 작동하지 않는다는 의미는 아닙니다. 프로토 타이핑의 실제 문제는 설계를 수행 할 때 이미 버렸던 코드를 유지하는 충동에 저항하는 것입니다.

+0

또는 경영진의 충고 "글쎄,이 작품은 왜 더 많은 시간을 필요로합니까?" – wonderchook

+0

동의! 프로토 타입을 클라이언트에게 보여줄 때와 비슷하게, 클라이언트가 실제로 작동한다는 것을 의미하지는 않는다는 것을 알았 기 때문에 이해할 수 없습니다. – Maxam

1

작업을 시작하기 전에 응집력있는 아키텍처에 대한 아이디어가 있어야합니다. 이것은 대규모 시스템에서 특히 그러합니다.

프로토 타이핑은 디자인의 특정 측면, 예를 들어 프레 젠 테이 션 레이어.

0

프로토 타입에 넣은 모든 작업을 버리는 위험을 감수하고 싶지 않다면, 필요한 작업을 수행 할 수없는 경우를 제외하고 먼저 디자인하십시오. 최소한 프로젝트를위한 높은 수준의 디자인을 만들어 프로토 타입을 제작하는 방법에 대한 결정을 내리는 데 도움이 될 수 있으므로 낭비되는 노력을 최소화 할 수 있습니다.

29

점진적 및 반복적으로 이동하십시오.

비트를 디자인하고 비트를 구현하십시오.

디자인을 시작으로 터널 효과으로 고통을 겪을 수 있습니다. 실제로 구현하기 전에 실제 피드백을 얻을 수 없습니다.

디자인없이 시작하면 후회할 결정을 내릴 수 있습니다.

이상적인 상황은 테스트하여 고객에게 시연 할 수있는 시스템의 매우 골격적인 종단 간 버전을 구현할 수있는 것입니다.

+0

+1 : 경험과 상식, 유행어에도 불구하고. –

4

Gall's Law을 참조하십시오. 핵심은 반복하는 것입니다. 조금만 디자인하고, 약간 구현하고, 조금 테스트 한 다음 당신 (또는 고객)이 만족할 때까지 반복하십시오. 이것이 새로운 유형의 민첩한 방법론의 본질입니다.

1

비즈니스 요구 사항의 종류에 달려 있다고 생각합니다. 그들이 (상대적으로) 상세하고 완벽하다면, 나는 그 요구 사항에 기초하여 디자인 할 것입니다. 시작 단계에서 거의 작업 할 사항이 없다면, 프로토 타입을 작성하여 고객에게 보여준 것을 보여 주어 추가 요구 사항 정보를받을 수 있습니다.

1

민첩한 방법론을 사용하여 개발해야합니다. 간단히 말하면, 디자인을하면됩니다. 팀은 제품 소유자와 함께 개발할 주제 목록을 정의하고 중요도 순으로 정렬하고 반복하여 개발을 나눕니다. 개발할 기능 및 반복의 시작과 같은 각 반복은 각 기능을 설계하는 것입니다.

더보기 here을 참조하십시오.

+0

답장에서 귀하의 웹 사이트에 연결하지 않은 경우 +1 ;-) –

2

에 따라 다릅니다.

프로토 타이핑은 요구 사항이나 솔루션이 반드시 명확하지 않을 때 가장 유용합니다.예를 들어 금융 재조정이 큰 환경 (대규모 상업 보험)에서 데이터웨어 하우징 프로젝트를 수행하고 있습니다. 이 프로젝트는 재무와 조화를 이루는 시스템을 확보하기위한 대규모 프로토 타입 연습과 관련이 있습니다. 이 문제를 둘러싼 비즈니스 규칙이 잘 문서화되지 않았기 때문에이 프로토 타입은 모든 모서리 사례를 노출시키는 데 도움이되었습니다.

다른 경우에는 디자인 우선 방식이 더 적절할 수 있습니다. 이는 요구 사항과 합리적인 솔루션 아키텍처가 합리적으로 명확한 경우에 가장 적합합니다.

5

은색 총알이 없습니다. 우선 디자인이 우선적 인 접근 방법 인 것 같습니다. 그러나 디자인을 구현하는 동안 발생할 수있는 모든 합병증을 예측할 수는 없습니다. 그들 중 일부는 잠재적으로 마약을 보여줄 수 있습니다. 또한 고객을 위해 글을 쓰는 경우 동일한 페이지에 있는지 확인할 수있는 것이 좋습니다.

내 직장에서는 우리는 신속한 프로토 타입을 통해 의견을 얻고 잠재적 문제를 파악합니다. 그런 다음 공식적인 설계 및 공식 구현을 수행합니다. 대부분의 경우 우리는 프로토 타이핑 단계에서 많은 코드를 회수 할 수 있습니다. 나는 우리가 대개 깨끗하고 유지 보수가 가능한 코드로 끝나기 때문에이 접근법을 좋아한다.

0

내가 만들고 싶은 것을 알고 있다면 설계를 바로 진행합니다.

클라이언트 용으로 제작하는 경우 사용자의 특정 요구 사항을 쉽게 해결할 수 있도록 프로토 타입을 작성합니다.

0

어쩌면 대답이 아니라 내 경험에 의한 제안 일 수 있습니다.

이전에 코딩을 시작한 경우 대부분의 경우 더 나을 것입니다. 소가 집에 올때까지 디자인 할 수 있지만, 코딩을 시작할 때 소가 지평선에 있다면, 신중한 설계를 제 시간에 구현하기가 어려울 수도 있습니다.

1

프로젝트에 처음 접근 할 때 프로토 타입. 그러나 모든 것을 프로토 타입하지 마십시오. 프로토 타입 하나의 중요한 것 (그것이 의미하는 것이면 하나의 "유스 케이스")와 "내면의 눈을 그 길을 따라 가라"- 그 한 가지를 해내려고 할 때 겪게되는 실용적인 문제를주의 깊게 관찰하십시오.

중요한 일을 수행하기 위해 필요한 것이 무엇인지 알았으니 이제는 첫 번째 원칙 이외의 것을 설계 할 수 있습니다.

물론 이것은 프로토 타입을 최소한의 비용으로 개발할 수있는 환경에서 작업하고 있다고 가정합니다. 그러나 그러한 환경에서 작업하는 경우 프로토 타입으로 디자인 토론을 자유롭게 할 수 있습니다. 운이 좋다면 그 중 일부를 지킬 수 있습니다. 민첩 방법은 설계를 피하기 위해 변명하지

1

참고, 그들은 단지 내가 디자인을 스케치하고 합리적으로 확인이 될 때까지 요소를 분해하기 좋아하고 작은 단위로

에서 더 자주 디자인의 테스트를 격려가 명백한 알려지지 않은 또는 위험이 없다; 알 수없는 방법과 위험이 '스파이크'프로젝트의 경우 타당성을 판단 할 수있는 시간 표시 줄과 선호되는 방법이 작동하지 않는 경우 가능한 대안에 대한 메모가 표시됩니다. 전체 아키텍처에 대해 한 번 편하게 익숙해지면 기능 상향식 (또는 우선 순위에 따라) 디자인을 완료하고 초기 테스트를 작성한 다음 구현하십시오.

EDIT : "디자인 또는 프로토 타입 첫 번째"라는 질문은 잘못된 가정을하고 있습니다.아무런 디자인도하지 않고 프로토 타입을 만들 수 있습니다. (백만 원숭이 방법론을 사용하지 않는 한)