이 기사는 경험이 풍부한 수석 프로그래머가 게시한 프로그래밍 개발에 대한 통찰력입니다. 그는 프로그래머로서의 자신의 경험을 활용하여 개발 효율성이 높은 프로그래머가 해야 할 일이 무엇인지 알려줄 것입니다.
우리 중 많은 사람들이 특정 목적을 염두에 두고 프로그래밍을 시작합니다. 예를 들어 제가 프로그래밍을 시작했을 때, 자고 있을 때나 학교에서 MUD 게임의 텍스트 버전을 자동으로 플레이할 수 있게 해주는 것이었습니다. 저는 스크립트를 작성하는 13세 어린이였으며 프로그래밍이 무엇인지조차 몰랐습니다. 아이디어가 떠오르면 코드를 작성하고 테스트할 수도 있습니다. 이 모든 것이 제가 직접 수행합니다.
다른 사람을 위한 소프트웨어를 개발할 때 우리 자신의 욕구를 추구하도록 이끄는 동기와 열정이 부족한 경우가 많기 때문에 어려워집니다. 우리는 자신만의 아이디어를 갖는 대신 이러한 아이디어를 이해하기 위해 회의에 많은 시간을 보내고, 그런 다음 다른 사람의 코드를 수정하거나 자신의 코드를 제출하는 데 대부분의 시간을 보냅니다. 이로 인해 생산성이 저하되는 수준의 단절이 발생합니다.
10배 더 효과적인 개발자가 되려면 이러한 환경에서 탁월한 능력을 발휘하는 방법을 배워야 하며, 자신의 회사를 시작하여 노력을 주도해야 합니다.
누구나 적어도 매일 어느 시점에서는 생산성이 10배 더 높은 개발자가 될 수 있습니다. 생산성과 팀워크 향상을 위해 모든 개발자가 집중해야 할 세 가지가 있다고 생각합니다.
세 가지
10배 더 효율적인 개발자가 되려면 프로그래밍 언어 및 도구 세트에 관계없이 수년간의 업무 경험이 필요합니다. 문제 해결과 코드 작성에 능숙해야 합니다.
코드 작성 방법이 당신을 10배 더 효과적인 개발자, 10배 더 효과적인 엔지니어, 10배 더 효과적인 프로그래머 또는 원하는 다른 이름으로 만들지 않는다는 것을 이해하는 것이 중요합니다.
5W(누가, 무엇을, 어디서, 왜, 언제)를 아시나요? 이 모든 것이 소프트웨어 개발에 적용되지만 저는 10배 더 효과적인 개발자를 정의하는 세 가지 특성에 초점을 맞추고 싶습니다. 이 세 가지 항목은 일반 개발자와 10배 더 생산적인 개발자를 구분합니다.
What
Why
When
Know what to do
기업 세계에서 개발자는 종종 관심도 없고 관심도 없는 프로젝트에 참여합니다. 이해가 안 돼요. 좋은 지침을 받고 출력이 명확하게 정의되어 있는 한 이는 대부분의 개발자에게 큰 문제가 되지 않습니다.
문제는 개발자가 종종 충분한 지침을 받지 못한다는 것입니다. 대신에 우리는 "민첩한 개발"이라는 것을 사용합니다. 우리는 몇 단어가 적힌 메모를 받고 무엇을 해야 할지 정확히 알 것으로 기대됩니다.
소프트웨어 개발은 커뮤니케이션에 관한 것입니다. 개발자는 우리가 무엇을 하고 있는지, 어떤 문제를 해결하려고 하는지, 원하는 결과가 정확히 무엇인지 알아야 합니다. 우리가 더 많이 알수록 더 빨리 할 수 있습니다. 가장 중요한 것은 직업의 목적과 그것이 성공할 수 있는 방법을 아는 것이 중요합니다.
나쁜 개발자는 아무런 질문도 하지 않고 잘못된 방향으로 프로젝트에 몇 시간을 소비합니다. 그들은 아무것도 성취하지 못하고 동료들의 시간을 낭비하기 때문에 나는 부정적인 10배 개발자라고 부릅니다. 거의 모든 사람이 이러한 개발자를 접해 본 적이 있으며 그들과 함께 일하는 것은 좌절스러울 수 있습니다. 습관에 빠지지 않도록 조심해야 합니다!
일부 개발자는 많은 세부 사항 없이도 잘 작동합니다. 그들은 창의력이 뛰어나고 올바른 질문을 합니다. 이러한 유니콘은 10배 더 효율적인 개발자가 될 수 있습니다. 그들은 문제를 해결하는 방법을 알고 있으며 종종 전체 팀을 향상시킵니다.
가장 중요한 점은 10배의 효과적인 개발자는 수행해야 할 작업과 질문할 내용을 신속하게 파악하는 데 정말 능숙하다는 것입니다.
이유 이해
아마도 소프트웨어 개발에서 가장 큰 장애물은 이유를 이해하는 것입니다. 해결하려는 문제를 이해하지 못하면 해결하기가 어렵습니다.
자고 있을 때, 학교 갈 때 MUD 게임을 하기 위해 터미널 스크립트를 여러 개 모아 놓은 이유는 무엇인가요? 물론 나는 게임에서 최고 레벨에 도달하고 싶다. 나는 그 이유를 정확히 알고 있으며 목표를 달성하기 위해 최선을 다합니다.
모든 소프트웨어 개발 프로젝트에는 동일한 접근 방식이 적용됩니다. 자신이 속해 있는 수직 산업과 해결하려는 문제를 이해하면 개발자의 효율성이 높아집니다. 이유를 알고 업종을 이해하면 불필요한 작업을 방지하고 제품이나 기능을 사용자에게 더욱 가치있게 만드는 일에 집중할 시간을 확보할 수 있습니다.
문제는 왜 충분하지 않은지 아는 것입니다. 진정한 10x 개발자가 되려면 문제에 대해 열정을 갖고 문제의 안팎을 이해해야 합니다. 나는 대부분의 10배 효과적인 개발자가 좋은 제품 비전을 지닌 제품 사용자라고 믿습니다.
언제 무엇을 해야 할지 알아두세요
소프트웨어 개발 프로젝트에서는 시간이 매우 중요합니다. 프로젝트 작업을 처리해야 하는 순서를 결정하는 것은 쉬워 보일 수 있지만 매우 중요합니다. 귀하의 업무가 회사가 새로운 고객을 확보하거나 오래된 기술 부채를 청산하는 데 도움이 될 수 있습니까?
개발팀으로서 우리는 무엇을 언제 할지 끊임없이 선택해야 합니다.
모든 소프트웨어 개발 작업 프로젝트는 다음 세 가지 범주로 분류됩니다.
해야 할 일
해야 할 일
하고 싶은 일
우리는 고객을 위해 새로운 기능을 완성해야 합니다. 우리는 소프트웨어의 버그를 수정해야 합니다. 우리는 기술적 부채를 줄이거나 멋진 새 제품 기능을 개발하고 싶습니다. 이 모든 것에는 균형 잡힌 균형이 필요합니다.
우리는 세 가지 차원의 작업 프로젝트를 동시에 수행해야 합니다. 우리는 기술 부채에 모든 시간을 쓸 수는 없지만, 어쩌면 우리 시간의 일부를 그것에 써야 할 수도 있습니다.
개발자는 언제 코드에 복잡한 아키텍처를 구축해야 하는지 알아야 합니다. 나는 코드를 가능한 한 단순하게 유지하고 스키마를 추가하지 않고 죽을 때가 될 때까지 스키마를 추가하지 않을 것입니다.
개발자는 유행하는 것을 쫓지 말아야 할 때도 알아야 합니다. 그들은 새로운 도구와 기술을 사용하는 경향이 있지만 이러한 것들은 프로젝트를 더 빨리 완료하는 대신 프로젝트 속도를 늦출 수 있습니다.
10배 더 효과적인 개발자는 무언가를 달성하기 위해 스파게티처럼 엉망인 코드를 사용하는 대신 아키텍처에 시간을 투자할 시기를 파악하고 우선 순위를 정하는 데 능숙합니다. 사용자는 소프트웨어가 어떻게 작동하는지, 아키텍처가 얼마나 멋진지에 관심이 없다는 점을 기억하세요. 그들은 단지 그것이 문제를 해결하기를 원할 뿐입니다. 10x 생산성 개발자는 이 점을 이해합니다.
10배 효과적인 개발자가 되기 위한 내용, 이유, 시기를 마스터하세요
이제 10배 효과적인 개발자가 되기 위한 중요한 기술에 대해 이야기해 보겠습니다. What(무엇), 왜(왜), 언제(언제)를 마스터하세요.
왜부터 시작하세요
10배 더 효과적인 개발자가 되기 위한 첫 번째 단계는 해결하려는 소프트웨어와 문제에 대해 열정을 갖는 것입니다. 당신은 그것을 안팎으로 완전히 이해해야 합니다. 이는 귀하가 일하는 회사와 그 사명에 대한 열정에서 시작됩니다.
누가 하라고 해서 버튼 하나만 쓰지 마세요. 더 높은 수준에서 그 이유를 이해하려고 노력하십시오. 계속해서 '왜'에 집중한다면 당신은 팀과 회사에 더 큰 가치를 부여하게 될 것입니다.
최고의 프로그래머가 아닌 좋은 개발자이자 좋은 문제 해결사가 되십시오.
저는 제 자신을 해커 개발자라고 표현하고 싶습니다. 나는 보기 흉한 코드를 신속하게 조합하여 거의 모든 문제를 해결할 수 있는 사람입니다. 내 코드는 아름답지는 않지만 문제를 해결합니다. 그것이 가장 중요한 것입니다.
10배 더 효율적인 개발자가 되기 위해 완벽한 코드와 단위 테스트를 작성할 필요는 없습니다. 이런 일을 해야 할 때와 하지 말아야 할 때를 알아야 합니다.
10배 효과적인 개발자는 코드를 통해 특정 문제를 해결하고 비즈니스 요구 사항을 충족하는 데 능숙합니다. 당신이 할 수 있는 가장 현명한 일은 프로젝트를 다른 사람(일부 아키텍처 및 기타 세부 사항을 마무리하는 데 더 능숙한 사람)에게 넘기기 전에 프로젝트가 얼마나 진행될지 아는 것입니다.
마음 속에 있을 때인지 아닌지
뭔가를 꿰매기보다 복잡한 건축물을 언제 건설해야 할지 아는 것은 경험과 스파이더맨 감각이 필요합니다. 당신은 이렇게 느끼거나 단순히 모릅니다.
제가 함께 일했던 가장 똑똑한 개발자 중 일부는 기능과 일정보다 패턴과 아키텍처를 우선시하는 데 형편없었습니다. 그들은 항상 "배송 가능한 코드"보다는 "완벽한 코드"를 위해 노력하면서 계속해서 과도하게 구현하거나 리팩토링합니다.
10배 효과적인 개발자는 자신의 경험과 본능을 활용하여 아키텍처와 완벽함에 집중해야 할 때와 작업을 완료해야 할 때를 알아야 합니다.
무엇을 해야 할지, 무엇을 물어봐야 할지 알아보세요
많은 소프트웨어 개발은 의사소통 기술로 귀결됩니다. 불행하게도 우리가 작업해야 하는 프로젝트에 대한 많은 참고 사항과 요구 사항은 그다지 상세하지 않습니다. 10배 효과적인 개발자는 이 내용을 읽고, 비즈니스의 "이유"에 대해 알고 있는 내용을 적용하고, 관련 질문을 하는 방법을 알고 있습니다.
최고의 개발자는 도움을 요청하기 전에 무언가에 얼마나 많은 시간을 투자해야 하는지 알고 있습니다. 또한 프로젝트를 진행하기 위한 요구 사항을 명확히 하기 위해 어떤 질문을 해야 하는지도 알고 있습니다.
결론
저는 15년 넘게 코드를 작성해 왔습니다. 제가 10배 더 효율적인 개발자라고 말할 수도 있고, 적어도 그럴 수 있습니다. 나는 내가 무엇을 잘하는지 알고 있고, 내가 잘하는 일을 하면 아주 빨리 많은 일을 해낼 수 있다.
새로운 제품의 프로토타입을 만들고 싶다면 제가 바로 여러분입니다. Angular, React 또는 기타 프런트 엔드에 대한 도움이 필요하다면 저는 확실히 당신의 사람이 아닙니다. 나는 이러한 작업에서 10배 더 효율적인 개발자가 될 것입니다.
10배 더 효율적인 개발자는 신화가 아닙니다. 그들은 존재합니다. 이들은 개발 관리자, 설계자, 수석 개발자 또는 회사 창립자일 가능성이 높습니다. 그렇지 않은 경우 전환해야 합니다. 나는 나중에 회사의 창립자가 되었습니다. 지금은 두 번이나 되었습니다.
물론 누구도 매일 매 순간 10배 더 효과적인 개발자가 될 수는 없습니다. 우리에게는 매일 이 속도로 일할 에너지나 집중력이 없습니다. 우리는 로봇이 아닙니다.
소프트웨어 개발의 "무엇을, 왜, 언제"를 이해한다면 하루에 몇 시간이라도 더 효율적이고 더 나은 팀 구성원이 될 수 있습니다. 개발자는 10배 더 효율적입니다. 이것은 큰 차이를 만듭니다.
위 내용은 그가 공유한 내용입니다. 모두에게 도움이 되기를 바랍니다.
관련 추천: