저는 주로 C #을 지향하는 회사에서 일하기 시작했습니다. 우리는 Java와 JRuby를 좋아하는 소수의 사람들이 있지만 C #과 같은 대다수의 프로그래머가 있습니다. 웹 애플리케이션 구축 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하기 때문에 채용되었습니다.
최근에 짧은 시간에 많은 작업을 수행하는 데 중점을 둔 웹 응용 프로그램을 구축하는 프로젝트를 시작했습니다. 소프트웨어 책임자는 레일 대신 mvc4를 사용하도록 지시했습니다. mvc4를 모르고 C #을 모르고 웹 응용 프로그램 서버와 프런트 엔드 UI를 만드는 유일한 사람은 예외입니다.
mvc4를 사용하는 대신 이미 잘 알고있는 프레임 워크를 사용하는 것이 합리적이지 않습니까? 결정의 이유는 기술 책임자가 Jruby / 레일을 알지 못하고 코드를 재사용 할 방법이 없기 때문입니다.
반론 :
-
그는 코드에 기여하지 않으며 솔직히이
프로젝트에 필요하지 않습니다 . 따라서 JRuby / 레일을 알고 있는지 여부는 중요하지 않습니다. -
JRuby가 코드를 가져올 수있는 많은 Java 앱이 있기 때문에 실제로 코드를 재사용 할 수 있습니다. 실제로 그는 JRuby on Rails 앱에서 Java 라이브러리를 실행하는 대신 Java 라이브러리를 C #으로 변환하는 데 필요한 리소스를 제공했습니다. 그가 자바 나 JRuby를 좋아하지 않기 때문에
나는 많은 웹 응용 프로그램을 만들었지 만 익숙하지 않은 것을 사용하면 약간의 스핀 업이 발생하고 익숙한 짧은 시간 내에 멋진 응용 프로그램을 만들 수 없습니다. 이것은 좋을 것입니다; 이 분야에서 새로운 기술을 배우는 것이 중요합니다. 문제는이 프로젝트를 위해 많은 일을 빨리 끝내야한다는 것입니다.
개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까? 회사에 따라 다릅니 까? 우리 회사가 빨거나 이것이 정상으로 간주됩니까? 녹색 목초지가 있습니까? 이 방법을 잘못보고 있습니까?
답변
팀장과 이야기하고 다음과 같이 말해야한다고 말하고 싶습니다.
나는 너희들이 .NET 상점이라는 것을 알고 있지만 실제로 Java / JRubyRails 기술을 위해 고용 되었다. 이미 알고있는 도구를 사용 하여이 새로운 응용 프로그램을 X 시간 내에 구축 할 수 있습니다 . 원하는대로 C # / mvc4를 배울 수 있지만 >> X 시간이 걸립니다. 무엇을 원하세요?
이것은 대 “-hired-에 대한 (assumedly) – 당신 – were- 기술”의 문제 제기 “기술을 – 당신이 – 필요 – 이제”또한 당신이 새로운 기술을 배울 의향이 있음을 보여 주지만 있다는 것이다 걸릴 이 도구 세트를 처음 사용하면 새로운 응용 프로그램을 개발하는 데 더 오래 걸립니다. 그리고 당신은 할 당신이 새로운 기술을 배울 의향이 있음을 보여주고 싶다. 새로운 기술을 익히지 않는 것이 기술이 더 이상 필요하지 않을 때 고용을 종료 할 수있는 좋은 방법입니다.
끝에 당신의 질문에 관해서 :
개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까? 회사에 따라 다릅니 까? 우리 회사가 빨거나 이것이 정상으로 간주됩니까? 녹색 목초지가 있습니까? 이 방법을 잘못보고 있습니까?
일반적으로 회사에 따라 다릅니다. 만약 회사가 MS 툴을 구매하고 VisualStudio 플랫폼과 .NET 프레임 워크에서 모든 것을 표준화한다면, 한 개발자가 Linux와 C 사용을 고집한다면 매우 어색 할 수 있습니다. 회사가 편집자에 대해 덜 까다로운 경우 (예 : 출력이 동일한 한 개발자가 Vi 대 Emacs를 선택하도록 허용하는 경우) 예외가있을 수 있습니다. 일부 회사는 개발자가 Windows와 Linux를 선택하도록 허용하지만 그들이 사용하는 언어는 두 OS 모두에 대해 매우 우수한 지원과 런타임을 제공합니다.
왜 회사가 이것을 하는가? 일관성이 한 가지 이유입니다. 응용 프로그램이 다양한 개발자가 선호하는 언어 / 프레임 워크로 빌드되고 다른 도구로 빌드되고 매우 다른 시스템에서 테스트 된 바이너리의 패치 워크 인 경우 디버깅이 매우 어려울 수 있습니다. 모든 개발자가 대부분 유사한 설정 작업을하는 경우 이러한 종류의 문제가 해결됩니다.
귀하의 경우, 귀하는이 회사에서 비표준 기술로 일하도록 고용 된 것 같습니다. 이것은 나에게 이상하게 보이며, 당신이 왜 그것을 원 했는지 에 관해 당신을 고용 한 사람과 이야기하고 싶을 수도 있습니다 .
답변
개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까?
그들이 당신의 팀에 영향을 미치지 않을 때.
이 방법을 잘못보고 있습니까?
물론.
예, 마감 시간이 짧습니다. 예, Rails에서 더 빨리 할 수 있습니다. 그러나 회사는 전체적으로 응용 프로그램을 배포하고 유지 관리해야합니다. 회사에 C # 개발자가 안정적인 경우 C # 앱을 유지 관리하는 것이 더 저렴할 것입니다.
귀하의 DBA와 다른 관리 직원은 아마 스택에 익숙하고 배포하고 업데이트하는 장소에 프로세스가 그 스택. 코드를 더 빠르게 수행 할 수 있더라도 전문 웹 앱을 시작하고 실행하는 데 필요한 모든 오버 헤드를 고려하면 시간이 더 오래 걸릴 수 있습니다.
앱을 작성하는 것보다 앱을 유지 관리하는 데 더 많은 시간을 할애해야합니다. 그 비용을 최적화하십시오.
답변
-
“새로운”기술에 적응할 수있는 능력 때문에 고용 된 것 같습니다. 그런 점에서 C #도 다르지 않습니다. 새로운 것을 배울 기회를 갖고 싶지 않습니까?
-
ASP.NET MVC는 여러면에서 Ruby on Rails와 매우 유사합니다.
-
당신은 달팽이의 속도에 영원히 있지 않을 것입니다. 이미 ROR을 알고 있다면 ASP.NET MVC가 도움이 될 것입니다. 요령은 C #을 배우는 것입니다.
답변
Java / JRuby를 유지하기위한 인수
당신의 상사가 당신이 생산하기를 원할 수도 있습니다. 그들은 당신을 회사에 가치를 더할 수 있도록 당신을 고용했습니다. 익숙하지 않은 프레임 워크를 사용하도록 강요하면 다음과 같은 결과 를 초래할 수 있음을 이해해야합니다 .
- 더 느린 속도로 결과 생성
- 저품질 코드 생성
최고의 프로그래머도 새로운 언어 / 프레임 워크로 워밍업 시간이 필요합니다.
MVC4 및 C # 학습을위한 인수
새로운 언어를 배우는 것이 좋습니다. 배우는 언어 / 플랫폼이 가까운 미래에 사라질 경우 프로그래머로서의 기술에 투자하는 것은 위험에 지나지 않으며 Microsoft의 문제로 인해 문제가되지는 않습니다. C #과 MVC는 둘 다 최근에 업데이트되어 파이프 라인에 더 많은 업데이트가있었습니다.
개인적으로,보다 균형 잡힌 개발자가 되더라도 이러한 상황에 처할 수 없습니다. 가장 좋은 부분? 상사는 이런 것들을 배우기 위해 돈을 지불 할 것입니다. 이는 더 많은 돈을 벌 수 있도록 돈을 지불한다는 의미입니다.
결론
이 싸움에서 이길 수는 있지만 불만을 품은 동료들과 계속 일하게 될 것입니다. 각각의 장단점을 관리자에게 설명하면 다른 쪽 끝이 더 행복해질 것입니다.
답변
개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까?
상기 개발자가 소프트웨어 리더 인 경우.
확실히 생산성에 대해 염려 할 경우 다른 툴킷을 사용하는 경우도 있지만 그럴 수도 있습니다. 현재 아키텍처와의 호환성, 유지 관리, 라이센스 문제 등에 대한 우려 때문에 리드가 특정 툴킷을 사용하기를 원하는 정당한 이유가있을 수 있습니다.
BTW, 문구
짧은 시간에 많은 일을 처리하는 데 중점을두고
소프트웨어 산업에서 다른 어떤 것보다 더 많은 가슴 앓이와 신체 상해에 대한 책임이 있습니다.
답변
JRuby 또는 Java 프로그래머로 고용되었다고 말하는 것은 아닙니다.
“[B] 웹 애플리케이션을 개발 한 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하고 있기 때문입니다.”
다시 말해, 그들은 웹 경험 과 새로운 기술을 배우려는 의지를 좋아합니다 .
이제 그들은 웹 경험 을 사용 하고 새로운 기술 을 배우도록 요구하고 있습니다.
문제는 그렇게 하시겠습니까?
답변
소프트웨어에서 가장 큰 비용은 유지 관리에 있습니다
가장 큰 비용 (80 %)이 소프트웨어 유지 관리 비용이라는 것을 읽었습니다. 초기 개발은 총 개발 비용의 20 %에 불과합니다.
나는 영어가 아닌 모국어로 코드와 주석을 개발 한 개발자에 대한 사례를 읽었고 다른 팀원이 코드를 향상시키고 유지하려고 할 때 언어 (모든 프로그래밍 언어가 아님)가 외국이기 때문에 불가능한 옆에있었습니다. 그들에게.
마찬가지로, 원하는 프로그래밍 언어로 코드를 개발하면 다른 팀 구성원이 유지하기 어려울 수 있습니다.
솔루션 : 페어 프로그래밍
필요한 프로그래밍 언어를 알고 있고 함께 일할 수있는 다른 사람과 고용주를 고용하도록 요청하십시오. 서로에게서 배울 수 있으며, 어느 쪽이든 회사를 떠나면 다른 쪽이 코드를 알게됩니다.
“쌍 프로그래밍”에 대한 Wikipedia 기사 :
http://en.wikipedia.org/wiki/Pair_programming