학술 연구 참여시 개발 계획


11

동료 프로그래머 여러분,

학술 연구와 관련하여 "소프트웨어 계획"을 어떻게 수행합니까? 참고로 소프트웨어 작성은 집을 짓는 것이 아니라 소설을 쓰는 것과 비슷 하다는 것을 상사에게 어떻게 확신 시키는가?

자세한 내용은 다음과 같습니다.

연구실에서 일하는 소규모 개발팀을 책임지고 있습니다. 우리는 언젠가 공개 (공개하고 돈을 버는) 목적으로 소프트웨어를 개발하기 시작했습니다. 이러한 소프트웨어는 무엇보다도 적어도 두 개의 독립적 인 연구 라인에 의존합니다. 즉, 적어도 두 개의 박사 학위가 있습니다. 바라건대 언젠가는 우리가 필요로하는 것을 실제로 구현할 것입니다.

기본 소프트웨어는 개발자가 처리 할 수있는 그래픽 렌더링, 소프트 바디 변형 등과 같은보다 구체적인 다른 리소스에도 의존합니다.

상사는 전체 프로젝트의 사양, 요구 사항 및 피 묻은 GANTT 차트를 작성하도록 요청했습니다. 그는 연구 부분에 대한 단서가없고 그러한 연구가 소프트웨어의 기초가된다는 사실에 직면하여 "가정을 만들어라"고 말했다. 논쟁의 명확성을 위해, 그는 박사 학위를 가진 교수입니다. 학생들은 우리가 필요로하는 연구를 생각해 내야합니다. 그리고 그는 공학적으로 철저한 배경을 가지고 있습니다. 먼저 모든 것을 계획하고, 사양을 적어 놓은 다음 "마지막 부분"인 코드를 작성하십시오.

내가 지금하고있는 일 :

  1. 기능별로 제품을 분해했습니다. 각 '기능'은 사실상 별도의 제품입니다.
  2. 각 기능은 이전 기능 위에 구축됩니다.
  3. 기능 (A)에 작업 프로토 타입이 있으면 팀은 다음 기능 (B)에 대한 작업을 시작할 수 있지만 A에 대한 QA는 수행됩니다 (돈이 허용되면 더 많은 사람들이 참여할 수 있음).
  4. 연구에 의존하는 특징들은 최후에 올 것이다 : 그때까지, 희망적으로 연구 부분이 완성 될 것이다 ( 아직 큰 문제가 될 때 ).

또한 팀 은 몇 개월 만 에 '버전 1.0 ' 개발에 SCRUM을 사용하도록 설정했습니다 . 이 기한은 합리적인 가정을 기반으로 설정 될 수 있습니다. 필요한 모든 기능을 나열하고 가용성을 세고 합리적인 견적을 내 렸습니다.

그래서 내 질문은 다음과 같습니다.

  • 문을 여는 동안 상사가 어떻게 행복해 지나요?
  • 우리가 할 수 있는지 아닌지에 대한 실마리가없는 개발자를 위해 사양 을 작성하는 방법은 무엇입니까? (우리는 여전히 일부 작업에 사용할 라이브러리를 결정하지 않았으므로 필요할 때 그렇게 할 것입니다)
  • 아직 고객이나 투자자가없고 많은 관심과 약속이 있다는 점을 감안할 때 어떻게 요구 사항 을 얻을 수 있습니까?
  • 세상에서 평화를 얻으려면 어떻게해야합니까?

내 질문 중 하나 이상에 답이 될 것이라고 확신합니다. :)

추신 : 잠재적 투자자가 이것이 발각되면 역효과를 낼 수 있기 때문에 익명으로 쓰고 있습니다. 이해 하시길 바랍니다. 그러나 나는 '진실을 숨기고있다'는 정신이 마음에 들지 않는다고 말해야합니다.이 프로그램은 많은 사람들에게 이익이 될 것이며, (나의 이름과 명성이 붙어있는) 이것에 대해 공개적으로 말할 수없는 것은 검열과 같은 느낌입니다. 그러나 아아, 나는 지금 당신의 제안에 더 관심이 있습니다.


