애자일로 변신! 데브옵스 인턴십에서 배운 것

읽는 시간: 6 분
...

📝 원문 정보

  • Title: Embracing Agile methodology during DevOps Developer Internship Program
  • ArXiv ID: 1607.01893
  • 발행일: 2016-07-08
  • 저자: Amol Patwardhan, Jon Kidd, Tiffany Urena, Aishwarya Rajgopalan

📝 초록 (Abstract)

본 논문은 회사의 데브옵스 팀이 여름 인턴십 프로그램을 통해 애자일 방법론을 도입하고 성공적으로 적용한 사례를 다룹니다. 특히, 데이터베이스 문서화 부족 문제를 해결하기 위해 데이터 사전 웹사이트 구축 프로젝트를 진행하며 스크럼 전략을 활용했습니다. 이 과정에서 인턴십은 애자일 방법론의 장점을 증명하고, 초기 경력 단계에서 애자일 사고방식을 심어주는 기회가 되었습니다.

💡 논문 핵심 해설 (Deep Analysis)

Figure 1
본 논문은 회사의 데브옵스 팀이 여름 인턴십 프로그램을 통해 애자일 방법론을 도입하고 성공적으로 적용한 사례를 다룹니다. 이 연구는 애자일 방법론의 장점을 입증하고, 초기 경력 단계에서 애자일 사고방식을 심어주는 기회가 되었습니다.

1. 프로젝트 배경 및 목표

회사의 핵심 제품은 마이크로 서비스 아키텍처를 기반으로 한 웹 애플리케이션입니다. 그러나 여러 관계 데이터베이스에 대한 문서화 부족으로 인해 새로운 개발자, 비즈니스 분석가, QA들이 특정 데이터베이스, 테이블, 열의 목적과 명명 규칙을 이해하는 데 어려움을 겪었습니다. 이를 해결하기 위해 중앙 집중식 내부 웹사이트를 구축하여 모든 데이터베이스 정보를 제공하려는 프로젝트가 시작되었습니다.

2. 애자일 방법론의 도입

데브옵스 팀은 이 인턴십을 통해 애자일 개발 프로세스를 도입하고, 이를 통해 다음과 같은 목표를 달성하려고 시도했습니다:

  • 조직 내 애자일 전환의 실제 사례 제공 및 평가
  • 초기 경력 단계에서 애자일 사고방식 심어주기
  • 폭포수 방식에서 애자일 방식으로 전환하는 과정에서 마주치는 장애물 파악

3. 프로젝트 구성 및 역할 분배

프로젝트의 주요 구성 요소와 각 역할은 다음과 같습니다:

  • 스크럼 팀: 데브옵스 매니저, 비즈니스 분석가, 시니어 소프트웨어 엔지니어 및 개발 인턴으로 구성.
  • 스크럼 마스터: 데브옵스 매니저는 프로젝트의 진행을 방해하는 요소를 제거하고 팀 이벤트를 촉진하며, 정기적인 진행을 보장했습니다.
  • 제품 소유자: 비즈니스 분석가는 데이터 사전 프로젝트에 대한 언어, 텍스트, 색상 구성표, 레이아웃 및 예상 기능에 대한 중요한 피드백을 제공하고, 모의 고객 역할도 수행했습니다.

4. 개발 과정

  • 개발팀: 시니어 컴퓨터 분석가, 시니어 소프트웨어 엔지니어 및 개발 인턴으로 구성.
  • 코딩 및 설계: Visual Studio 2015의 ASP.NET MVC를 사용한 웹 애플리케이션 프로젝트 템플릿을 활용하여 코딩을 수행했습니다. 코드 중 중요한 논리는 인라인에 문서화되었고, 함수는 최상단에 문서화되었습니다.
  • 페어 프로그래밍: 매일 30분 동안 시니어 프로그래머와 개발 인턴이 페어 프로그래밍을 통해 코드 베스트 프랙티스 및 내부 코드 표준에 대한 지식을 전수했습니다.

5. 배포 및 피드백

  • 배포: TFS API, 웹 API, AngularJS 및 PowerShell 스크립트를 사용한 자체 개발된 지속적 자동 배포 도구를 활용하여 매일 프로젝트를 배포하고 실제 품질 보증(QA) 환경에서 웹 애플리케이션 코드를 테스트했습니다.
  • 인턴 설문조사: 인턴들에게 다양한 피드백 질문을 던져 긍정적인 답변을 받았습니다. 이는 프로젝트의 성공과 애자일 방법론의 효과성을 입증하는 데 도움이 되었습니다.

6. 결론 및 시사점

