소프트웨어에 대한 모든 것

[설계] 소프트웨어 아키텍처 (S/W 리더가 되기 위한 12가지 스킬) 본문

시스템 설계 및 디자인

[설계] 소프트웨어 아키텍처 (S/W 리더가 되기 위한 12가지 스킬)

앤테바 2022. 3. 28. 10:35
반응형

Software Architect 필요 스킬

 

본 글은 Software architects: 12 hard and soft skills needed to become a leader를 기반으로 작성되었습니다.

 

Software Architect는 무엇인가?

소프트웨어 아키텍처는 높은 수준의 설계를 디자인하고 기술 표준을 구성합니다. 여기에는 소프트웨어 tools, 소프트웨어 코딩 표준 또는 플랫폼이 포함될 수 있습니다. 효과적인 의사결정을 내리기 위해서는 소프트웨어 아키텍처 폭 넓고 깊이 있는 기술 지식이 필요합니다. 그들은 또한 프로젝트와 사람을 관리할 수 있는 소프트 스킬이 있어야 합니다.

Software Archtect: 필요한 hard 스킬

프로젝트마다 다른 기술 지식이 필요하기 때문에 모든 상황에 적용 가능한 정의를 내릴 수 없습니다. 그렇지만 몇몇 스킬은 프로젝트에 상관없이 필수족으로 필요한 것이 있습니다.

  • Unified Modeling Language(UML) 종종 필수 요구 사항으로 나열됩니다. 복잡한 아키텍처를 도표화하는데 익숙해야 합니다.
  • 장기적인 목표를 전략적으로 지원하기 위해 비즈니스에 필수적인 하나 이상의 프로그래밍 언어에 대한 깊은 지식을 갖춰야 합니다.
  • 협업적이고 민첩한 방식으로 소프트웨어 개발 관행을 관리합니다. 이는 종종 DevOps에 대한 깊은 친숙도를 의미합니다. 이를 위해서 효율적인 DevOps 환경 생성과 같은 하드 스킬과 개발팀과 운영팀이 잘 협업하도록 하는 소프트 스킬이 필요합니다.

Software Architect: 필요한 soft 스킬

그러나 기술만큼 중요한 것은 성과를 주도하고 성공적인 프로젝트를 위해 팀원들을 한데 모을 수 있는 '소프트' 기술이라고 합니다.

  • 리더십 - 프로젝트 개발을 감독하고 설계 표준을 충족하기 위해 개발자 팀을 조정하려면 상당한 리더십이 필요합니다. 소프트웨어 아키텍처는 프로젝트의 요구 사항과 팀의 요구 사항을 적절히 조정할 수 있어야 합니다.
  • 문제 해결 및 갈등 해결 - 프로젝트에 들어가는 모든 요소를 관리하고 조정하려면 기술에 대한 문제 해결, 사람에 대한 갈등 해결 기술이 필요합니다.
  • 커뮤니케이션 - 커뮤니케이션은 모든 리더십 위치의 핵심 요소입니다. 팀을 최대한 활용하려면 소프트웨어 아키텍처가 미션, 데드라인 및 기대치를 명확하게 설명해야 합니다.
  • 코칭 및 영감 - 기대(or 결과)가 충족되지 않으면 리더는 팀 구성원이 목표를 달성하도록 코칭하고 영감을 제공해야 합니다.
  • 조직(Organization) - 소프트웨어 아키텍처는 개발 로드맵을 설정하므로 조직화하는 것이 중요합니다. 종종 대규모의 복잡한 UML 다이어그램이 필요하며, 이를 위해서는 체계적이고 조직적인 사고방식이 필요합니다.
  • 우선순위 지정 - 소프트웨어 아키텍처는 작업의 우선순위를 빠르게 지정하고 제품 개발 전반에 거쳐 팀원에 업무 할당을 효과적으로 지정해야 합니다.
  • 세심함 사고(detailed thinking) - 모든 개발 프로젝트에는 올바르게 관리해야 하는 상당한 수의 세부 사항이 있습니다. 이를 위해서는 프로젝트 코드가 목표를 충족하는지 확인하기 위해서는 세부 사항에 극도의 주의가 필요합니다.
  • 창의적 사고 - 소프트웨어 설계자는 장애물에 관계없이 프로젝트 성공을 위해 팀을 앞으로 나아가게 해야 합니다. 이를 위해서는 창의적으로 생각하여 문제를 해결할 수 있는 대안적 솔루션이나 창의적인 방법을 찾는 능력이 필요합니다.

종종 과소평가되는 또 다른 필수 기술은 협상 기술입니다. 프로젝트가 계속 발전함에 따라 소프트웨어 설계자는 항상 누군가와 협상을 해야 합니다. 기한 내에 작업을 완료할 수 없다고 생각하는 개발자와 일정을 협상하거나 이해 관계자에게 기능 추가 및 비용 간의 trade-off를 이해하도록 하는 것일 수 있습니다. 훌륭한 소프트웨어 아키텍처는 훌륭한 협상가입니다.

어떻게 Software Architect가 되는가?

당신이 현재 역할에서 소프트웨어 아키텍처의 위치로 전환하려는 경우 지금 수행해야 하는 몇 가지 주요 작업이 있습니다.

  • 기술 능력 확장 - 소프트웨어 아키텍처는 풀 스택 개발자입니다. 여러 프로그래밍 언어에 대한 광범위한 경험이 필요합니다. 주로 한 분야에서 경험을 쌓았다면 다른 분야를 배워야 합니다.
  • 프로젝트와  사람을 관리해야 합니다. 현재 업무에서 추가 책임을 맡을 수 있는 기회를 찾으세요.
  • 멘토 찾기 - 존경하고 원하는 직업을 가진 사람을 찾아 코칭을 요청하세요. 올바른 멘토는 목표를 달성하는 데 도움이 될 수 있으며 평생 든든한 자원이 될 수 있습니다.
  • 지속적인 교육 - 필요한 기술을 강화하기 위해 외부 교육을 받는 것을 고려하고 취업을 지원할 때 자신의 사례를 강화할 인증을 찾으세요.

소프트웨어 아키텍처 역할로 이동할 수 있는 가장 좋은 기회는 현재 조직 내부일 가능성이 큽니다. 관리자에게 자신의 욕구를 알리고 그들과 함께 자신을 증명할 기회를 찾는 것의 힘을 간과하지 마세요.

반응형
Comments