새로운 기술을 사용하면 생산성이 저하됩니까? [닫은]


20

작업해야 할 특정 도구 세트에 대한 경험이 커짐에 따라 새로운 일을 시도하는 동기가 약 해지는 것 같습니다.

나는이 프로그래밍 작업에 새로운 때, 내가 만든 온라인 연구, 새로운 것을 시도 나는 종종 쉽게 작업을 만든 방법 (또는 라이브러리)를 발견하기 때문에, 생산 이미 자리의 코드 프레임 워크. 따라서 주어진 코드베이스와 관련하여 나에게 새로운 것을 사용하면 생산성이 높아졌습니다.

지금은 거기에 주어진 문제에 대해, 나는 점점 더 많은 인스턴스 것을 눈치 알고 아마이 있다는 것입니다 아마도 - - 코드를 개선 "거기"더 나은 솔루션은, 그것은 것입니다 발견. 그러나 코드베이스에 대한 나의 친밀한 지식을 감안할 때 우리가 가지고있는 차선 도구를 사용하고 코드베이스를 새롭고 "더 좋으며"개선하는 것보다 솔루션 (테스트 포함)을 실행하는 것이 훨씬 쉽습니다.

따라서 "정확히해라"와 "일을 제대로 마친다 "라는 긴장감이있다 .

이것은 많은 개발자들에게 발생하는 것입니까? 알려진 특정 문제입니까? (실제로 문제가 되는가?) 실제로 경험의 증가와 관련이 있는가?

아, 그리고 참고 : 나는 여전히 내 직업을 좋아하고 유지하고 싶습니다. 항상 흥미로운 것처럼 보입니다. -앱에서 직면하는 코드베이스와 문제 세트를 배우면 연구 부분이 작아집니다.


3
단기 : 예-장기 : 글쎄, 우리는 모두 COBOL에 갇힐 수 있습니다
HorusKol

제대로 된 것도 역시 적절할 수 있습니다.
QuanhD

답변:


17

새로운 것을 시도하는 것은 종종 위험합니다. 우리는 두 가지 일을하는 경향이 있기 때문에 때때로 곤경에 처합니다.

  1. 시원하고 새롭고 멋진 것이 얼마나 유용한 지 과대 평가하십시오. 우리는 멋진 예제, 일부 코드는 온라인으로 던져졌습니다. 우리는 매우 멋진 생각합니다. 아주 멋지다! XI에서는 작업 Y를 10 배 빠르게 수행 할 수 있습니다. 분명히 우수합니다. 우리는 아직 모든 "알 수없는 미지의 물질"을 보지 못했다. 우리는 새로운 일의 영업 사원이 빠뜨린 문제에 얽매이지 않았습니다. 지뢰가 길을 기다리는 것을 볼 수있는 새로운 기술에 대한 전문 지식이 충분하지 않습니다.

  2. 기존 도구 / 프레임 워크 / 소프트웨어 / 사물이 얼마나 유용한 지 과소 평가하십시오. 우리는 현재 시스템이 처음 구축되었을 때 종종 없었습니다. 우리는 만들어진 섬세한 트레이드 오프에 감사하지 않습니다. 기존 시스템에서 월요일 아침 쿼터백을 재생하는 것은 쉽지만 작동합니다 . 유지 보수, 작동 및 성능 유지 사이의 매우 구체적인 상충 관계로 인해 아마도 이상한 점이 많을 것입니다. 그래, 이상해 아마도 가장 중요한 것은 팀이 현재의 기묘함에 대한 전문가이며 그 기묘한 문제를 해결하는 방법을 알고 있다는 것입니다. 그들은 지뢰와 함정 및 피해야 할 함정을 알고 있습니다. 사실 우리는 새로운 사물에 관심이있는 일을하는 현행 방식으로 모든 사마귀를 볼 수 있기 때문입니다.

그러나 새로운 것을 시도하지 않고 너무 보수적으로 행동하는 것은 아마도 훨씬 더 위험합니다. 물론 우리는 조심스럽게 걸을 필요가 있지만, 최고의 마우스 트랩을 만드는 방법을 찾지 못하면 경쟁 업체는 새로운 것을 시도하고 조금 더 기꺼이 시도 할 것입니다! 보수적으로 행동하고 발전하지 못하면 특히 경쟁이 치열한 시장에서 피할 수없는 운명을 초래할 수 있습니다.

