한 사람의 프로젝트를 구성하는 방법? [닫은]


21

가끔씩 (매일 : 매일 읽음) 나는 새로운 아이디어를 내고, 내가 좋아하는 편집기 / IDE에서 새 프로젝트를 시작하고, 코딩을 시작하고 다음날 그것을 삭제하고 새로운 것을 시작합니다. 나는 지금 약 6 년 동안 프로그래밍을 해왔고, 그 6 년 동안 아주 작은 프로젝트 하나 (Pastebin.com의 대시 보드 위젯) 만 완성했습니다. 이것이 코딩 학습에 도움이 될 수 있지만 실제로 무언가를 완성하고 싶습니다.

실제 코딩 전후에해야 할 일은 무엇입니까? 그러한 일 인간 프로젝트를 조직하는 방법을 가르쳐주는 좋은 자료는 무엇입니까?


중요한 경우 웹 또는 Mac 개발을 원합니다.


8
게시 한 내용에서 조직이 부족한 것처럼 들리지 않습니다. 대신, 관심이 부족하거나 프로젝트를 완료하기위한 추진력이있는 것 같습니다. 프로젝트를 따르지 않고 삭제하는 이유가 있습니까? 당신이 진정으로 프로젝트 나 당신이 사용하고있는 기술에 관심이 없다면, 실제로 따라갈 점이 없으며, 그렇지 않으면 그것은 집안일이 될 것입니다.
토마스 오웬스

1
@Thomas Owens 완료되지 않은 프로젝트를 삭제하는 주된 이유는 프로그래밍 폴더가 지저분 해 보이기 때문입니다 (즉, 다시는 사용하지 않는 파일 포함). 저는 기술에 관심이 많습니다. 동기 부여가 부족한 것 같습니다.
rightfold

답변:


18

장기적인 실질적인 문제는 조직이 아니라 동기 부여라고 생각합니다.

  1. 사용자를 찾아서 대화하십시오. 사람들에게 선물이나 판매 가능한 제품으로 프로젝트를 봅니다. (실제로 당신과 코드를 개발하지 않더라도 아이디어를 튕기는 사람도 좋습니다.)

    이 갖는 사회적 의욕 것은 단순한 개인적인 호기심보다는 장기적으로 프로젝트의 흥미를 유지에서 훨씬 더 강력한 될 것입니다.

  2. 당신의 목표는 유용한 기능을 갖춘 작은 크기의 청크 여야합니다. SourceForge 또는 GitHub에 올려 놓고 갑자기 유성에 맞더라도 프로젝트를 생존 가능성이 필요한 것으로 취급하십시오.

    이로 인해 더 많은 릴리스 (사용자로부터 더 많은 피드백과 열정을 의미 함)와 다른 사람이 프로젝트에 기여하기로 결정할 가능성이 높아집니다.

  3. 자신에게 맞는 학습 목표를 선택하십시오. 프로젝트가 어떤 기술이나 기술을 배우는 데 도움이됩니까? 기술이 문제 영역에 적합하지 않은 것으로 판명되면 버전 1.0을 따로 마무리하기에 충분히 관심이 있습니까?

    이러한 목표의 예로는 파서 작성, 네트워크 프로토콜, 게임 AI 측면, 학습 프레임 워크 또는 툴킷, 새로운 언어 등이 있습니다.

최악의 시나리오는 세 가지를 모두 잃어 버렸음을 의미하며, 확실치 않은 사람들에게는 흥미롭지 않은 코드를 포함하여 출시되지 않은 도구를 "대량 재 작성"하는 반복 작업을 반복합니다.


2
"유성에 갑자기 맞으면 +1." 아니, 지연에 대한 훌륭한 팁.
Randolf Rincón Fadul

경험의 이점을 누리고 나면 한 가지 추가 할 점 : 도움이 필요한 경우 단독 개발자를 유지하지 않으려는 경우 오픈 소스 프로젝트 를 홍보 해야합니다 . "만들면 그들이 올 것이다"는 매우 신뢰할 수 없습니다.
Darien

