2008-10-30 2 views
5

매우 빠르고 코딩이 필요한 맞춤형 애플리케이션을위한 훌륭한 프로그래밍 방법론은 무엇입니까? 요구 사항의 부족이 무엇이든 문제가된다는 것을 알고 있습니다. 또한 경영진이 자신의 실천을 바꾸기 위해 어떻게 확신합니까? 다음 질문은 사람들에게 5000 줄짜리 단일 파일 프로그램 작성을 중단하게하는 방법입니다.매우 빠른 타임 라인과 적은 요구 사항을위한 최고의 프로그래밍 방법론?

+0

세미 컴퓨터를 잘 아는 고객을 상대 할 때 매우 흔하게 발생합니다. – slashmais

+0

당신은 하나에서 4 개의 질문을 제기합니다. 나는 그들을 나눠주기를 제안하고, 아마 당신은 구체적인 대답을 얻습니다. 또한 더 많은 평판을 얻을 수 있습니다 ;-) –

+0

그래,이 질문을 나누는 것은 좋은 생각 일 것입니다! – Yarik

답변

3

한 가지 이상의 질문이 있습니다.

    '작은'요구 사항
  1. 빠른 개발 =>, 스크립트 언어를 사용하여 해킹 더 안정적으로 또는 명시 적 요구 사항이 없습니다 반대 아직하지만 미래
  2. 에 톤이있을 것으로 작거나 몇 가지 요구 사항이 있습니다 가정 불안정하거나 묵시적 인 요구 사항을 가진 빠른 개발 => 스크럼, XP 등. 가능한 한 빨리 원하는 것을 고객에게 피드백하기 위해 시제품 제작에 중점을 둡니다.
  3. 관행 변경 관리 => 프로젝트 충돌 허용 가능한 한 빨리 ;-) 진지하게, 이것은 당신이 당신이 바꾸고 싶은 것에 더 구체적이어야합니다. 귀하의 마일리지는 귀하의 환경이 얼마나 희박하고, 귀하의 목표를 실제로 달성하는 데 얼마나 냉소적인지에 달려 있습니다.
  4. 5K 라인 프로그램을 하나의 파일로 작성하지 못하게 함 => 사용자에게 어떤 방식으로 보여줄 것인가? 더 나은 구조화 된 프로그램을 작성하는 것이 쉽고, 그로부터 얻을 수있는 이점을 보여줌 뿐만 아니라보다 나은 실천을 위해 상호 합의하기를 바랍니다.
10

실행은 ... 이러한 종류의 프로젝트에 사용할 수 있습니다. 관리를 설득하는 방법을 제공하면 프로젝트를 정시에 완료하거나 원하는 모든 기능을 보유 할 수 있지만, 둘 다 가질 수는 없습니다.

+0

하, 할 수 있으면 좋겠다. – nportelli

7

Scrum 좋은 지옥 같은

+0

"이러한 종류의 프로젝트"? 스크럼은 훌륭하고, 나는 그것을 진심으로 추천한다. 그러나 나는 민첩한 방법론이이 프로젝트를 훌륭하게 수행 할 것이라고 영업부에 말하기를 꺼린다. 장기적으로 볼 때 '애자일'용어가 변색 될뿐입니다. –

+0

적어도 스크럼을 사용하면 스프린트별로 적은 수의 요구 사항을 관리 할 수 ​​있습니다. 그리고 당신은 괜찮은 품질의 스프린트에서 무엇을 할 수 있는지 그들에게 말해 줄 수 있습니다. 그들은 그것을 받아들이거나 ... 지옥처럼 달린다. –

7

강제 설정을 사용하십시오.

하지만 심각하게는 Death March처럼 들립니다. 도망 가라.

0

스크럼은 내 생각이지만, 스크럼에는 매우 훈련 된 팀 구성원이 필요하다는 것을 명심하십시오. 얻는 요구 사항을 문서화하고 관리 장소를 포함한 모든 사람이 액세스 할 수 있도록 장소에 보관하십시오. 마지막으로, 타스크를 예측하고이를 관리 앞에 보관하여 팀 구성원 모두의 현재 우선 순위를 알 수있는 합리적인 f}을 찾으십시오. 나는 작년과 비슷한 환경에 있었고, 불행하게도 나는 마법의 총알을 발견하지 못했습니다.

5000 라인 프로그램을 작성하는 것은 단순한 게으름의 표시입니다. 우리는 최근에 그가 5000 라인의 Java 클래스로 시작했기 때문에 try/catch 문을 사용하여 생성자에서 변수를 초기화합니다 (묻지 않음). 건설적인 비판으로 5000 라인 프로그램을 작성하는 사람에게 동기를 부여하는 방법을 찾아보십시오. 그것은 그것의 핵심에 관리 문제처럼 들리지만.

1

합리적인 맞춤 개발과 유사한 작업을 수행하는 가장 빠른 방법은 귀하와 고객이 함께 개발하는 것입니다. 피드백은 즉각적이며 관련 내용을 정확히 볼 수 있습니다. 그렇지 않으면, 당신은 그들의 더 편리한주의를위한 다만 무역 속도이다. 또한, 그들은 당신과 직접 일했기 때문에, 당신을 당신의 경영자에게 방어 할 수 있습니다.

그러나 추가 컨텍스트없이 다른 사람들과 의견을 같이하고 가장 직업적인 상황이 아닐 것이라고 말합니다.

1

"요구 사항 부족"이 실제로 사실이라면 프로젝트를 시작해서는 안됩니다. 나는 당신이 "불확실하거나 불확실한 요구 사항"이라는 것을 믿습니다. 이것이 사실이라면 애자일 프로세스를 고려해야합니다. XP, 스크럼 또는 크리스탈. 스크럼은 의심 할 여지없이 가벼운 가중 처리 방식입니다.

