새로운 프로젝트에 대한 계획 및 프로그래밍의 올바른 조합


10

새 프로젝트를 시작하려고합니다 (게임이지만 중요하지 않습니다). 기본 아이디어는 내 머리 속에 있지만 모든 세부 사항은 아닙니다.

계획없이 프로그래밍을 시작하고 싶지는 않지만, 단지 그것을하려는 충동과 진지하게 싸우고 있습니다. 내가 생각할 수있는 새로운 기능이 필요하기 때문에 전체 앱을 리팩토링하지 않도록 계획을 세우고 싶습니다. 다른 한편으로, 나는 여러 달 (예비 시간)을 계획하고 싶지 않습니다.이 시간에 내 동기를 잃을 것이라는 두려움이 있기 때문에 시작합니다.

내가 찾고있는 것은 둘을 지배하지 않고 둘을 결합하는 방법입니다. 스크럼 방식으로 프로젝트를 실현해야합니까? 사용자 스토리를 만든 다음 깨달아야합니까? 기능 중심의 작업을해야합니까? (스크럼과 고전적인 "코드 지정"방식에 대한 경험이 있습니다.)

업데이트 : "클릭 더미"로 시작하여 나중에 기능을 구현하는 것은 어떻습니까?

답변:


5

당신은 올바른 길을 가고 있습니다. 계획을 세우는 데 몇 개월을 소비 할 필요는 없지만 계획은 분명히 있어야합니다.

계획은 생각을 정리하고, 필요한 기술을 식별하고, 문제를 해결하고, 측정 가능한 목표로 세분화 할 수있는 로드맵을 제공하는 데 도움이됩니다.

또한이 작업이 시간 낭비라는 사실을 발견하기 위해 며칠간의 계획을 세울 수도 있습니다. 계획을 세우는 동안, 당신은 당신이 리그에서 나왔거나 당신이하려는 것을 시장에 내놓을 수 없다는 것을 알고 있습니다. 이 길을 내려가 숲에서 길을 잃기보다는 현명한 코드 덩굴과 뇌를 뒤틀는 오해의 논리로 둘러싸인 것이 아니라 다른 아이디어에 시간을 다시 투자 할 수 있다는 것을 지금 확인하는 것이 좋습니다. 매듭으로.


타겟팅 플랫폼은 일상적인 작업이므로 사용하려는 대부분의 기술을 알고 있습니다. 간단한 스크럼과 기본 계획을 사용할 것 같습니다. 따라서 백 로그로 시작할 수 있으며 각 반복에 대한 계획을 수행 할 수 있습니다.
WarrenFaith

"계획"철자가 틀립니다. 나는 당신의 의견을 편집 할 수 없기 때문에 지적 할 것이라고 생각했습니다. :) 그래, 나는 scrum이 유연성을 유지하고 프로젝트를 계속하려는 노력의 가치가 있는지 결정할 수있는 훌륭한 접근법이라고 생각합니다.
jmort253

Oo 독일어에서는 다른 방법이 있습니다. 하나의 n으로 계획하고 두 개의 m으로 프로그래밍하는 경우 ... : D 감사합니다!
WarrenFaith

@WarrenFaith-죄송합니다! 그것이 내 민족 중심주의입니다. 내 실수를 지적 해 주셔서 감사합니다;)
jmort253

11

가능한 최소 제품을 계획 하고 구현하십시오. 그런 다음 사용자의 의견을 듣고 다음 논리적 향상을 계획하고 구현하십시오. 반복.


3
.... 그리고 당신이 멋지다고 생각하는 것에 대한 아이디어를 가질 때마다 아이디어를 스크럼 백 로그에 적어 두지 만 최소한의 가능한 제품이 완성 될 때까지 구현하지 마십시오.
k3b

주된 질문은 여전히 ​​얼마나 깊이 계획해야 하는가입니다. 나에게도 그 조언을 줄 수 있다면, 당신은 그 대답을 받아 들였습니다.
WarrenFaith

1
@WarrenFaith : 특징-> 스토리->> 테스트 케이스.
Steven A. Lowe

4

프로그램을 계획하고 디자인하는 데 시간이 얼마나 걸리더라도 항상 프로그램의 일부를 다시 작성하게됩니다. 그것은 중력과 같으며 존재를 현명하게 거부하지 않습니다.