그렇습니다. 우리는 현재 수준을 장난기 / 교육적인 수준의 실험과 문제 해결을위한 새로운 방법으로 균형있게 유지해야합니다. IMO 이것은 많은 회사들이 새로운 일을 할 시간이 20 %라는 좋은 이유입니다. 그들은 운동을하지 않는 경우가 많다는 것을 알고 있지만, 20 %의 시간에서 나온 아이디어는 모두 폭력으로 변합니다. 연주하고 실험 할 시간이 없으면 회사로서 쉽게 정체되어 실제로 자신을 망칠 수 있습니다.


1
나는 그것이 당신이 탐구하고있는 "새로운"유형에 달려 있다고 생각합니다. 나는 60 년대, 70 년대, 80 년대의 프로그래밍 개념을 살펴 보았으며 실제로 소수의 프로그래머가 현장의 역사를 조사하기 때문에 모두 새로운 것처럼 보입니다.
Rudolf Olah

"연구"에 대한 또 다른 좋은 점은 연구 한 도구를 최종적으로 사용하지 않더라도 흥미로운 개념을 선택할 수 있다는 것입니다. 이제 일부 회사가 있습니다 (내가 아는 것에 대해 말하면 은행). 특히 "새로운 것"을 사용하고 싶지 않지만, 이것들이 제대로 설치 될 때까지 기다리십시오. 때로는 현명하다 ... 아마도 프로토 타입, mootools, 대본 같은 것들에 많은 투자를 한 회사들이있을 수있다. 그런 프레임 워크들을 "잃어버린"전투를 실현하기 위해 많은 지원을받지 못했다.
Laurent S.

8

그것은 항상 일어난다 . 나는 다른 게시물에서 이것을 말했지만, 당신은 우아한 코드를 개발하는 사업이 아니라 제품 배송 사업을하고 있습니다. 따라서 n시간이 부족하여 실제로 하루 종일 끝났지 만 최종 사용자 경험을 크게 향상시키지 않는 문제를 해결하기 위해 시간 을 할당하려는 관리자를 찾기가 어려울 것입니다. n"완료된 목표가없는"연구에 시간 을 할당하여 기꺼이 수행 한 것보다 더 나은 것이있을 것입니다.

프로파일 링 도구를 사용하여 발견 한 응용 프로그램에 병목 현상이 있고이를 수정하여 예상되는 사용자 경험 향상을 명확하게 수량화 할 수 있다면 R & D를 할 시간을 가져야합니다. 다양한 소스에서 찾을 수있는 기술을 사용하여 최적화하십시오.


+1. "기능 제공"은 종종 게으 르기위한 변명 (테스트, 유지 보수 등) 이라고 말합니다 .
Martin Ba

나는 당신의 대답에서 당신이 말하는 많은 것에 동의하지만, 개발자들은 실제로 어느 정도 우아한 코드를 개발하는 사업에 있다고 주장합니다. 제공된 코드는 수정 / 유지 보수가 쉬운 방법으로 작동하지 않으면 쓸모가 없습니다. 오늘날 n 시간을 소비하여 "우아함"을 얻는 리팩토링 코드는 내일 n * 10 시간을 절약합니다.
hspain

@hspain : 전적으로 동의하고 그것이 이론으로가는 길이지만, 당신의 직업이 라이브러리가 아니라 제품 자체가 아니라면 현실에서는 (적어도 내 경험으로는) 일어나지 않는 경향이 있습니다.
데미안 브레히트

실제로 애자일 커뮤니티의 일부 사람들은 이러한 문제를 비 기능적 요구 사항으로 추적합니다. 요구 사항은 "코드는 유연하고 변경하기 쉬워야합니다"(또는 이와 유사한 것)입니다. 그러면 구체적인 문제를 다루는 이야기를 만들 수 있습니다. 이점은 이해 관계자가 볼 수있게되고 계획 / 스케줄 될 수 있다는 것입니다. 예 :
sleske

@sleske : ... 그리고 그들은 우선 순위를 정하는 동안 빠진다;)
Demian Brecht

4

나는 그 중 일부는 문제를 성공적으로 해결하는 방법에 대한 경험과 더 심층적 인 지식을 가지고 있다고 생각합니다.

당신이 새로 왔을 때, 모든 문제는 또한 새로운 것이므로 어떻게하는지 연구해야합니다. 그러나 동일한 유형의 문제를 반복적으로 해결함에 따라 그 문제에 대한 성공적인 해결책을 알면 연구의 필요성이 줄어 듭니다.