정체와 모호함의 검은 구덩이처럼 느껴지면서 수년 동안 일한 전 박사 학위 학생으로 말하면, 나는 전문가들이 내 일에 유용한 무언가를 기다리면서 서 있다는 것을 알게되어 매우 기뻤습니다. 엄청난 동기 부여 였을 것입니다. 거의 1 년 전에이 질문이 제기 된 것을 보았지만 상황이 동일하게 유지된다면 학생들과의 연락이 얼마나 필요한지 알고 싶습니다. 당신이 그들을 응원하고 있음을 알리는 것이 도움이 될 수 있습니다!
octern

답변:


6

나는 그 위치에 몇 번 있었으며 경험이 있다면 박사 학위 학생이 관련있는 연구를 전달할 수는 없으며 유용한 시간 척도에서 일어나는 것에 의존 할 수는 없습니다. 박사 과정 학생들은 특히 연구 관심사로가는 곳으로 갈 수 있으며 갑자기 자신과 관련이 있지만 당신과는 관련이없는 사이드 트랙에서 하류로 향할 때 다운 스트림에 들어가기가 매우 어렵습니다. 이는 프로젝트의 주요 위험 원인이므로 프로젝트 계획에서 적절한 위험 완화 전략을 사용해야합니다.

이를 감안할 때 제공해야 할 시점 (연구 보조금 참조 : 다른 것이 아니라 자금에 의해 결정됨)과 연구가 제공 되었다고 가정 소요 되는 시간을 계산하십시오 . 이것은 전능 한 추측이 필요하지만 도움이 될 수는 없습니다. 시간 추정에서 그러한 추측을 명백하게한다 . 나중에 PhD 학생들과 합리적으로 긴밀한 연락을 유지하면서 (예 : 한 달에 한 번 자습서 세션에 앉아) 위험을 관리하여 원하는 시간에 필요한 것을 제공하지 않는 것처럼 보일 수 있습니다. 완화 전략에 대해 자세히 생각하십시오. 운이 좋으면 도박에서 보상을 받고 연구에서 유용한 정보를 얻을 수 있습니다. 주문 상황이 발생했습니다.

고객이 누구인지 알고 최종 제품을 어떻게 사용하길 원하는지 (그리고 실제로 어떻게 사용할 것인지) 생각하면 그 밖의 모든 것이 뒤 따릅니다. 당신이 그것을 모른다면, 당신은 누구에게도 팔지 않을 것입니다. 그러나 당신은 그것을 알고 있거나 적어도 빨리 알아 내야합니다. (연구 부분에 의해 결정된다면, 당신은 큰 어려움에 처해 있습니다! 연구 프로젝트는 가장 부정적인 결과 또는 부분적으로 부정적인 결과를 낳을 수 있습니다. 그것은 항상 널리보고되지는 않더라도 항상 발생합니다.)

마지막으로, 익명으로이 작업을 수행하는 것은 끔찍한 일이라고 생각합니다. 특정 유형의 프로젝트 관리에 대한 조언을 구하고 있기 때문입니다. 당신은 연구의 주제가 무엇인지, 누가 연구하고 있는지, 또는 어떤 협력자가 누구인지 언급하지 않고, 이 질문에 대해 중요하지 않습니다.. 문제가 될 수있는 유일한 방법은 연구가 진행되기 전에 비 R & D 자금을 찾고 있었지만, 관련 위험 수준 (아마도 투자를 망쳐 놓을 것입니다!)을 공개하거나 매우 부정직해야합니다. 당신이 정직 할 계획이기 때문에, 일단 위험이 더 확실 해지면 프로젝트는 그런 종류의 자금을 모색해야하므로 그렇게해서는 안됩니다. (당신이 – 그룹으로서 – 잠재적 인 투자자들에게 부정직 한 경우, 그것은 바로 거기에 문제가 있으며 눈물이나 소송으로 끝날 것입니다.)


