프로젝트 시작시 민첩한 방법 및 데이터베이스


12

애자일이 처음이며 시작 방법을 잘 모르겠습니다. 아이디어는 스프린트로 프로젝트의 작은 부분을 만드는 것입니다. 그러나 내가 작업중 인 프로젝트에는 데이터베이스가 필요하며 데이터베이스는 프로젝트와 관련이있는 거의 모든 기능을 수행해야합니다.

그렇다면 애자일 프로젝트는이를 어떻게 처리합니까? 데이터베이스를 생성하는 것부터 시작합니까?

예를 들어 Scrum을 사용하는 경우 사용자 스토리를 작성하고 db를 테스트하는 방법은 무엇입니까?

코드가 필요한 이야기에서 db의 일부를 수행하겠습니까?

"사용자로서 등록 할 수 있어야합니다 ..."라는 스토리가 있는데이 스토리의 일부로 데이터베이스에 사용자 테이블을 작성한다고 가정하십시오.

민첩성이 데이터베이스 설계에 어떤 도움을 줄 수 있습니까?


1
re : "사용자로서 등록 할 수 있어야합니다 ..." blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first 및 그가 언급 한 게시물을 통해 읽을 것을 제안 합니다 . "올바른"답변이 없을 수도 있습니다. 토론에서 다양한 추론을 이해하는 것이 좋습니다.
StevenV

Agile을 시작하거나 해당 문제에 대한 다른 방법론을 시작하는 경우 소프트웨어 프로젝트 (또는 고객)를 처리 할 때 팀, 프로젝트 및 조직의 스타일에 적합한 지 확인하십시오. 모든 방법론이 모든 프로젝트와 모든 조직에 적용되는 것은 사실이 아닙니다.
NoChance

답변:


14

예. 스토리에 필요한 테이블과 열을 추가하여 데이터베이스를 증 분식으로 빌드합니다. 첫 번째 스토리를 시작할 때 일반적으로 전체 데이터베이스가 필요하지 않습니다. 예를 들어 "사용자는 등록 할 수 있어야합니다"와 같이 정확히 정의 된 열 집합이있는 단일 테이블이 필요합니다.

실제로 전체 데이터베이스를 필요로하는 스토리가있는 경우 스토리는 Epic입니다. 스토리가 너무 커서 분리해야합니다.


5

애자일이 처음이며 시작 방법을 잘 모르겠습니다.

게시물을 읽은 후에는 오해가 있다고 생각하므로 민첩성이 실제로 의미하고 달성하려는 것을 읽는 것으로 시작해야합니다.

아이디어는 스프린트로 프로젝트의 작은 부분을 만드는 것입니다.

닫았지만 충분히 닫히지 않았습니다. 아이디어는 각 스프린트가 끝날 때마다 작동하는 소프트웨어를 제공하는 것입니다 (시스템의 한 부분은 하나의 스프린트에 맞거나 맞지 않을 수 있음). 데이터베이스가 고객에게 제공하는 경우에만 데이터베이스가 작동하는 소프트웨어로 간주 될 수 있습니다.

그러나 내가 작업중 인 프로젝트에는 데이터베이스가 필요하며 데이터베이스는 프로젝트와 관련이있는 거의 모든 기능을 수행해야합니다.

왜 거의 기능해야합니까? 시스템의 모든 기능이 데이터베이스의 전체 또는 대부분의 내용을 사용합니까? 그렇지 않은 경우 미리 전체 데이터베이스를 디자인 할 필요가 없습니다.

그렇다면 애자일 프로젝트는이를 어떻게 처리합니까? 데이터베이스를 생성하는 것부터 시작합니까?

애자일은 데이터베이스 또는 시스템 설계를 처리하지 않습니다. 프로젝트 관리 방법을 알려줍니다. 이를 염두에두고 시스템의 모든 기능을 식별하여 제품 백 로그에 넣습니다. 그런 다음 제품 소유자와 함께 백 로그의 기능에 우선 순위를 지정하십시오. 완료 한 후 백 로그에서 기능을 시작하고 스프린트 (일반적으로 2-4 주 길이)를 작성합니다. 스프린트가 끝나면 시스템에 고객에게 전달할 수있는 새로운 작업 기능이 있어야합니다.

예를 들어 Scrum을 사용하는 경우 사용자 스토리를 작성하고 db를 테스트하는 방법은 무엇입니까?