데브옵스 개발 인턴십 프로그램을 통해 애자일 방법론을 도입한 시도는 다음과 같은 측면에서 큰 성공을 거두었습니다:

  • 스크럼의 장점을 경영진에게 증명했습니다.
  • 초기 경력 단계에서 애자일 사고방식을 심어주었습니다.
  • 내부 웹 애플리케이션 구현 및 SCRUM 실시간 프로젝트 학습 기회 제공.
  • 일일 스탠드업과 이메일 업데이트를 통해 진도 추적 가능.
  • 즉각적인 기술 문제 해결로 최소한의 다운타임으로 정기적인 진전 가능.

이 연구는 애자일 방법론을 도입하고 적용하는 데 있어 인턴십 프로그램의 중요성을 강조하며, 향후 더 큰 규모에서 애자일 방법론을 활용할 수 있는 기반을 마련했습니다. 또한, 원격 근무 환경에서도 효과적인 의사소통이 가능함을 입증하여 현대 조직에서의 협업 방식에 대한 새로운 시각을 제공합니다.

이 연구는 애자일 방법론의 도입과 적용 과정에서 인턴십 프로그램의 중요성을 강조하며, 향후 더 큰 규모에서 애자일 방법론을 활용할 수 있는 기반을 마련했습니다. 또한 원격 근무 환경에서도 효과적인 의사소통이 가능함을 입증하여 현대 조직에서의 협업 방식에 대한 새로운 시각을 제공합니다.

📄 논문 본문 발췌 (Excerpt)

## 데브옵스 인턴십을 통한 애자일 도입: 데이터베이스 데이터 사전 프로젝트

데브옵스 팀은 소프트웨어 개발 팀과 IT 운영 팀 사이의 가교 역할을 수행합니다. 우리 회사의 데브옵스 팀은 여름 인턴을 모집할 기회를 얻었습니다. 팀은 이 인턴십을 애자일 개발 프로세스 도입의 발판으로 활용하고자 했습니다. 데브옵스 팀은 소규모 프로젝트, 내부 IT 프로젝트, 유틸리티 도구, 자동화, 인프라 프로젝트뿐만 아니라 비생산 및 생산 환경 문제 해결 등 다양한 분야에서 일했습니다. 이러한 프로젝트는 모두 애자일 방법론을 채택할 잠재력을 가지고 있었습니다. 인턴십 프로그램에서 애자일 방법론을 도입함으로써 다음과 같은 이점이 확인되었습니다:

  1. 조직 내 애자일 전환의 실제 사례를 제공하여 그 장점을 평가합니다.
  2. 인턴에게 보람 있는 인턴 경험을 제공하고, 초기 경력 단계부터 애자일 사고방식을 심어줍니다.
  3. 폭포수 방식에서 애자일 방식으로 전환하는 과정에서 마주치는 장애물을 파악합니다.

저희 회사의 핵심 제품은 마이크로 서비스 아키텍처를 기반으로 한 웹 애플리케이션입니다. 여러 관계 데이터베이스가 백엔드에 사용되지만, 데이터베이스, 테이블, 열, 저장 프로시저에 대한 문서화가 매우 부족합니다. 이러한 이유로 모든 데이터베이스에 관한 정보를 포함하는 중앙 집중식 내부 웹사이트를 구축해야 했습니다. 완성된 웹사이트는 비생산 환경 중 하나에 호스팅되었습니다. 새로운 개발자, 비즈니스 분석가, QA들은 특정 데이터베이스, 테이블, 열의 목적과 명명 규칙을 이해하는 데 어려움을 겪었습니다. 또한, 열의 암호 같은 이름에서 얻을 수 있는 정보는 거의 없었습니다. 자주 제기되는 질문은 다음과 같았습니다: 특정 데이터베이스, 테이블, 열 이름은 무엇을 의미하나요? 그 이름은 왜 그렇게 지어졌나요? 어떤 용도로 사용되나요? 열 데이터 타입 표준은 무엇인가요?

데브옵스는 애자일 이니셔티브를 위한 후보 프로젝트로 데이터 사전 프로젝트를 선택했습니다. 내부 IT 부서에서 이러한 데이터베이스 객체에 대한 공식 문서화가 없었기 때문에, 데이터 사전은 데브옵스 인턴이 수행하기에 충분히 단순하고 범위가 제한적인 자율 프로젝트였습니다. 스크럼 전략은 애자일 방법론을 실천하기 위한 파일럿 이니셔티브의 일환으로 채택되었습니다.

스크럼 방법론의 다양한 역할은 다음과 같이 정의됩니다:

