SW 마에스트로 10기 첫 활동으로 지난 주 4/29, 4/30 14:00~18:00 동안 기본소양교육을 진행하였다.
4/29(월) |
14:00 ~ 16:00 |
SW개발자의 윤리 의식 |
이용덕 대표 (드림 앤 퓨처랩스) |
16:00 ~ 18:00 |
사례를 통해 보는 SW개발자의 법과 윤리 |
김재철 멘토 (법무법인 백상) |
|
4/30(화) |
14:00 ~ 18:00 |
협업을 통한 SW프로젝트 관리와 툴 사용법 |
유현석 리더 (소프트웨어 캠퍼스) |
교육을 들으며 느낀 점을 간단히 정리해보았다.
1. SW개발자의 윤리 의식 - 이용덕 대표 (드림 앤 퓨처랩스)
이용덕 대표님의 강의를 들으며 비록 두 시간의 강의였음에도 불구하고 SW에 대해 시야가 넓어진 것 같은 기분이 들었다.
여러 혁신적인 기술들에 대한 소개를 해주셨는데, 스스로 SW를 공부한다면서 난생 처음 들어보는 기술들도 많아서 내가 공부하는 분야에 대해 지속적인 관심을 가지면서 알아보지 않았다는 것을 반성하게 되었다.
그리고 SW의 발전에 대해 정말 빠삭하게 알고 계시는 대표님을 보며 저렇게 되기까지 얼마나 오랜 기간동안 꾸준히 알아보고 공부하셨을까라는 생각이 들며 존경스러웠다.
'아는만큼 보인다'는 말을 항상 유념하며 앞으로 IT 동향에 대해 관심을 가져야겠다고 다짐하였다.
2. 사례를 통해 보는 SW개발자의 법과 윤리 - 김재철 멘토 (법무법인 백상)
개발을 공부해오며 법적인 문제를 생각은 했지만 크게 고려하진 않았다.
보통 프로젝트성으로 진행한 개발이었기 때문에 필요성을 많이 느끼지 못했다.
이번 강의 덕분에 개발과 직접적으로 관련이 있으며 기본적인 내용들을 알게 되었고, 앞으로 개발 프로젝트를 진행할 때 꼭 염두에 두어야겠다고 생각했다.
3. 협업을 통한 SW프로젝트 관리와 툴 사용법 - 유현석 리더 (소프트웨어 캠퍼스)
SOPT라는 대학생 IT 창업 연합 동아리 활동을 하며 대학생 기준에서 꽤 많은 인원과 협업을 진행해본 경험이 있는데, 그 경험을 떠올리니 이 강의 내용에 대한 중요성이 더욱 와닿았다.
그래서 앞으로의 프로젝트에 잊지 않고 적용하기 위해 아래에 내용과 생각을 정리해보았다. (생각은 하늘색 글자로 작성했다.)
소프트웨어 개발 과정
요구사항 수집 → 설계 → 구현 → 검증(QA) → 유지보수
문서
- 처음에 기획한 의도가 어떤 것이었는지 확인(방향성)
- 프로그램을 개발하기 위해서 필요한 설계도
- 회의록, 일정계획표, 요구사항 정의서, 엔티티 정의서, 사전 정의서, 테이블 정의서, 화면 설계서, 프로세스 설계서, 개발 환경, 프로젝트 발표
특히 앞으로 진행하는 프로젝트에서는 사용하는 용어와 변수들을 정리하는 사전 정의서를 꼭 작성해야겠다고 생각했다.
동아리에서 프로젝트를 진행할 때 클라이언트에 안드로이드와 iOS, 그리고 백엔드 개발자까지 9~12명의 개발자들과 협업을 진행했는데 각자 본인 나름대로의 규칙을 가진 변수명과 함수명을 사용하다보니 다른 사람의 코드를 이해하기 힘들고 유지 보수하기가 힘들었다.
그리고 프로세스 설계서는 현업에서 UML 다이어그램(클래스, 시퀀스 다이어그램)을 쓴다는 것을 알게 되었는데, 학교 전공 강의로 IT소프트웨어공학 과목을 들으며 공부했던 기억이 났다.
이슈 관리
- 문제가 어떻게 진행되는지 상황을 파악할 수 있다.
- 문제가 어떻게 해결되었는지 확인할 수 있다.
- 똑같은(비슷한) 문제가 발생했을 시 이전 이슈를 참고할 수 있다.
- 소통을 잘 하는데 많은 도움이 된다.
이슈 관리의 경우 Github의 Issues나 Trello를 이용하여 나름 한다고 했었는데 그리 꼼꼼하게 하지는 않았었다. 하지만 확실히 이슈 관리가 도움이 된다는 것을 느꼈었다. 앞으로 프로젝트를 진행할 때 이슈를 더 꼼꼼하게 기록해야겠다.
Trello
해야할 일, 진행중인 일, 완료된 일, 보류된 일로 카드를 나눠서 관리
스프린트 카드 예제
타이틀(Task) - 작업 타이틀
세부 설명
포인트
성공의 정의
체크리스트 - 이 작업이 성공적으로 끝나는데 필요한 세부 작업들을 적는다.
플래닝 포커(Planning Poker)
일일 스탠드 업: 매일 모든 팀원들이 10-15분씩 모여서 2-3분간 각자 상황을 공유
공유 내용
- 마지막 스탠드업 이후로 한 작업들
- 오늘 하려고 하는 일이나 진행중인 일
- 일을 함에 있어서 문제가 있거나 도움이 필요하면 언급
커뮤니케이션 도구
Slack, HipChat, Mattermost
- 소스 컨트롤 시스템, 버그 트래킹 시스템, CI 시스템과 연동
협업을 진행하면서 Slack을 사용해봤는데 확실히 여러 채널을 만들어서 업무에 따라 활용이 가능하다는 점이 편리했지만 사실 그렇게 효과적으로 쓰지는 못했던 것 같다. 다른 커뮤니케이션 도구들도 사용해보고 싶다.
이슈 관리: JIRA, Trello
문서 관리: Google Drive
그리고 나중에라도 TDD를 꼭 공부해보라고 하셨다! 나도 TDD의 효과와 중요성에 대한 글을 찾아 읽어본 적이 있어서 꼭 공부해봐야겠다고 생각해왔었다.
소프트웨어 개발에서 중요한 것
1. 요구사항 분석
2. 요구사항 내용을 바탕으로 체크리스트 만들기
3. 일일보고서 작성하기
4. 일정 관리
5. 매일 아침에 30분 정도 미팅
6. 자신이 만들 기능에 집중하기
7. 이슈가 발생하면 이슈 트래커에 남기기
8. 완성된 기능 테스트
9. 완성된 기능 업로드하기
10. 이슈에 대한 해결방법 체크하기
처음 개발을 시작하고 프로젝트를 진행했을 때는 이런 문서나 커뮤니케이션 방법 등을 전혀 고려하지 않았었다.
Github를 접하기 전에 학교에서 팀플을 할 때 카카오톡이나 이메일로 코드를 주고 받았던 과거의 내가 생각난다.
그러다가 동아리에서 기획자, 디자이너, 안드로이드 개발자, iOS 개발자, 백엔드 개발자 14~16명이서 프로젝트를 진행하며 Github와 Trello, Slack, Zeplin, XD 등 여러 툴을 접하게 되었다.
프로젝트의 규모와 수준이 올라갈수록 개발자라고 개발만 하는 게 아니라 협업에 있어서 필요한 효과적인 툴 사용, 문서 관리, 소통 방식 등의 중요성을 크게 느껴왔으며, 원활한 협업을 위해서 이런 부분들에 대해 더욱 능숙해지고 싶다.
'SW 마에스트로' 카테고리의 다른 글
SW 마에스트로 10기 합격 후기 (2) | 2019.04.25 |
---|
댓글