중간 크기의 소프트웨어를 완전히 자체 개발해야한다고 가정하십시오. 마치 개인 프로젝트 인 것처럼 말입니다.
시스템의 세부적인 내용뿐만 아니라 개발, 학습 및 필요한 글로벌 아이디어를 정의하기 위해 어떤 방법론 / 도구를 사용 하시겠습니까?
기본적으로 자신을 추적하고 길을 잃지 않도록하십시오.
중간 크기의 소프트웨어를 완전히 자체 개발해야한다고 가정하십시오. 마치 개인 프로젝트 인 것처럼 말입니다.
시스템의 세부적인 내용뿐만 아니라 개발, 학습 및 필요한 글로벌 아이디어를 정의하기 위해 어떤 방법론 / 도구를 사용 하시겠습니까?
기본적으로 자신을 추적하고 길을 잃지 않도록하십시오.
답변:
관심의 범위를 넘어 서면 쉽게 자랄 수 있습니다 .범위 , 폭이 아닙니다 .
고려하기 어렵다 한 번에 너무 많은 요소 .
그리고 ... 회귀 롤러 코스터가 됩니다.
당신이하는 모든 일은 이전의 것들을 깨뜨리고 롤백하는 것이 도움이되지 않습니다.
이를 피하려면 적극적으로 회귀를 테스트 .
자동으로. (그렇지 않으면 제정신을 유지할 수 없습니다)
테스트는 에너지에 큰 부담을줍니다.
프로젝트가 모두 UI에 관한 것이라면 ... 아마 토스트했을 것입니다.
UI에 초점을 맞춘 프로젝트에 대한 테스트되지 않은 막판 아이디어 여가 시간 과 마우스 를 UI 테스터로 클릭 하는 것을 좋아
하는 친척 을 등록하십시오 . 나는 여기서 "십 대"를 생각하고 있습니다.
다른 문제:
어떤 종류의 버전 관리에 익숙하고 좋아 한다면 그것을 사용하십시오. 지금 배우기 시작 하면 주의 가 산만해진다 .
그래프이미 지적했듯이 아이디어를 하면 도움이 될 수 있습니다.
내가 사용했습니다 Freemind , CMaps , XMind , YED , 은 GraphVIZ , 그리고 다른 ... 뭔가를.
XMind 는 덜 무의미합니다.
연필과 노트 여전히 내 톱 10에서 꽤 좋은 점수를 얻습니다.
나는 많은 작은 설명 그림을 만듭니다.
최후의 수단으로, 당신은 항상 자신의 소비에 대한 파워 포인트 를 준비 할 수 있습니다 :)
Literate Programming.
문맹 프로그래밍의 실무자는 에세이스트로 간주 될 수 있는데, 그의 주된 관심사는 스타일의 표현과 우수성에있다. 동의어 사전이있는 이러한 저자는 변수 이름을 신중하게 선택하고 각 변수의 의미를 설명합니다. 그는 서로를 강화하는 공식적이고 비공식적 인 방법을 혼합하여 인간의 이해에 가장 적합한 순서로 개념이 도입 되었기 때문에 이해할 수있는 프로그램을 위해 노력하고 있습니다.
프로젝트에 관한 논문 (또는 서적 또는 보고서 또는 문서)을 작성하는 경우 작업을 계속하는 경향이 있습니다.
사용 사례 개요, 릴리스 1, 릴리스 2, 릴리스 n으로 시작하십시오. 사용 사례 요약을 작성하십시오. 우선 순위를 정하십시오. 스프린트 및 릴리스로 가져옵니다.
각 릴리스에는 유스 케이스보기, 논리보기, 처리보기, 구성 요소보기, 배치보기가 있습니다. 스프린트의 경우 사용 사례를 자세히 설명하십시오. HTML 문서를 게시하여 수행 할 작업을 표시하십시오. 스프린트의 사용 사례를 자세히 설명한 후 논리 모델을 작성하십시오. 이를 지원하는 코드를 작성하십시오. 처리 문서를 작성하십시오. 그것을 지원하는 코드를 작성하십시오. 모듈을 작성하십시오. 컴포넌트 뷰 문서를 작성하십시오. 테스트 및 지원 문서를 작성하십시오. 스프린트 결과를 HTML 문서로 게시하십시오.
각 스프린트마다 반복하십시오. 때때로 문서를 검토하고 편집하십시오.
읽고 쓸 수있는 프로그래밍 도구가 많이 있습니다. 단일 텍스트로 문서 와 코드 를 작성하는 소스를 생성하는 데 도움이 됩니다.
아이디어를 작성하려면 XMind 또는 FreeMind 와 같은 마인드 매핑 도구를 사용할 수 있습니다 . 두 도구는 모두 무료이며 (XMind 개인에게는) 아이디어를 브레인 스토밍하고 구성 할 때 유용합니다. 이 도구에 관한 것은 무언가를 잊을 기회가 적다는 것입니다.
마지막 개인 프로젝트를 시작하기 전에 개인적으로 Freemind를 사용했습니다. 나는 특별한 방법론 자체 가 없었다 . 방금 이틀에 한 번 1 시간 동안 아이디어를 정리했습니다. 브레인 스토밍 세션의 간격을 설정하면 무엇이 잘못되었는지, 중요하지 않은 것이지만 후속 버전에서 유용 할 수있는 등을 더 잘 알 수 있다고 생각합니다.
첫 번째 코드 커밋에서 나는 브레인 스토밍 파일을 소스 코드 저장소 ( bitbucket 사용 )에 저장하고 최신 아이디어로 최신 상태로 유지했습니다.
실제 소프트웨어 프로젝트처럼 취급하십시오 (하나이기 때문에). 개발자 수가 1 명이므로 몇 가지만 변경 될 수 있습니다. 여전히 소스 제어가 필요합니다. 수정할 버그를 추가 할 기능을 구성 할 방법이 여전히 필요합니다. 코드에서 회귀를 생성하지 않는지 확인하려면 여전히 자동화 된 테스트가 필요합니다. 또한 코드를 자동으로 컴파일하고 (필요한 경우) 테스트를 실행하고 보고서를 볼 수있는 자동 방법이 있어야합니다.
나는 당신이 설명한 것처럼 개인 프로젝트를 진행하고 있습니다. Git, Redmine, JUnit 및 Jenkins를 사용하여 내가 설명한 모든 범주를 충족시킵니다. 내 작업 흐름은 다음과 같습니다
모든 개발자를 관리하는 것만큼이나 모든 것을 관리하고 정리하는 것이 중요합니다. 많은 개발자의 경우 정보를 모든 사람에게 전파 할 수 있도록 구성해야합니다. 그것이 당신 일 때, 당신은 이미 모든 정보를 가지고 있지만 시스템의 모든 부분을 기억하는 것은 어렵습니다. 관리 시스템을 사용하면보다 쉽게 작업을 수행 할 수 있으며 현재 작업에 집중할 수 있습니다.
도구 :
제어 버전 시스템 (차고 또는 개인용 PC의 유일한 개발자 인 경우에도) : GIT, Mercurial, Tourtoise
IDE (Scintilla, Vim, Notepad)가있는 경우에도 소스 코드가 강조 표시된 편집기
실제 칠판, 화이트 보드, 일부 도구는 Designer Tools 응용 프로그램에 맞지 않습니다.
디자인 도구 : Rational Rose, Umbrello, (UML, ER,) Visio 또는 Power Point, Corel Draw, Open Office Draw와 같은 "빈약 한 개발자 디자이너 도구"
텍스트 / 소스 코드 텍스트 비교 도구 (예 : WinMerge)
개발 프로세스의 모든 단계를 살펴볼 필요가 있기 때문에 다양한 작업을 구별하고 처리하는 방법에 따라 다릅니다.
도구를 사용하는 방법을 이미 알고 있고 최악의 실수 중 하나는 도구를 사용하는 방법을 배우는 것이 아니라 도구의 작동 방식을 배우는 것입니다.
첫째, 제 생각에는 소프트웨어가 기대하는 것과 특히하지 않을 것을 적어 두어야합니다. 그것은 중요한 포인트입니다. 다음 단계는 최종 시스템을 하위 시스템으로 분할하여 구축 프로세스를보다 쉽게 만드는 것입니다. 마지막으로 도구를 선택해야합니다. 기본적으로 좋은 IDE, VCS 및 데이터 모델러. 도움이되는 다른 도구를 많이 추가 할 수 있지만 잘못된 트랙에서 시작하지 않도록주의하십시오.
글쎄, 시작은 그리 매력적이지 않지만 시간이 지남에 따라 프로세스가 재미있을 것입니다.