경영진은 엔지니어와는 다른 생각을 가질 수 있지만 관리가 잘못되었으며 사례가 변경되어야한다고 말할 수 없습니다. 이해를 향상시키고 갈등을 해결하기 위해 더 많은 것을 전달하십시오.

사람이 읽을 수없는 코드를 작성하지 못하도록 사람들에게 코드를 간결하게 작성하는 방법을 교육하는 가장 좋은 방법입니다. 쌍 프로그래밍과 지속적인 코드 검토가 좋은 해결책이 될 수 있습니다.

5

는 일반적으로 당신은 프로젝트의 세 가지 구성 요소, 시간, 품질 있습니다.

고객/보스가 시간 관리를 원했던 것처럼 보입니다. 그는 한 명을 제어하고 다른 한 명은 제어해야합니다.

그가 시간과 품질을 제어하고 싶다면 그가 넣을 모든 추가 시간 동안 더 많은 돈을 지불해야합니다. 그가 시간과 돈을 통제하고 싶다면, 품질,이 경우에는 낮을 것입니다.

은 우리가 항상 우리의 고객에게 그들이 그것을 마우스 오른쪽 가질 수 또는 그들이 지금을 가질 수 있지만, 그들은 지금 그것을 가질 수 있다는 것입니다!

나는 방법론이 중요하다고 생각하지 않습니다. 실제 문제는 타이밍입니다.

+0

품질이 좋지 않은 문제는 항상 물지 않기 위해서입니다. – nportelli

+0

전적으로 동의합니다 ...하지만 고객은 타임 라인을 깨고 동일한 급여 규모를 유지하고 우수한 제품을 낼 것으로 기대할 수 없습니다. – mattruma

5

새로운 소식이 없습니다.

매우 잘 작동하는 것으로 확인 된 RAD 기술은 Evolutionary Prototyping입니다.

가장 좋은 방법은 고객이 원하는 것에 대한 아이디어를 구현 한 다음 그에 대해 설명하고 의견을 듣고 적절하게 구현하는 것입니다. 고객이 결국 만족하게되면, 당신의 의지가 이루어집니다. 이제는 재미있는 부분이 있습니다. 문서화하십시오!

0

스크럼 또는 XP는 이러한 상황에서 잘 작동합니다. "기본"시스템에 대한 몇 가지 최소한의 요구 사항을 해결하고이를 기반으로 빌드 할 수 있다면 선행 요구 사항이 제공되는 경우에도 거의 항상 잘못된 것이라는 사실에 대응할 수 있습니다.

5000 줄짜리 단일 파일 프로그램을 작성하는 사람은 규칙이 없거나 나쁜 프로그래머입니다. XP와 Scrum 모두 유지 보수 및 구축이 가능한 시스템을 만들기 위해 규율이 필요하기 때문에 작업해야하는 경우 진행 방법을 잘 모릅니다. 내 으로 생각하면 적어도 그들에게 그들의 방식의 잘못을 알리려고 할 것입니다.

3

나는 건 방진을 의미하지는 않지만 대부분의 사람들이 당신이 겪고있는 대답과 혼동을 느낀 것처럼 보입니다. 대부분의 대답은 프로그래밍 방식보다는 프로젝트 관리 방식에 관한 것입니다.

당신의 상황을 감안할 때 SCRUM과 민첩한 형식의 메소드 (Open UP과 같은)는 프로젝트 관리 방식에서 잘 작동한다고 생각합니다. 사실 나는 당신의 프로젝트 주위에 많은 구조가있는 것처럼 소리가 나지 않으므로 SCRUM만을 고수 할 것입니다. 그것은 일을 좋게하고 의지하며 일하는 것에 집중해야합니다. 작업을 식별하고, 작업을 평가하고, 작업을 설명하고, 반복을 계획하고, 가능한 한 스프린트 회고를 수행하는 SCRUM의 기본 규칙을 따르는 것만으로 충분합니다. 당신이 정말 빡빡하다면 나는 이것을 떨어 뜨릴 수 있다고 확신합니다.

(나는 어쨌든 그것을 참조로) 실제 질문에 대답하기 위해, 나는 당신이 당신의 디자인 메커니즘으로 CRC ( C 아가씨 R esponsibiltiy C ollaborator) 카드를 사용하여 도메인 중심의 접근 방식을 채택 제안. 나는 귀하의 응용 프로그램이 회계, 재고 관리 등의 존재하는 일부 제한된 도메인을 가지고 있다고 가정합니다. 도메인에 존재하는 객체, 즉 "재고 항목", "송장"과 같은 실제 객체에 도메인을 분해하려고합니다. , "배달 (delivery)"등등. 그런 다음이 객체들 각각에 대해 이름, 책임 및 책임을 수행하기 위해 협력하는 다른 클래스를 정의하는 CRC 카드를 만듭니다. 그런 다음 응용 프로그램에서 이러한 CRC 카드를 나타내는 실제 클래스를 작성합니다.

관리자 접미사 또는 cooridinator 또는 그 라인을 따르는 모든 클래스를 만들지 않도록하십시오.결국 도메인에서 일어나는 모든 종류의 작업을 수행하기 위해 대규모 리팩토링을 필요로하지 않고 쉽게 수정할 수있는 도메인을 나타내는 개체 집합이 완성됩니다. 더 많은 객체를 추가하거나 도메인을 확장하지 않는 한 도메인 객체가 정적으로 유지되어야하므로 요구 사항이 변하는이 솔루션을 쉽게 적용 할 수 있습니다.

희망이 당신에게 유용합니다.

0

좋아요 스크럼은 재미 있습니다 ... 사무실이 다른 위치에있을 때 구현할 수 있습니까?

관련 문제