그런 다음 새로운 문제 나 기존의 시도하고 참으로 시도한 문제 만 더 이상 작동하지 않거나 (더 이상 사용되지 않음) 성능 또는 실패 문제를 일으키는 경향이 있습니다. 복잡한 시스템을 더 깊이 이해하기 시작할 때마다 새로운 기술을 사용할 때마다 현실적으로 사용할 시간이 없으며 경험을 통해 새로운 기술이 살아남지 못한다는 것을 알게되었습니다. 그것은 과대 광고이며 해결 된 것보다 많은 문제를 만듭니다. 따라서 실제로 문제를 해결하는 데 필요하지 않은 새로운 도구와 기술을 사용하는 경향이 줄어 듭니다.

그러나 성향이 적다는 것은 학습을 중단하거나 새로운 기술을 사용하지 않는다는 것을 의미하지 않아야합니다. 단지 적절한시기에 대해 더 신중하게 판단해야합니다.


4

세부 사항은 다음과 같습니다.

  1. 마감일이 있습니다 . 프로그래머는 사용중인 도구에 필요한 모든 세부 정보를 미리 가지고 있어야합니다. 웹 사이트를 읽고 새로운 멋진 것을 찾은 다음 프로덕션 환경에서 사용하는 것은 큰 일이 아닙니다. 당신은 도구에 대한 충분한 경험이 없으며, 더 중요한 것은 새로운 것을 배우기 위해 필요한 시간이 없다는 것입니다. 멋진 새 물건을 원한다면 그것을 사용하기 전에 반년 또는 년을 배우십시오.
  2. 사용하기 전에 제대로 알고 있는지 확인하십시오 . 멋진 새 도구를 사용하는 것이 재미있을 수 있지만 솔루션을 찾아서 제대로 배우지 않고 사용하는 것은 매우 나쁠 수 있습니다. 당신은 그것에 대한 충분한 경험이 없습니다. 그것을 알아 내기 위해 구글이 필요하다면 시스템의 절반을 깰 때 그것을 고칠만큼 잘 알지 못한다는 것을 의미합니다.
  3. 최신 자료를 사용하는 것이 제대로 수행되지 않습니다 . 새로운 자료는 검증 된 기술이 아닙니다. 내년에는 기술이 완전히 사라 졌을 것입니다. 다른 사람들은 그것이 효과가 없다는 것을 알았습니다. 최신 은색 총알을 피하려면 많은 노력이 필요하지만 그만한 가치가 있습니다.
  4. 핵심 지식인 기술에 중점을 둡니다 . 모든 프로그래머는 전 세계에서 사용할 수있는 전체 프로그래밍 지식의 일부만 알고 있습니다. 프로그래머가 사용하기에 편한 부분은 더 작습니다. 실제로 작동하는 부분은 훨씬 작습니다. 제대로 배운 지식 만 사용하고 제대로 작동한다는 것을 알고 있어야합니다. 이를 통해 프로그래머가 빨라지고 코드가 향상됩니다.
  5. 끝없이 조정하지 마십시오 : 완벽한 코드는 좋은 목표이지만, 이것이 먼저 쓰레기를 작성한 다음 점차적으로 개선하기 위해 끊임없이 조정한다는 의미는 아닙니다. 당신이 가진 모든 좋은 지식을 사용하여 처음으로 완벽하게 작성하십시오. 자신을 믿으십시오. 세상을 믿지 마십시오. 당신과 똑같은 것을 아는 사람은 없습니다. 그들의 의견은 중요하지 않습니다. 당신은 프로그래머입니다, 당신은 그것을 작동시켜야합니다. 세상은 당신을 위해 그것을 할 수 없습니다. 완료되면 중지하십시오. 누군가 불평 할 때까지 만지지 마십시오.
  6. 새로운 것을 배우기 위해 시간을 보내십시오 : 모든 사람은 새로운 것을 지속적으로 배워야합니다. 우리의 미래는 그것에 달려 있습니다. 사용을 거부하십시오! 새로운 것을 배우십시오. 그러나 실제로 작동하는지 확신 할 때까지 사용하지 마십시오. 기술력이 입증되면 내년에 사용할 수 있습니다. 아니면 다른 사람들처럼 그냥 잊어 버렸습니다. 좋은 물건 만 남아 있습니다 ...
  7. 좋은 것을 잃지 마십시오 : 일단 큰 시스템을 성공적으로 구축하고 모든 문제를 해결하고 멋진 기술을 배운 후에는 최악의 지식을 버리고 새로운 것을 추구하는 것입니다. 작동 방식, 문제점 및 문제점 해결 방법을 이미 알고 있습니다. 그것을 버리는 것은 시간 낭비입니다.
  8. 새로운 기술 유지 : 새로운 시스템 중 하나가 성공할 것입니다. 그것은 시장에서 다른 어떤 것보다 근본적으로 더 좋은 것을 가지고 있습니다. 당신은 어느 것이은 총알인지 모릅니다. 제 시간에 찾지 못하면 지식이 구식입니다. 세상은 오래된 시스템에 대한 액세스를 제거하여 모든 좋은 물건을 잃을 수 있습니다.