2

프로젝트를 진행하면서 새로운 프로젝트에 대한 아이디어를 얻을 때 프로젝트 아이디어 목록에 주목하십시오. 그런 다음 현재 프로젝트로 돌아갑니다. 프로젝트가 가치가 있다면 새로운 프로젝트에 집중하지 마십시오. 다음 단계는 뛰어난 아이디어 일 경우에만 사용하십시오.

프로젝트를 시작하기 전에 계획을 세우십시오. 그것은 무엇을 할 것인가? 얼마나 힘들까요? 알려진 것과 알려지지 않은 것은 무엇입니까? 무엇이 잘못 될 가능성이 있습니까? 얼마나 걸릴까요? [이제 계속할 것인지 지금 멈출지를 결정할 수 있습니다.] 계획을 유지하십시오. [프로젝트에서 작업중인 경우 새 프로젝트를 따로두고 다른 원본 프로젝트로 진행하십시오.]

프로젝트를 시작할 때 IDE에서 별도의 프로젝트로 설정하십시오. (따라서 다음 프로젝트를 시작하기 위해 삭제하지 않아도됩니다.) 새 프로젝트로 일부 버전 관리 소프트웨어에 체크인하십시오. (이제 다른 프로젝트를 방해하는 것으로 판단되면 삭제할 수 있습니다.) 올바르게 작업을 수행 할 때마다 프로젝트를 체크인하십시오. (이제 트랙에서 내리면 다시 갈 수 있습니다.)

프로젝트에서 발생하는 문제를 추적하십시오. 이것은 프로젝트와 함께 몇 개의 텍스트 파일로 수행 할 수 있습니다. TODO, Changelog, README (알려진 버그 및 문제를 포함 할 수 있음)와 같은 파일이 적합 할 수 있습니다.

코드가 작동하면 버전 관리에서 태그를 지정하십시오. 그만한 가치가 있다면 그렇게하십시오.

계획으로 돌아가서 얼마나 잘했는지 확인하십시오. 학습 한 학습 문서를 직접 작성하십시오. 당신은 무엇을 배웠으며, 얼마나 잘 추정 했습니까? 어떤 문제를 놓쳤습니까? 어떤 문제를 과대 평가 했습니까? 중요하다고 생각되는 것

프로젝트를 포기할 때 배운 교훈을 배우십시오. 프로젝트를 포기한 이유에 대한 메모를 추가하십시오.

한 달에 한 번 배운 교훈을 검토하십시오. 시간이 지남에 따라 검토 간격을 늘릴 수 있습니다.


2

다음은 " 한 팀으로 민첩한 행동 "에 대한 링크 입니다. 흥미로운 읽을 거리입니다!

또한 우리가 "직장에서"하는 소프트웨어 개발 분야가 왜 중요한지 고려하고 싶을 수도 있습니다. 팀에 10 명이있는 경우에만 중요합니까? 아니요, 프로젝트에 대한 생각을 도와주기 때문에 중요합니다.

타겟 고객은 누구입니까? (만약 당신이라면, 훌륭합니다. 그러나 원래 앱을 원했던 것을 기억하십시오)

UI를 사용하는 경우 잠재 고객의 요구에 대해 생각한 다음 핵심 UI 개발에 들어가기 전에 모의 실험을 수행하십시오.

비즈니스 로직을보고 있다면 TDD 또는 BDD를 사용해보십시오. 공격하기 전에 앱의 작동 방식을 생각하십시오. Fitnesse와 같은 하네스에 포장하는 것을 고려하십시오. 앱을 테스트하려는 경우 가장 쉬운 시작 위치 는 시작 입니다.


1

의견이 있으시면 프로젝트 삭제를 중단하십시오!