Donal, 답변 주셔서 감사합니다. 몇 가지 좋은 점을 제기합니다. 특히 위험 관리에. 연구에서 네, 그들은 부정적인 결과를 찾아야합니다. 그것이 연구가 수행되는 방식입니다! 당신이 무엇을 얻을지 이미 알고 있다면, 그것은 연구가 아니라 광고입니다. 익명을 유지해야 할 필요성 : 내 stackexchange 계정에서 내 직업 프로필에서 내가 누구이고 어디에서 일하는지 확인할 수 있기 때문입니다. 그것은 우리 팀의 미래 급여를 위태롭게 할 수 있습니다 (예, 우리는 비 R & D 자금을 찾고 있습니다). 그것이 단지 나라면, 나는 정직 할 것입니다. 그러나 지금 돈을 지불하는 것은 내 돈이 아니므로 조심해야합니다.
다른 익명의 사용자

1
훌륭한 답변입니다. 내가 한 상업용 소프트웨어 개발의 경우에도 사양과 일정을 잘 알고 추측해야 할 부분이 있습니다. 모든 사람들이 추측하고 변경 될 수 있음을 알고있는 한 괜찮습니다. 연구 항목으로 할 수있는 한 가지는 당신이 제공해야 할 모든 날짜 (날짜, 돈 등)에 대해 추측하고 좋은 사례를 추측하고 제공하는 것입니다 (10 % 확률로 성공할 것), 예상되는 것 (50 %) 및 대소 문자 (90 %) 값입니다. 또한 미지수에 대한 완화를 위해 가상 백 포켓에 "계획 B"(및 C 및 D 계획)가 있어야합니다.
밥 머피

연구 결과에 따른 문제는 제품에 대해 원하는 것이 알려지지 않은 것이 아니라 창조 할 수없는 것이 필요하다는“정확한 부정적”답변으로 끝날 가능성이 높다는 것입니다. 또는이 연구는 전혀 관련이 없는 것을 제공하지 않습니다 (PhD의 실제 위험). 투자에 대한 중요한 점은 개념에 대한 작은 증거를 얻은 후에 최소한 수행 할 수 있고 수행해야 할 모든 것을 사용하고 시장성있게 만드는 방법을 해결하는 것입니다.
Donal Fellows

2

문을 여는 동안 상사가 어떻게 행복해 지나요?

똑똑하고 일을 끝내십시오.

우리가 할 수 있는지 아닌지에 대한 실마리가없는 개발자를위한 사양을 어떻게 작성합니까? (우리는 여전히 일부 작업에 사용할 라이브러리를 결정하지 않았으므로 필요할 때 그렇게 할 것입니다)

무엇을 연결해야할지 모른다면 문제입니다. 마법 상자에 어떤 입력을 하시겠습니까? 마법 상자에서 어떤 결과를 얻습니까? 그것은 또한 연구원들이 마법이 무엇인지 정의하는 데 도움이 될 것입니다.

만약 당신의 학업에 보조금이 있다면, 그는 아마도 연구 제안서를 작성했을 것입니다. 잡아봐 내가 본 (그리고 쓴) 연구 보조금 제안과 같다면, 그들이하려는 일에 대한 타임 라인과 "명세"를 가질 것입니다.

아직 고객이나 투자자가없고 많은 관심과 약속이 있다는 점을 감안할 때 어떻게 요구 사항을 얻을 수 있습니까?

요구 사항은 알고리즘의 최종 사용자 / 일-지그입니다. 인터뷰 할 수 있는지 (또는 잠재 고객 / 고객) 확인하십시오.

그렇지 않으면 자신의 개밥을 먹는다.

세상에서 평화를 얻으려면 어떻게해야합니까?

주제를 벗어 :-)


2

나는 연구 개발 계획에서 한 번에 물건을 개발하고 tgen 개발은 실제로 잘 작동하지 않는다고 생각합니다. 저는 연구소에서 일하고 빠른 프로토 타입을 사용하여 더 많이 일합니다. 종종 프로토 타입을 개발하면 정확히 필요한 것에 대한 통찰력을 얻을 수 있습니다. 프로토 타입을 신속하게 생성하여 상사와 연구원으로부터 피드백을 받고 이것이 예상했던 위치인지 판단하고 접근 방식이 작동하는지 확인할 수 있습니다. 나중에 코드를 리팩토링하고 개선 할 수 있습니다. 이것이 제가 일했던 연구소에서 실제로 본 것입니다.

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