2024.03.11(월) ~ 2024.03.27(수)
Apple Developer Academy @ POSTECH 3기로 들어와서 우리가 어떤 규칙을 가지고 어떤 사람들과 함께하는 공간, 시간을 만들어 갈지에 대한 이야기를 지난주까지 나누고 이번주부터는 프로젝트를 본격적으로 시작했다. 총 6개의 챌린지 중 첫번째로 진행되는 챌린지를 진행하며서 느낀 경험들을 정리해보도록 하겠다.
이번에 진행하는 Mini challenge 01은 CBL을 직접 경험하면서 Learning을 어떻게 하는지 배우는 것이 목표라고 하였다.
우리는 하나의 주제를 가지고 어떤 가치를 제공해 주고자 하는지에 대한 것들을 하나의 문장을 도출해 내는 과정을 지나고 있다.
이를 도출하는 과정이 그리 어렵다고 생각하지 않을지 모르겠지만, 팀원들의 생각을 align하는 과정이 순탄하지는 않은 것 같다.
또한 처음 해보는 프로세스, 협업, 솔루션(개발)을 함께 진행하는 과정 속에서 3주간의 프로젝트의 결과에 대해서 걱정을 많이 했던 것 같다.
우리는 프로젝트의 프로세스적인 측면에서 멘토진과 대화를 하고자 노력했고, 대화를 통해서 나는 개인적으로 이번 프로젝트의 목적을 찾았다고 생각한다.
결론적으로 MC1은 '프로젝트 성공'을 하기 위한 과정이 아니다.
MC1의 목적은 궁극적으로 프로젝트라는 주제 내에서 CBL을 하는 방법을 매일매일의 시간에 맞춰서 따라가고, 그 과정에서 우리가 겪게되는 어려움은 이번 챌린지에서 기대하는 올바른 배움이다.
멘토와의 대화를 통해 Apple Developer Academy @POSTECH에서 첫번째 프로젝트에서 우리에게 요구한 것이 어느정도인지 감이 오지 않은 부분에서 감을 잡을 수 있었던 의미있는 대화였다.
따라서 논의를 할 때, 좋은 결과만을 내겠다는 목적을 가지고 논의하기 보다, 이 과정을 온전히 경험해보고자 했다.
CBL을 하는 과정을 이론적으로 배우지도 않았고, 하루하루의 과정을 진행하는 날에 간단한 설명을 통해서 팀원들이 이해한 내용 내에서 진행을 하는 방식으로 MC1이 진행되었다.
그러다보니 팀원들끼리 진행 방식에 대한 이해와 생각이 조금씩 달랐고, 진척이 되지 않았던 과정이 발생했다.
이런 상황에서 저녁에 멘토와 함께 밥을 먹으면서 질문과정을 가지게 되었고, 늦은 시간이였지만 멘토가 진행을 이끌어주면서 서로 다르게 이해하고 있던 부분을 깨닫고 방향을 찾을 수 있었다.
왜 12시간에 거쳐 논의해도 의견이 좁혀지지 않던 것들이, 약간의 멘토의 도움에 의해서 해결되는 듯 보였다. 그 이유를 생각해보면 2가지가 있다.
1. 멘토의 말과, 동료의 말의 경중이 다르다.
- Apple Developer Academy @POSTECH에서 멘토는 시니어 러너로 불리고, 멘티는 주니어 러너로 불린다. 우리는 모두 같은 러너이다. 모두 평등한 러너라고 이야기하지만 사실 이 9개월의 과정을 진행하면서 우리는 같다고 느낄 수 없다. 시니어 러너들은 우리가 진행하는 CBL을 포함한 과정에 대해서 이론과 실습을 통해서 배움을 이미 경험했으며, 대부분의 멘토가 각자의 분야에 대해서 조금 더 많은 지식을 가지고 있음은 분명한 사실이다. 이러한 사실을 인지하고 있는 상황에서 한번도 CBL과정을 경험해보지 않은 동료의 말보다 러너의 말을 더 신뢰할 가능성이 더 높지 않을까?
2. 멘토는 CBL을 이미 경험하고 알고있다.
- CBL은 단계별로 나눠지는데 각 단계에 대해서 짧은 문장으로 된 설명이 있고, 각 활동을 진행하는 날짜에 간단한 설명으로 무엇을 진행해야 하는지 알려준다. 사실 문장이 긴 것이 아니라 1~2줄 정도의 짧은 문장이기 때문에 1~2일에 걸쳐서 진행되는 모든 과정을 담기는 어려운 것 같다. 더불어 설명으로 진행되는 부분도 방식을 지정해주는 것이 아니라 각 과정에서 우리는 어떤 생각을 하고, 어떤 자세와 마음가짐으로 임해야하는지를 알려주기 때문에 방식조차도 정확하게 이해하기 쉽지 않았다.
그렇다면 과정도 자유롭고 결과도 자유롭게 나와도 되는 것일까? 이에 대해서 나는 '아니다'라고 말할 수 있다. 왜냐하면 결과물에 대해서 피드백을 진행하면 확실히 그들이 요구하는 결과물과 필요한 키워드가 존재한다.
우리팀의 문제는 모든 과정에서 각 과정을 알려주는 글과 설명에 대해서 약간 다르게 이해하거나 부족한 부분을 스스로 납득가능한 방식에서 이해하고자 했었는데, 사실은 답이 정해진 상황에서 우리만의 생각을 가지고 진행했다는 것 같다는 생각을 가지고 있다. 그런 상황에서 모든 과정에 대한 이해도가 있는 멘토가 이끌어주니 자연스럽게 따라가게 된 것 같다.
이 과정에서 CBL에 이해도가 있는 사람을 배치하고 직접적으로 이끌어주는게(직접적이라고 방식을 고정한다기보다 문제를 해결하는 방식을 생각할 수 있도록 방향성을 지속적으로 제시하는 것) 배움을 배우는 방법이라는 이번 CBL의 목적에 맞는 방식이지 않았을까?라는 생각이 들었다.
또 하나, CBL은 모든 과정 속에서 우리는 모르는 부분에 대한 지식을 가지고 있지 않지만, 각 과정에서 문제점을 찾고 해결해내는 것을 반복하면서 점점 해결가능한 방향으로 가는 것이라는 이야기를 멘토가 해주었다.
이 이야기를 듣자마자 의문이 하나 떠올랐다. 나에게는 이 의문이 엄청나게 중요한 문제이고, 무조건 답을 찾고 싶은 문제 중 하나이다.
왜냐하면 개발자로서 나의 삶은 항상 CBL과 같은 방식이였다. 아무것도 모르는 상황에서 학교에서, 회사에서 개발을 진행하면서 문제점이 발생하면 필요한 것들을 배우고, 해결하는 방법으로 살았었다. 맨땅에 헤딩이라는 말이 나한테는 찰떡같은 말이였다. 맨땅의 해딩을 눈도 가리고 이게 땅인지 바다인지 콘크리트인지도 모르는 상황에서 매일, 매시간 한다고 생각한다면 얼마나 무서움으로 다가오는지 해보지 않은 사람이라면 짐작을 하기 힘들지도 모른다. 위 말이 틀렸다는게 아니라 나는 맨땅에 해딩도 이게 땅인지 바다인지 정도는 구분할 수 있어야 의미있는 결과를 얻을 수 있다고 생각한다.
위의 CBL과정을 거쳐서 나온 기획을 기반으로 3일간의 개발을 시작했다. 디자인과 개발은 팀이 아니라 각자 진행을 한다고 한다. 오리엔테이션을 하면서 같은 시간대 소속인 100명을 다 만나본 것은 아니지만 꽤 많은 동료들을 만났고 디자인, 도메인, 테크로 들어왔지만 80~90%의 궁극적인 목표는 테크 즉 개발을 하는 사람이 되고 싶어하는 것 같다.
나는 멋쟁이사자처럼 iOS 앱스쿨 1기를 수강하고, 개인적으로 UIkit 앱 출시 경험도 있다. 아직 지식도, 기술도, 경험도 아주아주 많이 부족하지만 어느정도 맨땅에 헤딩을 해도 내가 어디에 부딪히고 있는지 정도는 알고 있다고 생각한다. 하지만 테크를 포함해서 대부분의 인원이 iOS앱개발 경험이 없는 경우가 다수였고, 경험이 있더라도 UIKit 경험이 많았다.
어제, 오늘 앱개발을 진행하며서 나는 스스로 과제를 진행하기 보다 앱개발을 해보지 않은 사람들의 코드를 수정해주고, 이유를 설명해주는데 대부분의 시간을 보냈다. 이 과정에서 너무 한번도 개발을 해보지 않았던 인원들이 진행하기에 이런 부분이 개선되었으면 좋겠다고 생각한 것들이 몇개 있었다.
1. Xcode가 아닌 Swift Playground 사용
- Playground를 사용하는 이유를 멘토에게 물어본 적이 있다. 멘토의 대답은 Xcode는 Playground의 모든 기능을 담고 그 외에도 너무나 큰 기능들이 많아서 처음 접하는 사람들이 집중과 몰두를 할 수 있도록 Playground 사용을 권고하는 것이라고 하였다. 이렇게만 보면 처음 개발을 해보는 사람들을 고려한 것처럼 보인다. 하지만 개인적인 입장에서 대부분의 사람들이 테크를 원한다는 과정에서 Playground에서 구현이 불가능한 기능들이 존재하고, 언젠가는 Xcode를 사용하게 될 것이다. Xcode에서는 내부적으로 제공하는 함수, 컴포넌트 등에 대해서 option키로 어떤 매개변수를 필요로 하는지 어떤 기능을 하는지 확인할 수 있다. 이는 우리가 개발한 것이 아닌 자체적으로 제공하는 부분에 있어서 개발자에게 스스로 찾아서 개발할 수 있는 가이드를 주는 것이라고 생각한다. 따라서 공부를 하는 개발자에게는 어떤 것들이 필요한지 어떤 타입의 값이 매개변수로 들어가야 하는지, 어떻게 사용해야 하는지를 스스로 확인하고 해결해나갈 수 있는 능력을 키우는 것이 중요하고 생각하다.
나에게 질문을 한 대부분의 동료들이 왜 타입이 다르다는 에러가 나오는지, 타입이 뭐가 다른 것인지, 그 함수는 무엇을 하는 것인지 물어보았다. 따라서 이런 기능을 제공하지 않는 Playground보다 Xcode를 사용하는 것이 특히 개발자로서 스스로 공부하는 능력을 기르는데 중요하다고 생각하고, 이 것이 CBL 즉, 배움는 방식을 배우는데 더 적합한 선택지이지 않았을까?하는 아쉬움이 남는다.
2. 개발과 관련된 기본기를 습득할 시간 부족
- 자체적으로 Swift Playground를 사용하는 법에 대한 1~2시간의 간단한 강의를 진행했지만, 강의를 들었던 대부분의 사람들은 UI코드를 작성하는데 어려움을 지속적으로 겪고있는 것 같다. 왜냐하면 강의 자체가 너무 기본적인 강의였고, Mini Challenge 01을 통해서 도출된 기획의 UI 범위를 커버할 수가 없다. 내부 강의 자체가 시작과 함께 이뤄지고 따로 공부할 시간이 주어진 것도 아니고, 개발을 시작하기 하루, 이틀 전에 진행되면서 바로 개발에 들어가야하는 상황에서 자체적으로 공부하면서 결과물을 낼 시간 자체가 부족한 것 같다. 또한 동료들의 질문을 들어보면 검색을 어떻게 해야하는지 조차 모르는 상황에 놓여있는 것 같아 그들이 위해서 이렇게 진행하는 것이 맞는지에 대한 의문이 많이 들었다.
또한 이렇게 기본기를 알려주지 않지만, 그들을 위한 테크 질문을 하는 시간과 요일이 정해져있고, 모든 테크 멘토가 풀타임 지원이 아닌 요일이 맡아서 해당 요일에 1명만 진행되기에 동료에게 물어보고, 부탁하는 상황이 너무나 이해가 되는 상황이다.
하지만 당연히 이를 기획하고 운영하는 운영진들의 입장에서는 더 많은 시간을 논의하고 고려해서 결정된 상황이기에 내가 모르고 이야기하는 맥락적인 상황들이 존재할 수도 있다고 생각한다. 또한 운영진들이 나보다 더 이러한 사실에 대해서 인지하고 있고, 이에 대한 고민과 좋은 아이디어를 항상 내려고 노력해주시는 것을 알고 있기에 감사드리며 더 나은 공동체를 만들기 위해서 더 협조하고 노력하겠다는 마음가짐을 남긴다.
'2024 Apple Developer Academy 3기' 카테고리의 다른 글
[MC2] 유저 파악하기 실패의 기록 (0) | 2024.05.08 |
---|---|
[Bridge2] 조금 늦은 정리와 계획세우기 (2) | 2024.05.01 |
[Nano Challenge 01] 프로젝트 꼼꼼하게 진행하기 (0) | 2024.04.15 |
[Bridge 01] 나의 첫번째 브릿지를 기록하며, (2) | 2024.04.03 |
2024 Apple Developer Academy @POSTECH 3기 목표 및 다짐 (0) | 2024.03.25 |