하나는 깨달아야한다 리팩토링 개발의 정상적인 부분입니다 그것은 결정의 문제입니다 당신이 그것을 할. 오래 기다리면 엄청난 양의 스파게티가 생겨 완전히 다시 쓰기를 요구합니다. 재미 없다.

내 제안은 조금 계획하지만 코드의 모양을 유지하기 위해 최대한 빨리 리팩터링, 리팩터링, 리팩터링 코딩을 시작하는 것입니다. DRY 원칙 (반복하지 말 것)은 이에 대한 훌륭한 지표입니다.


답장을 보내 주셔서 감사합니다. 리팩토링은 별다른 일이 아니지만 계획 누락으로 인한 리팩토링을 방지하고 싶지 않습니다.
WarrenFaith

@Warren-계획을 세우지 않아도 리팩토링이 방지되지는 않습니다. 컴퓨터에서 솔루션을 코딩하거나 머리 또는 종이에 솔루션을 코딩 할 수 있습니다. 두 가지 모두 효과가 없다고 생각합니다. 나중에 변경한다는 것을 알고 코딩을 시작하십시오.
케빈 클라인

@ kevin cline : 좋아, 새로운 기능이나 개선을 위해 기존 코드를 리팩토링하고 새로운 기능을 위해 거의 모든 앱을 다시 작성하는 것의 차이를 만들 수 있습니다. 나는 두 번째가 아니라 첫 번째와 함께 살 수 있습니다 ..
WarrenFaith

@WarrenFaith : 코드가 타이트하고 모양이 좋은 한 다시 쓰기를 피할 수 있어야합니다. 내가 다시 쓰는 것을 보았을 때만 시스템이 큰 진흙 덩어리 (리팩토링 없음) 또는 근본적인 기술적 변화 (플랫폼 변경)가 된 시점입니다.
Martin Wickman

3

이 위치에있을 때 때때로 TDD (테스트 중심 개발)를 사용하고 개발중인 시스템의 가장 복잡한 부분에 대한 일부 테스트 계획을 시작합니다. 또는 가장 복잡한 영역에 대해 다시 높은 수준의 의사 코드를 구성 할 수도 있습니다. 이 프로세스를 통해 느슨한 작업 계획을 세우고 가장 시간이 많이 걸리는 영역을 식별 할 수 있습니다.

나 에게이 접근법은 코딩과 계획 사이 어딘가에 있기 때문에 효과적입니다. 테스트 아이디어 및 / 또는 의사 코드가 있으면 각 논리 섹션을 통해 작업하고 코드를 구현할 수 있습니다. 일반적으로 가장 어려운 부분은 응용 프로그램의 핵심 기능이므로 언제든지 종과 휘파람을 지연시킬 수 있기 때문에 제안 된 솔루션의 가장 어려운 부분을 먼저 다루는 경우가 많습니다.

대부분의 코드가 머릿속에 있으며 다이빙을 준비하고 프로그래밍 할 준비가되었으므로이 접근 방식을 사용하면 시스템 전체에 정신이 흐려지지 않고 각 섹션에 집중할 수 있습니다.

간결하게 요약하자면, "가장 어려운 부분을 먼저 다루고, 의사 코드 및 / 또는 TDD 계획으로 나누고 정복하십시오"라고 말할 수 있습니다!


나는 TDD의 팬이 아니지만 어쨌든 감사합니다!
WarrenFaith

필자는 반드시 TDD를 사용한다고 말하지는 않습니다. 내 요점은 코드를 "계획"하는 구조로 사용하는 것입니다. 그렇게하면 코드를 작성하는 데 똑바로 뛰어 들지 않으며 실제 코딩과는 너무 다른 대량의 문서 / 프로젝트 계획을 작성하는 데 오랜 시간을 소비하지 않습니다. 행복한 매체를 찾는 것입니다. 펜과 종이로 같은 것을 원칙적으로 달성 할 수 있습니다. 또한 모든 것에 대한 테스트를 작성하지 않고 복잡한 영역 만 작성해야한다는 점도 지적해야합니다.
BradB

3

코드를 모듈 식으로 만들어보십시오. 다음에 반복 할 때는 다른 계획이 없어 질 수 있습니다.


2

최소한 아이디어를 적어 두는 것이 좋습니다. 프로젝트 규모에 따라 많은 공식 계획이 필요하지 않을 수 있습니다. 그러나 그것이 매우 크면 두통을 덜고 좀 더 심도있는 계획을 세우는 데 며칠을 보내고 싶을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.