틀릴 수도 있지만 데이터베이스 테스트에는 아무런 의미가 없습니다. 데이터베이스를 업데이트하는 코드를 테스트 할 수 있습니다. 물론 데이터베이스의 프로그래밍 가능한 부분을 테스트 할 수 있지만이를 호출하는 코드를 테스트하여 달성 할 수 있습니다.

코드가 필요한 이야기에서 db의 일부를 수행하겠습니까?

예.

애자일은 결코 프로젝트 관리에 은총 알이 아니며 올바르게 적용되지 않으면 재앙을 일으킬 수 있습니다. 그것에 대해 읽는 데 시간을 투자하십시오 (여기에서 또는 많은 리소스를 찾을 수 있음), 이미 민첩한 사람을 찾아서 속도를 높이는 데 도움이 될 수 있습니다.


4

데이터베이스는 프로젝트와 관련하여 거의 모든 기능을 수행해야합니다.

대체로 거짓입니다.

그렇다면 애자일 프로젝트는이를 어떻게 처리합니까? 데이터베이스를 생성하는 것부터 시작합니까?

빈 데이터베이스입니다. 예. 그런 다음 스프린트를 완료하는 데 필요한 테이블을 추가하십시오.

사용자 스토리를 어떻게 수행하고 DB를 테스트 하시겠습니까?

뭘 물어 보는 거냐? 애자일은 데이터베이스 디자인과 아무 관련이 없습니다.

당신은 이야기를 씁니다.

솔루션을 설계합니다.

테이블과 코드를 만듭니다.

코드를 테스트합니다.

코드가 필요한 이야기에서 db의 일부를 수행 하시겠습니까?

다른 어떤 선택이 있습니까? 모든 DB를 먼저 수행합니까? 불가능합니다.

"사용자는 등록 할 수 있어야합니다 ..."이 스토리의 일부로 데이터베이스에 사용자 테이블을 작성 하시겠습니까?

첫째, 등록에 가치가 없기 때문에 쓸모없는 이야기입니다. 그것은 단지 사용자가 통과해야하는 기술적 장애물 일뿐입니다.

둘째, 스토리를 구현하기에 충분한 테이블을 만듭니다.

민첩성이 데이터베이스 설계에 어떤 도움을 줄 수 있습니까?

뭘 물어 보는 거냐?

애자일은 프로젝트 관리입니다. 어떤 디자인에도 도움이되지 않습니다.

단지 큰 일을 작은 조각으로 나누는 데 도움이됩니다.


2

먼저 요구 사항을 정의하고, 기능을 차단하고, 기능 영역을 대상으로 한 다음 모델링, DB 디자인, 알고리즘, 코드를 작성하고 마지막으로 테스트하고 프로세스를 반복하십시오.


2

귀하의 질문은 AgileFall 개발 반 패턴에 비명을 지 릅니다 .

무엇입니까? 일반적으로 Waterfall 방식으로 소프트웨어를 개발 한 조직이지만 소프트웨어가 작동하지 않는다는 사실을 깨닫기 때문에 내부적으로 애자일 기술을 채택하기 위해 어려움을 겪고 있습니다. 결과 "실패"는 일반적으로 진정한 애자일이 기존의 여러 폭포 상점이 구성되는 방식에서 근본적인 조직적 흔들림을 요구하기 때문에 발생합니다. 물론 그들은 강력하고 재난이 많은 사람들이 애자일이 소프트웨어 개발에 얼마나 쓸모가 없는지를 보여줄 때 프로세스에 자신을 투입해야한다고 생각하는 방식으로 구조를 유지하는 경향이 있습니다.

어떻게 든 맨 아래에서 시작하여 데이터베이스를 설계 및 구축 한 다음 중간 계층으로 이동하여 데이터베이스를 다시 만질 필요가 없다는이 개념을 피해야합니다. 이것이 애자일에서 잘못된 방법입니다.

사용자 스토리를위한 도메인 모델에서 시작하여 데이터베이스까지, 중간 단계 및 프리젠 테이션으로 진행하십시오.


그래, 나는 이것에 대한 대부분의 대답 힌트를 보았고 질문을 쓰는 동안 그것을 알아 냈습니다. AgileFall에 대해 걱정하지 마십시오.이 프로젝트는 주로 심각한 프로젝트가 아니라 작동 방식을 배우는 방법과 패턴을 시험하는 테스트 프로젝트입니다.
Ingó Vals
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.