나는 일반적으로 내 컴퓨터에서 적극적으로 개발하지 않거나 가까운 장래에 적극적으로 개발할 것으로 예상되는 프로젝트를 유지하지 않지만 소스 파일은 SVN 저장소에 존재하며 모든 (IDE 구성 파일 포함)은 백업됩니다 외장 HDD. 당신의 질문에 답하지 않습니다. 당신의 작품을 삭제하지 말고 스스로 동기를 부여하십시오.

호스팅 된 저장소를 찾고 있다면 Google Code, SourceForge, GitHub 및 BitBucket을보십시오. 파일을 업로드하고 어딘가에 보관하고 관심이 생겼을 때 아래로 당깁니다. 비공개로 만들 수 있지만 부끄러워하지 않으면 공개 할 수 있습니다. 아마도 누군가가 작업을 다시 시작하거나 예제에서 배우는 데 관심이있을 것입니다 (특히 흥미로운 라이브러리 또는 프레임 워크를 사용하는 경우).

시간이 지남에 따라 동기를 부여하십시오. 한 번에 한 가지에 집중하십시오. 코드를 프로덕션 품질로 얻지 못할 수도 있지만 예제 품질 또는 다른 사람들이 기술 세트, 지식을 보거나 특정 작업 방식에 대해 배우기 위해 볼 수있는 코드를 얻을 수도 있습니다.


1

우선, 프로젝트와 프로젝트가 있습니다. 일부 기술이나 라이브러리 또는 다른 방법을 시도하면 IDE에서 프로젝트를 작성 하고이 것이 흥미로운 지 여부를 찾은 다음 프로젝트를 삭제하십시오. 괜찮습니다. 모두가이 일을합니다.

또 다른 유형의 프로젝트는 실제 소프트웨어 / 사이트 / 등입니다. 비즈니스, 해당 '프로젝트', 파일, 프로그램은 도구 일 뿐이며 이러한 복잡한 개발에는 동기 부여와 목표가 필요합니다 .

  • 개발 한 것 (웹 사이트 / 텍스트 편집기 / 모바일 앱 / ...)
  • 당신은 그것을 위해 무엇을해야합니까 (돈을 벌고, 새로운 기술을 선택하십시오 / 오픈 소스에 기여하십시오 ...)
  • 언제 할 것인가 (프로젝트를 얼마나 많은 시간을 할애하고 얼마나 오래 할 계획입니까)

당신이 개발 한 것은 새로운 것이어야합니다 . 필요한 일부 기능이 누락되었다고 생각하여 다른 텍스트 편집기를 만들고 싶다면 그렇게 할 필요가 없습니다. 수백 개의 오픈 소스 도구가 있으며 그중 하나에 기여합니다.

스크립트와 같은 작은 일회용 도구를 만들더라도 나열된 내용을 명시해야하며 문제 자체를 해결하는 것이 더 쉬울 것입니다.

코드를 작성하는 데 어려움을 겪는 경우 (예를 들어, 코드를 대량으로 다시 작성) 아마도 그렇게 할 수 없을 것입니다. 소프트웨어 엔지니어링, 플랫폼 (mac / web / etc), 비슷한 경험을 가진보다 숙련 된 개발자가 작성한 코드를 읽어보십시오. 지금 할 일이 많이 있습니다 (github, Google 코드, 프로그래밍 블로그, stackoverflow).

매우 복잡한 문제 (예 : 컴파일러 또는 운영 체제 작성기)를 처음부터 해결하려고 시도하지 말고 먼저 작은 작업으로 분해하십시오. 대부분의 경우 누군가가 이미 문제를 해결하는 데 도움이되는 라이브러리를 만들었습니다.


0

당신은 그들이 무엇을 하나의 사랑 요청으로 간주 가지고 정말 웹툴을 위해 필요하고 실제로 만들어 그 또는 그녀를 위해 그것을?

이것은 실제로 마무리하고 전달할 동기를 제공해야합니다 . 또한 사랑하는 사람에게 유용 할 경우 응용 프로그램을 지원하고 유지 관리하는 이점이 있습니다. 유용하지 않으면 경험을 통해 무엇이 잘못 될 수 있는지 배울 수 있습니다.

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