a) 스크럼 팀: 스크럼 팀은 데브옵스 매니저, 비즈니스 분석가, 시니어 소프트웨어 엔지니어 및 개발 인턴으로 구성됩니다. b) 스크럼 마스터: 데브옵스 매니저는 스크럼 마스터 역할을 수행했습니다. 그의 책임은 프로젝트의 진행을 방해하는 요소를 제거하는 것이었습니다. 예를 들어, 인턴의 개발 머신이 2주차에 충돌하기 시작했을 때, 스크럼 마스터는 즉시 데스크톱 지원 팀에 지원 티켓을 생성했습니다. 그는 기술자와 연락하여 문제를 해결하고 코딩 작업이 영향을 받지 않도록 했습니다. 중간에는 대체 노트북을 마련하여 다운타임이 발생하지 않도록 조치했습니다. 또한, 그는 팀 이벤트를 촉진하여 정기적인 진행을 보장했습니다. 예를 들어, 스크럼 마스터는 회의를 조직하고 주제 전문가 및 개발 인턴 간 이메일 의사소통을 시작해 데이터베이스에 대한 정보를 공유하고 데이터 사전 웹사이트에 추가하도록 했습니다. c) 제품 소유자: 데브옵스 팀의 비즈니스 분석가는 제품 소유자 역할을 수행했습니다. 이 프로젝트는 내부 IT 이니셔티브였기 때문에, 제품 소유자는 또한 모의 고객이었습니다. 제품 소유자는 데이터 사전 프로젝트에 대한 언어, 텍스트, 색상 구성표, 레이아웃 및 예상 기능에 대한 중요한 피드백을 제공했습니다. 제품 소유자는 마일스톤 회의 배정, 프로젝트 범위 제한, 다양한 부서의 이해관계자 간의 의사소통 관리 등에도 중요한 역할을 했습니다.

데이터 사전 프로젝트: 애자일 방법론의 성공적인 도입

개발팀: 데이터 사전 프로젝트의 개발팀은 시니어 컴퓨터 분석가, 시니어 소프트웨어 엔지니어 및 개발 인턴으로 구성되었습니다. 이 자원은 모두 DevOps 팀에 속했으며, 시니어 분석가는 주로 데이터 사전 웹 애플리케이션의 아키텍처와 디자인을 지원했습니다. 구현에는 ASP.NET MVC를 사용하여 C#과 MS SQL이 백엔드 시스템으로 선택되었습니다. 시니어 소프트웨어 엔지니어는 개발 인턴에게 기술 멘토링을 제공했습니다.

스크럼 팀은 프로젝트의 스프린트 기간(4주 = 20 업무일)을 정의하기 위해 모였습니다. 팀은 완료된 프로젝트를 모든 스토리가 품질 보증 팀으로부터 승인받은 날로 정의했습니다. 매일 오전 9시에 스탠드업 미팅이 조직되었습니다. 스크럼 마스터와 개발팀은 상태 업데이트를 공유했습니다. 매일 스탠드업에서 논의된 세 가지 사항은 다음과 같습니다: 1) 개발 인턴이 완료한 작업, 2) 개발 인턴이 그날 달성해야 할 작업 목표, 3) 각 작업의 구현 중 발생한 어려움입니다. 매일 스탠드업 요약은 전체 그룹으로 이메일로 보내져 일일 스탠드업 상태 게시판 역할을 했습니다.

코딩 및 설계: 코딩은 Visual Studio 2015의 ASP.NET MVC를 사용한 웹 애플리케이션 프로젝트 템플릿을 사용하여 수행되었습니다. 웹 페이지, UI 레이아웃, 사용자 스토리, 클래스, 객체 및 비즈니스 엔티티는 화이트보드에서 설계되고 논의되었습니다. 코드 중 중요한 논리는 인라인에 문서화되었고, 함수는 최상단에 문서화되었습니다.

페어 프로그래밍의 이점: 애자일 방법론을 더욱 포용하기 위해 페어 프로그래밍 [6]이라는 익스트림 프로그래밍 관행이 채택되었습니다. 매일 페어 프로그래밍 세션은 30분으로 제한되었습니다. 각 세션에서 시니어 프로그래머는 드라이버 역할을, 인턴은 내비게이터 역할을 수행했습니다. 코드 베스트 프랙티스 및 내부 코드 표준에 대한 지식이 전수된 후, 개발 인턴은 기능을 구현할 기회를 얻었습니다.

배포: 배포는 TFS API, 웹 API, AngularJS 및 PowerShell 스크립트를 사용하여 자체 개발한 지속적 자동 배포 도구를 사용하여 처리되었습니다. DevOps 빌드 엔지니어가 배포를 활성화했습니다. TFS 빌드와 자동 배포 도구를 통해 인턴은 매일 프로젝트를 배포하고 실제 품질 보증(QA) 환경에서 웹 애플리케이션 코드를 테스트할 수 있었습니다.

…(본문이 길어 생략되었습니다. 전체 내용은 원문 PDF를 참고하세요.)…

📸 추가 이미지 갤러리

cover.png

Reference

이 글은 ArXiv의 공개 자료를 바탕으로 AI가 자동 번역 및 요약한 내용입니다. 저작권은 원저자에게 있으며, 인류 지식 발전에 기여한 연구자분들께 감사드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키