끝없이 조정하지 마십시오 +1.
Srisa

3

그래, 그런 일이 있었어 일반적으로 새로운 기술을 배우는 데 얼마나 많은 시간이 소요되는지에 대한 위험 분석을 수행해야하며, 새로운 기술이 기대에 미치지 못하는 경우 이전 기술을 복구하여 사용할 수 있습니다. 나는 할 수있을 때 새로운 기술을 배우는 것을 선호하지만 압력이 가해 져서 실패 할 수있는 새로운 것을 시도하는 데 시간을 할애 할 수 없을 때 , 시도되고 진실 된 방법을 고수합니다.

일반적으로 새로운 기술을 배우기에 가장 좋은시기는 새로운 프로젝트가 시작될 때입니다. 일반적으로 너무 많은 압력이 없으며 잘 작동하는 새로운 것을 발견하면 프로젝트의 나머지 부분과 쉽게 통합 할 수 있습니다. 최악 새로운 것을 시도하고 배울 수있는 시간이 큰 배포 전에 혈안이 지난 몇 주입니다.


3

예, 새로운 것이 생산성을 떨어 뜨립니다

네 물론 이죠 최상의 경우에도 새로운 것은 익숙하지 않기 때문에 추가 시간이 필요합니다. 종종 더 많은 시간이 소요될 수 있습니다.

아니요, 새로운 기술로 생산성을 향상시킬 수 있습니다

솔루션을보다 쉽게 ​​표현할 수있는 새로운 기술은 생산성을 향상시킵니다. 큰 if-elseif조건에서 디스패치 테이블 로 이동하는 것만 큼 간단 합니다.


1

예, 생산성을 떨어 뜨릴 수 있습니다. 내 전직은 지루한 데이터 처리 작업을 한 번 수행하도록 요청 받았으므로 데이터를 처리하고 실행하는 긴 프로그램을 작성하는 것이 더 좋을 것이라고 결정했습니다.이 문제는 몇 초 만에 해결됩니다.

물론 일주일 내내 그녀를 데려 갔지만 문제는 몇 초 후에 해결되었습니다.

나는 당신의 질문에도 똑같이 적용된다고 생각합니다. 그렇습니다. 새로운 것을 배우면 생산성을 높일 수 있지만 기존 지식을 작업에 적용하고 전체적으로 더 빨리 끝내는 것이 좋습니다. 짧은 시간 안에 자신의 글을 쓸 수 있다면 누가 새로운 도서관을 찾고 배우는 것에 관심이 있습니까?

잊지 말고 기존 툴링을 사용하여 알맞은 작업을 수행하는 것이 새로운 작업을 수행하는 것보다 더 나은 솔루션 인 경우가 종종 있습니다. 시간이 지남에 따라 레거시로 전달되었지만 여전히 코드에 문제가있는 '새로운'기술 레이어를 생각합니다. 되돌아 보면, 기존 C 방식을 사용하는 것이 더 좋았습니다. 모든 COM 및 모든 VB 및 모든 .NET 및 HTML도 삽니다.)


동의하지 않음 : 단시간 내에 직접 작성할 수 있다면 누가 새로운 도서관을 찾고 배우는 데 관심이 있습니다. & ... 그리고 모든 것을 추가하는 대신 이전 C 방식을 사용하는 것이 더 좋을 것입니다 ...- 너무 오류가 발생하기 쉽고 보수적 인 IMHO입니다.
Martin Ba

@Martin은 물론 그 반대도 마찬가지입니다. 따라서 많은 사람들이 '항상 새로운 것을 배우십시오'라고 말하는 것을 읽습니다. 나는 일을하는 것이 내가하고 싶은 모든 것보다 우선 순위를 갖거나 궁극적으로 인생을 더 편하게 할 수있는 실용적인 접근 방식을 취한다. 새롭고 더 새로운 것들에 대한 새로운 것들을 무시하게되는 변화율.
gbjbaanb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.