소프트웨어 개발의 자연스러운 길에 대해 생각하기
(연락처: conkmj@gmail.com)
(연락처: conkmj@gmail.com)
피플웨어 31장입니다.회의에 대한 단상입니다.
회의는 꼭 해야 되는걸까요?꼭 해야 한다면 어떻게 하면 잘 하는걸까요?뭐 이런 류의 질문에 대한 답을 찾을 수 있을까요?
이 장을 읽으면서 곰곰히 생각하게 된 부분은 세가지 정도가 있는거 같네요.첫번째는 신경 경화증이라는 섹션 제목,, 왜 이렇게 섹션 제목을 붙였을까?이 책은 섹션의 내용에 섹션 제목이 직설적으로 표현되어 있지 않고 제목이 상징으로 다뤄져서 약간 왜 이 제목일까하는 포인트가 저에게는 있었습니다. 그래서 더욱 더 내용을 반추하게 되는 긍정적인 효과도 있네요. 암튼 이 섹션의 제목의 경우는, 음.. 신경이 딱딱해지니 잘못된 길을 가게 되면 아무 생각없이 그 길을 가게 된다는 의미가 아닐까 생각되어졌습니다. 회의란 것이 복잡한 목표를 다루기 위해 필요악으로 해야 하는 것이라는 당위성이 있어서 끝없는 불필요한 수다 경쟁이 되는 경우를 인지 못한다 내지는 인지해도 묵인되고 하게 되는 현실을 팩트 체크한다고 보여집니다.
두번째는 오픈 스페이스 기술입니다. 효과적이지 않은 회의, 즉 세레모니성 회의를 하지 말고 뭔가 도움이 되고 득이 되는 회의를 제안하는 과정에서 다뤄진 주제입니다. 구글링을 해보니 이 OST도 별도로 공부할 다소 큰 내용을 담고 있는듯 합니다. 원칙들도 있고 주창한 사람도 있고 책도 있고,, 도서관 뒤져서 상호대차도 신청해 놓았습니다. ^^
세번째는 이 장에서 제시하는 가이드, 충고를 곰곰히 생각해 보았습니다.어떻게 하면 나쁜 회의를 지양하고 좋은 회의를 해 나갈 수 있을까? 즉, 목적이 있는 실무형 회의를 어떻게 하면 많은 포션 진행할 수 있을까? 세레모니 성 회의는 꼭 필요할 때만 어떻게 하면 할 수 있을까? 뭐가 실무회의고, 뭐가 세레모니성 회의인가?
암튼 고전은, 좋은 책은 답을 던지지 않습니다. 질문이 남게 되고 스스로 답을 찾게 합니다.노벨문학상을 받은 한강의 인터뷰를 오늘 들었는데, 채식주의자 시리즈도 저자가 답을 던지지 않았다고 하네요. 역시 대가들은 비슷합니다. 겸손합니다.
https://product.kyobobook.co.kr/detail/S000001511279
셀프 오거나이징, 해리슨 오웬
[2024.10.12]
스캇 앰블러처럼 애자일 선언을 내 언어로 재해석하는 작업을 하자.
https://www.ambysoft.com/essays/agileManifesto.html
[2024.06.25]
오늘은 그간 온라인 독서 토론회를 했던 기억들을 반추해 보았습니다.
12권의 좋은 책을 여러 좋은 분들과 16차례 독토를 진행했더라구요.
저에게는 참 좋은 자산이 되었습니다.
이제 애자일 소프트웨어 개발이라는 이름의 토론으로 살짝 모습을 변경해 보려 합니다~^^
--
피플웨어, 2020.10.20
맨먼스미신, 2020.12.19
프로젝트가 서쪽으로 간 까닭, 2021.03.03
The Art of Project Management, 2021.05.28
애자일 추정과 계획, 2021.08.27
The Nature of Software Development #1, 2021.11.05
The Nature of Software Development #2, 2022.01.07
The Nature of Software Development #3, 2022.07.30
더 퍼실리테이션, 2022.09.24
드라이브, 2022.11.19
선과 모터사이클 관리술, 2023.01.02
The Nature of Software Development #4, 2023.03.11
함께 자라기, 2023.11.02
비폭력 대화, 2024.01.16
성취예측모형, 2024.02.13
The Nature of Software Development #5, 2024.01.22
https://www.facebook.com/groups/336599826413924/permalink/25474303138883579/
[2024.05.24]
더닝 크루거 효과에 대해서는 기억을 하자. 처음 해당 영역을 아는 사람이 실제보다 많이 안다고 착각하는 현상을 의미한다.
퇴근길, 나를 객관화한다
저성과자는 남 탓하는 경향이 강합니다. 자기 능력이 부족하다는 사실을 인정하기 싫기 때문인데요. 남 탓으로 책임을 돌려 자아를 보호하려고 듭니다. 이 같은 인지 편향을 더닝 크루거 효과라고 하는데요. 진정한 능력자는 자신을 객관화 할 수 있는 사람입니다. 퇴근길 5분 정도는 오늘 내가 무엇을 잘했는지, 또 무엇을 잘 못했는지 한 번 정도 떠올리면서 일과를 마무리하는 것이 좋아요.
나무 위키
번아웃 처방전, 미라클 레터
인바이츠 생태계, 번아웃증후군
The Dunning-Kruger Effect: Climbing Mount Stupid, Navigating the Valley of Despair, and Ascending the Slope of Enlightenment
제대로 된 더닝 크루거 효과의 그래프를 확인하자
[24.02.21]
성취예측모형을 읽었다. 구입하기로 결정할만큼 내용이 탄탄하고 유익했다. 저자는 독일의 게르만 모형을 경험하고 우리나라도 좋은 인사조직 시스템을 구비하여 선진국 대열에 오르기를 갈망하는 마음으로 이 책을 썼다. 왜 직업적 무능함이 만연하는가, 왜 인사 실패가 반복되는가에 대한 질문으로 출발하여 탁월하고 바른 인사이트를 제시하고 있다. 결국 역량에 대한 이해가 부족하고 그럼으로 인해 그 역량 기반하여 한 인물에 대해 성취 가능성을 제대로 예측하는 시스템이 없다는 것이 문제이다. 서계차경, 서열화, 계급화, 차별화, 경쟁화라는 함정에 빠지고 환원주의라는 함정에 빠져 있다. 인재를 길러내는 지혜가 없다. 이 척박한 현실을 직시하고 다시금 일어날 준비를 해야 한다. 분권화, 자율성, 네트워크라는 3대 원칙에 기반하여 제대로된 구조, 시스템, 프로세스를 갖추고 리더쉽 충중한 인재를 분별하는 안목을 키워야 한다. 서계차경이 아닌 학습조직으로 탈바꿈해야 한다.
[24.02.13]
이 책을 빠르게 읽어 보았다. 비폭력 대화로 가장 유명한 책은 좀더 전에 읽었더랬다. 이 책을 통해서 다시금 비폭력 대화에 대해 생각해 볼 수 있는 시간이 있어 감사하다.
Joseph Campbell의 말이 언급된다. 놀이가 아닌 일은 살면서 하지 마라. 여기서 놀이는 내가 삶을 통해 자라는데 기여하는 어떤 것이라고 정의하고 있다.
비폭력 대화는 관찰, 느낌, 욕구, 부탁의 구조를 가지고 있다. 여기서 핵심은 욕구라고 할 수 있다. 욕구를 Needs라고 표현하니, 즉 필요라고 이해하니 좀 더 도움이 되었다.
내 삶의 욕구를 채워가는 일이 뭘까? 놀이 아닐까?
그렇다면, 비폭력 대화를 통해 나의 욕구에 천착하는 훈련이 많이 된다면 삶이 풍성해진다는 논리가 생기는 거 같습니다. 그렇다면 NVC는 참 알아둘만한 가치가 있어 보인다.
이제 "기린과 자칼이 함께 춤출 때"라는 제목의 책 한 권 더 읽으면서 기초 내용에 대한 훈련에 집중해볼 요량이다.
참 분노의 놀라운 목적 관련한 내용도 참 좋았다. 배고픔을 통해 우리가 먹을 것을 찾듯이 분노를 통해 우리가 확인해야 할 욕구를 찾을 수 있다는 것이다. 분노라는 감정을 선하게 활용하자.
[24.02.01]
나에게 가치란 무엇인가? 아니 질문을 다시 하겠다. 내가 원하시는 것은 무엇인가?
이 질문에 쉽게 답이 찾아지는가?
아마도 쉽게 답이 찾아지지 않을 것이다.
가치란 것이 소중할진데 쉽게 찾아질 리 만무하기 때문이다.
이리 저리 궁리를 해야 한다. 많은 생각이 필요하다. 많은 시간도 필요할 거 같다. 아웃라이어가 되려면 만 시간이 필요하다는 말처럼.
그래도 전략은 있다.
가치는 쉽게 찾아지지 않는다. 열심히 찾아야 찾을 수 있다는 전제는 까는 것이 좋을 듯 하다.
그럼 어떻게 열심히 찾는 것이 효과적인 전략이 될까?
그 목적지까지 잘 인도가 되어야겠지? 가치를 달성하는 주체가 적절한 모습으로 조직되어야겠지? 가치 달성 계획을 지속적으로 잘 수립해야겠지? 가치를 지속적으로 만들어 나가야겠지? 가치를 잘게 썰어 작고 완전한 요소들을 하나씩 달성해 나가는 것이 좋겠지? 만들어진 가치로 인해 뒤죽박죽 혼란이 생기면 안되게 깔끔하게 정리정돈 해야겠지?
이런 질문들에 대한 대답이 전략이 될 수 있겠다. 그런 면에서 존 레프리스의 가치를 향한 피라미드 그림은 통찰이 담겨 있다.
[24.01.30]
왜 애자일인가에 대한 대답으로 좋겠다 싶어 남겨 놓는다. anthropocentric이란 단어가 인상적이라 외워봤다.
Although the 12 agile principles were developed almost 2 decades ago, they are still relevant and will likely remain relevant for a long time to come.
That is because the key agile principles are anthropocentric. That is to say, they are based on human values and helps improve the quality of life in the workspace. Agile aims to improve the well-being of workers just as much as it aims to deliver high-quality products.
Better, smoother, more efficient development means happier, less stressed workers and more satisfied customers.
12가지 애자일 원칙은 거의 20년 전에 개발되었지만 여전히 유효하며 앞으로도 오랫동안 적용될 가능성이 높습니다.
그 이유는 애자일의 핵심 원칙이 인간 중심적이기 때문입니다. 즉, 인간의 가치에 기반을 두고 있으며 업무 공간에서 삶의 질을 개선하는 데 도움이 됩니다. 애자일은 고품질의 제품을 제공하는 것만큼이나 근로자의 복지를 개선하는 것을 목표로 합니다.
더 좋고, 더 원활하고, 더 효율적인 개발은 더 행복하고, 스트레스를 덜 받는 직원과 더 만족스러운 고객을 의미합니다.
[24.01.17]
오늘은 저널링 할 것이 두 개나 있는 행복한 날이다.
몰입에 대한 것이다. 인간이 삶의 목적을 알게 되면 그것이 삶의 동기가 된다. 그렇다고 한다면 그 사람의 삶은 몰입으로 충만할 수 있다. 왜 사는지, 나의 목적지가 어디인지 안다고 한다면 그 사람의 삶 매순간은 의미가 있을 수 있기 때문이다. 그 목적을 향하여 하는 모험이 될 수 있기 때문이다. 매순간 자체가 스스로 목적을 가질 수 있기 때문이다.
이런 것을 표현하는 철학적 용어가 오토텔릭이다. autotelic, 자기목적적이라는 의미다. 이런 자기목적적인 것을 하게 되면 몰입에 들어가기 용이하다. 아니 몰입할 수밖에 없겠다. FLOW에 기쁜 마음으로 자신을 맡겨 보지 않겠는가.
https://blog.naver.com/wind0631/150100470935
[24.01.17]
ISP, 즉 정보화에 대한 전략을 수립하는 것에 대해 정리해 본다.
ISP가 생겨 난 배경이 뭘까? 정보화 전에는 무엇이었는지를 살펴보는게 순서일듯 하다. 전산화였다. 전산화는 기술 영역의 이야기다. 그럼 정보화는? 경영 영역이 이야기다. 기술에서 경영으로 시선이 이동했다는 이야기다.
ISP가 뭐다라는 얘기는 제일 첫 문장에서 언급했지만 다시금 리마인드를 해보자. 최적의 정보화를 추진해 나가기 위한 중장기 전략을 계획하는 것, 즉 중장기 IT 마스터 플랜을 수립하는 것이라고 통상 정의한다.
왜 필요한가? 배경에서 언급했듯이 기술에서 경영으로 세상 사람들의 시선과 관심이 이동해서 필요하다고 설명할 수 있다. 추가적으로 전사 구성원의 정보화에 대한 이해 및 마인드 향상을 위해서 필요하다고도 설명할 수 있다.
ISP를 하고 나서 기대가 되는 점은 전산 팀장으로서의 지위, 즉 경영을 지원하는 지위의 낮음에서 CIO, 정보기획, 정보전략이라는 타이틀로 경영에 연계된 정보를 제공하는 지위로의 상승을 가져올 있다.
이제 ISP를 어떻게 진행하는지에 대해 살펴볼 차례이다. 분석이 필요하다. 내가 가야할 방향을 수립하기 위해서는 외부환경, 내부환경, 그리고 개선하고자 하는 실제 영역의 수준을 점검할 필요가 있다. 이것이 환경 분석이라고 하면 업무 분석도 필요하다. 업무 체계, 업무 양식, 사용 정보 등이 필요하고 정보시스템 현황 분석이 필요하다. 그리고 하드웨어, 소프트웨어, 네트워크 등 IT 인프라에 대한 현황 분석이 필요하겠다.
이렇게 분석한 다음에는 개선 모형 설계를 위해 구조적인 접근이 필요하다. 업무 관점의 정보 구조, 시스템 관리 관점의 정보 관리 구조, IT 인프라 관점의 정보 기반 구조, 이렇게 세 가지 영역의 정보 측면의 구조에서 조망하며 개선 과제를 도출하자. 이런 다음 세부 사항을 개념 모델에 포함시키면서 하위 설계를 진행하며 실행계획을 도출하자.
[24.01.17]
비폭력대화라는 책을 빌렸는데 아직 읽기 시작을 못하고 있다. 다만 전에 적은 메모를 보니 유익한 관점이나 인사이트가 많아 보인다. 어여 읽기 시작해야겠다는 생각을 해보며~
폭력적인 대화에는 판단하기, 비교하기, 책임회피, 강요하기 정도가 있다. 내가 대화할 때 누구를 판단하거나 비교하진 않았는지, 그리고 책임을 회피하는 발언을 하지는 않았는지, 하급자라고 해서 강요하기식 어투를 장전하지는 않았는지 생각해본다.
내가 대화하는 상대방은 말 그대로 상대이지 대상이 아니다. 상대와 대상, 글자 순서만 바뀐 말이 아니라 아주 중요한 포인트이니 항상 기억하자.
비폭력 대화는 관찰, 느낌, 욕구, 부탁으로 구성된다. 먼저 상대방의 대화를 관찰하고 그 느낌을 생각하고 그로 인해 발생하는 내 안의 욕구를 식별한 다음에 필요한 부탁을 하는 방식의 대화를 의미한다.
[24.01.16]
프로젝트 관리라고 하는 나의 일, 이 일을 하면서 즐겁고 보람되게 하고 싶다.
프로젝트 관리 관련된 고전을 읽어보리라 마음 먹은 후 3년 넘게 이 사이트에 애정을 기울이고 있다. 내 일에 대해서 얘기할 거리들이 쌓아져 가니 좋다.
내 인생책의 저자 론 제프리스가 얘기한 것처럼 업에 전문성을 기르기 위해 많이 생각하리라.
김창준이 그의 책에서 언급한 것처럼 전문가가 되기 위해 의도적 수련을 해야겠다는 다짐을 새해 벽두에 해본다.
애자일의 가치와 열두가지 원칙을 키위드 중심으로 다시금 생각하고 묵상해 보았다. 이 열두가지가 내가 일을 함에 있어 항상 마음 한구석에 각인되어 항상 활용될 수 있기를 바란다.
[24.01.02]
지금 보니 reflection과 retrospectives에 대해 그닥 구별을 안 하고 생각했던거 같다.
요즘 복습에 대해 중요성을 깨닫고 있는데 Reflection On Action이든 더 나아가 Reflection in Action이든 성찰을 습관화 해야겠다. 이것이 의도적 수련으로 나아가는 길이고, 전문가가 되는 길이기 때문이다.
Agile reflection is a practice within Agile methodologies that involves regularly reviewing and assessing the team's processes, performance, and outcomes to identify areas for improvement. It is a crucial element of the Agile mindset, emphasizing continuous learning and adaptation. Reflection typically occurs at the end of each iteration or sprint, allowing teams to gather insights and make adjustments for the next iteration. Here are key aspects of Agile reflection:
Retrospectives: Agile teams often conduct retrospectives at the end of each iteration or sprint. During retrospectives, team members reflect on what went well, what didn't go well, and what improvements can be made. This structured reflection helps the team identify actions for improvement.
Continuous Improvement: The primary goal of Agile reflection is to foster a culture of continuous improvement. Teams should be encouraged to experiment with new practices and ideas and to learn from both successes and failures. This iterative process enables teams to refine their approach over time.
Open Communication: Agile reflection relies on open and honest communication among team members. Everyone should feel comfortable sharing their observations, concerns, and suggestions. Open dialogue fosters a collaborative environment where issues can be addressed and improvements can be implemented.
Actionable Insights: Reflection is not just about discussing problems but also about generating actionable insights. Teams should focus on identifying specific actions they can take to address challenges and enhance their processes. These actions can then be implemented in the next iteration.
Feedback Loops: Agile reflection is part of a larger feedback loop within the Agile framework. Teams receive feedback from stakeholders, customers, and their own experiences, and they use this feedback to make informed decisions about their processes and priorities.
Adaptability: The ability to adapt is a core principle of Agile methodologies. Reflection allows teams to adapt to changing circumstances, requirements, and project dynamics. Teams can adjust their strategies based on the insights gained during reflection sessions.
Celebrating Successes: It's important to acknowledge and celebrate successes during reflection. Recognizing achievements motivates the team and reinforces positive behaviors. Celebrating successes is as crucial as addressing areas for improvement.
In summary, Agile reflection is a continuous, collaborative process that empowers teams to learn from their experiences and make incremental improvements. By regularly assessing their performance and adapting accordingly, Agile teams can deliver better outcomes and respond effectively to changing project demands.
[23.12.21]
의도적 수련 관련된 글, 전문가 만들기라는 글을 봤고, 중요하게 생각되는 부분을 발췌하였다.
전문가는 결국 태어나는 것이 아니라 오랜 기간의 의도적 수련으로 만들어지는 것이다. 끈기와 담력이 그래서 필요하다.
The journey to elite performance is not for the impatient or the faint of heart. It takes at least a decade and requires the guidance of an expert teacher to provide tough, often painful feedback. It also demands would-be experts to develop their “inner coach” and eventually drive their own progress.
It will take you at least a decade to achieve expertise, and you will need to invest that time wisely, by engaging in “deliberate” practice—practice that focuses on tasks beyond your current level of competence and comfort. You will need a well-informed coach not only to guide you through deliberate practice but also to help you learn how to coach yourself.
How, then, can you tell when you’re dealing with a genuine expert? Real expertise must pass three tests. First, it must lead to performance that is consistently superior to that of the expert’s peers. Second, real expertise produces concrete results. Brain surgeons, for example, not only must be skillful with their scalpels but also must have successful outcomes with their patients. A chess player must be able to win matches in tournaments. Finally, true expertise can be replicated and measured in the lab. As the British scientist Lord Kelvin stated, “If you can not measure it, you can not improve it.”
Things to Look Out for When Judging Expertise: Individual accounts of expertise are often unreliable. Anecdotes, selective recall, and one-off events all can present ...
They continually work to eliminate their weaknesses.
Deliberate practice involves two kinds of learning: improving the skills you already have and extending the reach and range of your skills.
Moving outside your traditional comfort zone of achievement requires substantial motivation and sacrifice, but it’s a necessary discipline. As the golf champion Sam Snead once put it, “It is only human nature to want to practice what you can already do well, since it’s a hell of a lot less work and a hell of a lot more fun.” Only when you can see that deliberate practice is the most effective means to the desired end—becoming the best in your field—will you commit to excellence. Snead, who died in 2002, held the record for winning the most PGA Tour events and was famous for having one of the most beautiful swings in the sport. Deliberate practice was a key to his success. “Practice puts brains in your muscles,” he said.
Before practice, opportunity, and luck can combine to create expertise, the would-be expert needs to demythologize the achievement of top-level performance, because the notion that genius is born, not made, is deeply ingrained. It’s perhaps most perfectly exemplified in the person of Wolfgang Amadeus Mozart, who is typically presented as a child prodigy with exceptional innate musical genius. Nobody questions that Mozart’s achievements were extraordinary compared with those of his contemporaries. What’s often forgotten, however, is that his development was equally exceptional for his time. His musical tutelage started before he was four years old, and his father, also a skilled composer, was a famous music teacher and had written one of the first books on violin instruction. Like other world-class performers, Mozart was not born an expert—he became one.
출처: https://hbr.org/2007/07/the-making-of-an-expert
참고: 레오폴트 모차르트, 아들에게 올인 한 아버지의 명암, https://www.joongang.co.kr/article/25149895
[23.12.07]
함께 자라기 책 반납 전에 자라기 부분 대충 읽어보며 정리하기
. 실력 있는 사람이 되려면 의도적 수련(deliberate practice) 을 하라
- anders ericsson
- https://hbr.org/2007/07/the-making-of-an-expert
. 학습 프레임: 자리기, 실행 프레임: 잘하기
- https://paradise7.tistory.com/47
. 복리
- 학습한 내용을 체화해서 자신의 역량을 복리가 되게 하라
- 1%씩 복리인 경우 70일에 2배, 1년이면 38배
. 함께 자라기(애자일로 가는 길) 정리
- https://zzsza.github.io/etc/2018/12/16/agile-together/
. 자연주의 의사결정론
- naturalistic decision making(NDM)
- https://www.kunews.ac.kr/news/articleView.html?idxno=22110
- https://www.logosian.com/news/articleView.html?idxno=635
- https://emcrit.org/wp-content/uploads/2015/03/Conditions-for-Intuitive-Expertise.pdf
[23-11-08]
[함께 자라기 독후감]
김창준은 애자일을 함께 자라기로 설명했다.
자라기는 성장을, 함께는 협력을 의미한다.
애자일에도 이런 성장과 협력이 많이 담겨 있다고 본 것이다.
이 책 중 아래 내용이 인상적이었는데, and와 or에 대한 내용이다. 좋은 것에 대해서는 or 로 해서 확률을 높이고, 나쁜 것에 대해서는 and 조건을 만들어 일어나는 확률을 낮춘다.
두번의 선택
1-1 속이 안 보이는 주머니 속에 빨간 돌 5개, 흰 돌 5개가 들어 있다. 임의로 하나를 꺼냈는데 빨간 돌이면 성공
1-2 속이 안 보이는 주머니 속에 빨간 돌 9개, 흰 돌 1개가 들어 있다. 꺼낸 돌을 다시 주머니에 넣으면서 총 7번 돌을 꺼냈는데 모두 빨간 돌이면 성공
2-1 속이 안 보이는 주머니 속에 빨간 돌 5개, 흰 돌 5개가 들어 있다. 임의로 하나를 꺼냈는데 빨간 돌이면 성공
2-2 속이 안 보이는 주머니 속에 빨간 돌 1개, 흰 돌 9개가 들어 있다. 꺼낸 돌을 다시 주머니에 넣으면서 총 7번 돌을 꺼냈는데 그중 빨간 돌이 한번이라도 나오면 성공
[23-11-02]
크리스토퍼 알렉산더의 책에 관심이 간다. 그의 인생과 책을 접해보고 싶고 일단 the nature of order 4권을 읽어 보는게 내 버킷 리스트에 들어왔다.
일단 이 영상부터 보고 있다. 아쉽게도 그는 작년에 사망했다
https://www.youtube.com/watch?v=xmlo0Lva5AU
[23-10-23]
안녕하세요, 직업의 현장에서 PM 역할을 주로 하고 있는 김민재라고 합니다.
온라인 독서 토론회 공지입니다. (영어 원서로 진행함)
책은 "The Nature of Software Development" 입니다. (교재 확보 방법은 카카오톡 주시면 알려 드림)
책 링크: https://www.amazon.com/Nature-Software-Development-Simple-Valuable/dp/1941222374
이 책은 소프트웨어 개발에 있어 바른 길이 무엇인지 생각해 볼 수 있는 시간을 갖게 해줍니다.
애자일을 정확하고 깊이 있게 이해하고자 한다면 함께 읽어 나가며 토론하시길 권유 드립니다.
요일과 시간은 매주 토요일 오후 9시 30분부터 시작하여 1시간 30분 정도입니다.
부담없는 시간이지만 매우 유익한 시간이 되실 겁니다.
저 포함 2명이 되면 6/3(토)부터 시작합니다.
모임 횟수는 상견례 포함 23번입니다. (한주에 한과씩 천천히, 면밀히 진도 나감)
첫번째 모임은 인사하고 각자의 기대를 나누는 시간으로 갖습니다.
본격적인 책 나눔은 두번째 모임부터입니다.
참여 의사는 2023년 5/28(일)까지 카카오톡에서 conkmj 제 ID로 검색 후 톡으로 남겨 주세요.
Seven Core Ideas for Effective Software Development ~~Ron Jeffries
From deciding what we want, down to programming it and getting it right, software development is very complex. And yet we do best when we can find simplicity in how we work.
In The Nature of Software Development, I have tried to focus relentlessly on the simple core of ideas that make up effective software development. You and I both know that it’s not that simple, and that things will get complicated. But if we can keep these ideas in mind, they’ll keep us grounded and help us build something of value.
Here are seven core ideas for effective software development:
Begin and end with a focus on value.
When we build a software product, we have some value in mind. Not just the money we’ll make, but what we really want from the product, whether that’s measured in laughs or lives. We’ll think about what we value, and how to get a sense of what’s more important and what’s not so important at all.
Guide the product in terms of small slices of working software.
We create teams who are responsible for creating value. We make sure they understand what’s needed and how much time is available. We guide them by observing what they actually build, not by examining schedules and promises. We build small slices of value, which we call “features.”
Organize around the work to be done, with people who can do it.
We organize our teams around the features we need, with teams who can build everything needed. The focus on features lets us plan and build value rapidly. Organizing with good people and helping them build their skills gets the work done efficiently and well.
Plan in terms of features.
With teams in place and features in mind, we steer our projects by selecting which features to do next and which ones to defer. We produce highest value first, throughout the effort.
Build in terms of features.
Naturally, any product requires architecture and infrastructure. We build based on features, including the architecture and infrastructure we need as we go.
Slice features thinly.
We slice each desired capability down to the smallest possible value-bearing size. We build a capable product as early as possible, and then grow it and enhance it as the deadline approaches. Building highest value first, we are always ready to ship the best possible product.
Build quality in every day.
Throughout the effort, we apply all the necessary practices to ensure that we always have a good design, and that we are always as close to defect-free as possible. We build value continuously, sustainably, indefinitely.
애자일 원칙의 첫번째는 소프트웨어의 조기 및 지속적인 제공을 통한 고객 만족이다.
두번째는 고객 만족이 구체적으로 어떤건지를 설명하고 있다. 요구사항이 변경되더라도 환영하고 활용하여 고객의 경쟁력을 제고하는 것이라고 말한다.
이제는 소프트웨어를 어떻게 제공하는 것이 좋은지에 대한 추가적인 설명을 세번째 원칙에서 언급하고 있다. 즉 자주 제공하고 가능한 짧은 주기로 제공하여 보다 빠른 피드백을 통해 고객에 제공되는 가치를 극대화할 수 있도록 하라 말한다.
이제는 이렇게 가치 있는 소프트웨어를 빠르게 자주 제공하고 요구사항 변경을 수용하여 고객 만족을 극대화하기 위해 사람들은 무엇을 해야 하는지 네번째 원칙에서 설명하고 있다. 우선 비즈니스 요구사항을 알고 있는 현업과 그 요구사항을 받아 소프트웨어를 만들어야 하는 개발자 간에 매일 같이 협업을 해야 한다고 말한다.
그럼 어떻게? 다섯번째로 모든 사람이 목적 의식을 통해 동기를 탑재하고 보다 일을 잘 할 수 있도록 필요한 환경 및 지원을 제공하고 신뢰 가운데 목적하는 일을 해낼 수 있도록 하라 말한다.
다시 어떻게? 소통을 통해, 즉 여섯번째로 얼굴을 보고 하는 대화를 통해 의사소통의 질을 최대한 높이라 말한다.
여기까지로 애자일 12원칙의 반환점을 돌았다.
일곱번째,, 7월달^^.. 그렇다면 애자일에서 일의 진척은 무엇으로 측정하는 가에 대해 언급한다. 즉 일의 진척은 가치의 누적을 얘기할테고 결국 일의 진척은 가치가 담기는 것을 살펴봐야 하는데 그 가치가 담겨야 할 대상이 작동하는 소프트웨어이다. 즉 가장 중요하게 가치있게 여겨야 하는 것은 다름 아닌 소프트웨어이다.
그렇다면 가장 바람직한 진척의 모습은 어떤가? 계속 속도가 빨라지는 건가? 그렇게 되면 좋겠으나 현실적으로 그렇게 될 수 없다. 그래서 우리가 구해야 하는 것을 여덟번째 언급하고 있다. 일정한 속도다. 이것이 곧 부지런함이다. 부지런함의 반대가 경솔함, 서두름인 경우도 있다. 무리하게 속도를 높이지 않는다. 그것이 지혜로운 프로세스다.
왜 속도가 계속 올라갈 수 없는가? 왜 최선이 일정한 속도인가? 아홉번째에서 알려 주고 있다. 할 일이 있기 때문이다. 품질을 보살펴야 하는 것이 그것이다. 품질을 보살핀다는 것의 구체적인 양상은 기술적 탁월성과 좋은 설계에 관심을 갖는 것이다.
이제 열번째다. 자릿수가 바뀌었으니 다시금 우리가 집중하는 것이 무엇인지 환기할 필요성이 있다. 바로 우리가 비용을 들여 달성하고자 하는 원하는 것인 가치이다. 가치를 높이는 일이다. 가치를 높이려면 어떻게 해야 하는가? 취사선택을 해야 한다. 이때 사용하는 본질적인 도구가 단순성의 원칙이다. 복잡한 것은 별로 가치를 가지고 있지 않은 것이 섞여 있을 때 만들어진다. 다시금 가치를 기준으로 솎아 내면 단순해진다. 그러니 단순함을 달성하는 일이 쉽지 않다. 가장 어렵다.
결국 높은 가치를 달성해야 하는 걸로 우리가 해야 할 일이 귀결된다. 그럼 어떻게? 열한번째에서 그 비결을 알려주고 있다. 사람들로 하여금 자율적으로 조직할 수 있도록 해줘야 한다. 그것만이 가장 효과적으로 주어진 요구사항을 충족하는 최선의 아키텍처와 설계를 찾아낼 수 있는 방법이기 때문이다.
이제 다 된건가? 고객의 가치, 비즈니스 가치가 중요하고, 그 가치를 높이기 위해 관계된 사람들이 책임과 권한을 바르게 행사하는 팀다운 팀으로 구성되었다. 끝? 아직 끝나지 않았다. 열두번째 지혜의 말이 제시된다. 반복이다. 그간의 프로세스를 되짚어 보고 세밀하게(tune) 혹은 다소 큰 틀에서(adjust) 개선 포인트를 발견하고 적용하는 숙달의 과정이다. 유능으로 가는 길은 오직 반복뿐이다.
[23.10.04]
첫번째 애자일의 원칙은,
1. Early and continuous delivery of valuable software
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
어디에 방점이 찍히는가? 핵심 키워드를 뭐로 고를 것인가?
고객 만족? 가치있는 소프트웨어의 이르고 지속적인 제공?
둘다 무게감이 있어 쉽지는 않은 선택이나 원인이 되는 소프트웨어의 이르고 지속적인 제공을 나라면 고르겠다.
요즘과 같이 비즈니스 가속화가 중요해지는 시점에 이 애자일의 원칙은 곱씹을 충분한 내용이라 할 수 있다.
이 원칙에서 떠오르는 단어가 있다면 피드백이다.
고객과 개발자 간에 소통을 무엇으로 하는가? 가치있는 소프트웨어로 한다. 가치있는 소프트웨어를 같이 보면서 소통, 즉 피드백을 한다. 그렇기 때문에 MVP와 같이 기능을 하는 소프트웨어를 빠르게 제공하여 비즈니스를 아는 사용자의 피드백을 받을 때 똘똘한 기능을 탑재한 목적에 맞는 소프트웨어의 탄생을 기대할 수 있게 된다.
애자일 선언에는 원칙 말고 가치도 있다.
개인, 상호작용, 작동하는 소프트웨어, 고객과의 협업, 변화에 대응이 말하고 있는 가치인데,, 첫번째 원칙은 이 가치를 전반적으로 다 터치하고 있다.
2. Embrace change
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
두번째 애자일 원칙은 요구사항을 변경하는 것을 받아들여라이다. 개발 프로젝트 후반부라 할지라도.. 애자일 프로세스는 고객의 경쟁력을 위해 변경을 이용한다. 끌어 안을 뿐 아니라 장려한다. 사람도 바뀌고, 시간도 바뀌고, 시장도 바뀐다. 이런 상황에서 변경을 해결해야 할, 피해야 할 문제로 바라보는 것은 맞지 않다. 문제가 아닌 기회로 인식하여 이용하고 활용하라는 소리다.
harness라는 단어를 유심히 보자. 말이나 개에 채워 주는 장비.. 말의 경우는 마구라고 한다. 통제하거나 이용하기 위한 장비이다.
물론 모든 변경을 환영하라는 이야기는 아니다.
애자일의 3, 4, 5, 6번째... 네가지 원칙을 한꺼번에 살펴본다.
잦은 딜리버리, 협력, 자율과 동기, 보다 나은 의사소통의 원칙들.. 암기하자. 가슴에 새기자.
3. Frequent delivery
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
세번째는 딜리버리를 자주 하라는 것이다. 첫번째에 이른 딜러버리를 얘기하고 있고 이 원칙이 겹치는 부분이 있어 보이긴 하지만 이 원칙을 한번 더 별도로 언급하는 이유는 그 의미를 다시 떠올려야 하기 때문이다. 짧은 주기로 딜리버리를 하게 되면 무엇이 좋은가? 에러가 날 확률이 낮아진다. 그리고 고객의 피드백을 받을 기회가 많아져 프로젝트가 탈선할 가능성을 원천봉쇄한다. 애자일의 원칙 중 핵심이라 해도 무방한 것 중 하나가 이것으로 생각되지 않는가.
4. Cooperation
Business people and developers must work together daily throughout the project.
네번째는 협력의 원칙이다. 전에는 분석가가 있어 비즈니스 요구를 해석해서 개발 계획을 수립했고, 프로젝트 관리자가 고객과 개발팀 간 중재를 하는 방식이었다면 이제는 현업과 개발자가 프로젝트 내내 매일 같이 일하는 환경이 중요하다. 왜냐하면 이로 인해 의사소통과 협력이 자연스럽게 되고 서로의 상황을 보다 더 이해할 수 있다.
5. Autonomy and motivation
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
다섯번째는 자치와 동기에 대한 원칙이다. 마이크로 관리는 지양해야 한다. 개발자는 자기 일에 자부심이 강하다. 지나친 관여는 무익하다. 성공에 대한 동기부여가 되어 있지 않다면 당연히 실패로 가게 되지 않겠는가. 관리자는 개발자와 건강한 관계를 유지하고 개발자가 일과 삶의 균형을 가질수 있도록 신경 써야 한다. 개발자에게 성공을 향한 동기를 유발하라, 그러면 보다 자연스러운 프로젝트 개발 공정이 펼쳐질 것이다.
6. Better communication
The most efficient and effective method of information to and within a development is face-to-face conversation.
여섯번째는 보다 나은 의사소통에 대한 원칙이다. 팀즈 등 소통의 도구가 있으나 대면 미팅의 효과를 초월할 수는 없다. 해석 과정에서 정보를 잃게 되고, 이메일은 수신함에 묻혀 잘 전달되지 못한다.
애자일의 12개 원칙에 대해 마무리를 해 볼까 한다.
7. Working software
Working software is the primary measure of progress.
일곱번째 원칙은 작동하는 소프트웨어에 관한 것이다. 작동하는 소프트웨어로 진척의 정도를 가늠하라는 것이다. 여기서 소프트웨어를 제품으로 치환하면 좀 더 명확하게 그 의미를 알 수 있다. 그렇다면 어떤 잘못을 저지르지 말라는 것인가? 요구사항 분석 문서, 모델, 목업(mock-ups)은 쓸모는 있을 수 있으나 그 정보가 작동하는 제품으로 전환되지 못하면 대단히 유용하다고 볼 수 없다는 의미이다. 문서 작업에 집중하기보다 제품을 만들어내는 것을 극대화해야 한다. 완성되지 못한 제품은 재고일 뿐이다. 재고는 가치를 제공하지 못하는 비용일 뿐이다.
8. Stable work environments
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
여덟번째는 안정적인 작업 환경에 대한 것이다. 애자일 방법을 정확히 구현하였다면 납기를 맞추기 위해 야근을 밥먹듯 할 필요가 없다. 이해관계자와 고객과 개발자가 긴밀한 한팀으로 행동하는 것을 요구하기 때문이다. 한 팀의 구성원들이 정보를 공유하게 되면 정확한 예측, 예산, 타임라인을 만들어내기가 무척 쉬워진다. 고객은 개발자에게 무엇이 필요한지 얘기할 수 있고, 이해관계자는 변경이 개발에 어떤 영향을 주는지 이해하게 되며 팀은 어떻게 진척이 되는지에 관하여 정보가 제공된 상태에서 결정이 가능해진다. 누구도 개발 과정에 대해 모르지 않으며 예상치 못한 개발로 인해 놀라게 되는 상황도 없다. 이로 인해 스트레스가 줄어들고 번 아웃되는 일이 없게 된다.
9. Quality assurance
Continuous attention to technical excellence and good design enhances agility.
아홉번째 원칙은 품질 보증에 관한 것이다. 품질보다는 속도와 양에 우선순위를 두는 경우가 있는데, 이렇듯 품질에 오랫동안 관심을 갖지 않게 되면 제품을 고객의 요구에 민첩하게 대응하도록 할 수 없게 된다.
10. Simplicity
Simplicity—the art of maximizing the amount of work not done—is essential.
열번째 원칙인 단순성은 일곱번째 작동하는 소프트웨어와 비슷한 구석이 있다. 다만 작동하는 소프트웨어는 불필요한 문서 작업을 경계하는 것이라면 이 원칙은 프로세스에 관한 부분이다. 불필요하게 복잡하거나 도움이 안 되는 프로세스는 필요없다. 그리고 자동화 할 것이 있다면 그렇게 해서 단순성을 제고해야 하고 과거 프로젝트의 기존 자산이 있다면 적극 활용해야 한다. 개선의 여지는 항상 있고 그걸 찾으려고 해야 한다. 이 원칙은 계속되는 노력을 기울여야 달성할 수 있다.
11. Self-organizing teams
The best architectures, requirements, and designs emerge from self-organizing teams.
이 열한번째 스스로 조직하는 팀 원칙은 다섯번째인 자율성과 동기와 비슷해 보인다. 과거의 개발팀은 기능별로 구획화 되었다면 애자일에서 얘기하는 개발팀은 여러 개인이 하나의 유닛을 구성해서 자율적으로 품질 보증을 해 나가면서 개발한다. 이로써 상위의 관리자가 세부 관리를 할 필요가 없게 된다.
12. Reflection and adjustment
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
마지막 열 두번째 원칙은 애자일 방법론이 비즈니스 전략과 잘 어우러지는지에 대한 PoC 개념의 원칙이다. 회고와 조정이 되려면 의사소통, 피드백, 애자일 방법에 대한 이해, 실수로부터 혁신과 배움을 도출하려는 공감대가 필요하다. 팀이 완벽할 수는 없다. 다만 개발을 개선하기 위해 사전적 혹은 사후적 측정을 통해 성숙하고 정보에 근거하며 책임감 있는 팀이 되어야 한다.
이제 애자일의 원칙을 전반적으로 들여다 보았으니 암송하고 각각을 묵상해 나아가라.
차미리사 여사가 말씀하신 것처럼 자기것으로 체화하려면 끊임없는 묵상만이 유일한 길이다.
("살되, 네 생명을 살아라. 생각하되, 네 생각으로 하여라. 알되, 네가 깨달아 알아라.")
장담컨데, 이 열 두가지 원칙을 제대로 알고 적용할 수 있다면,
그로 인해 애자일이 지향하는 가치가 무엇인지 깨달을 수 있다면,
그 사람은 애자일 전문가이고, 뭘 해도 잘 할 수 있다고 믿는다.
알지 않은가.
해 아래 새것은 없다. 몰라서 못 하는게 아니다. 제대로 알려고 하지 않고 성숙의 길에는 그만큼의 댓가가 필요한데 그걸 지불할 생각이 없는 것이다.
1. 가치 있는 소프트웨어를 이르고 지속적으로 배달 하라
2. 변경을 끌어 안아라
3. 자주 배달 하라
4. 협력하라
5. 자율과 동기
6. 보다 나은 의사소통
7. 작동하는 소프트웨어
8. 안정적인 근무 환경
9. 품질 보증
10. 단순성
11. 스스로 조직하는 팀
12. 회고와 조정
이게 다다.
출처: https://www.knowledgetrain.co.uk/.../agi.../agile-principles
[2023.08.11, 올해 초반에 해서 페북에 올렸던 것을 오늘 정리해서 옮겨 놓음]
애자일의 가치 네가지
애자일의 가치는 네가지인데.. 두 그룹의 사람과 두 그룹의 사람 사이에 위치한 소프트웨어,, 그리고 이 사람들과 소프트웨어를 둘러싼 변화관리에 대해 얘기를 하고 있다.
두 그룹의 사람들 중 먼저 개발자 관련한 가치..
소프트웨어 개발의 업은 그 복잡도가 높다. 그래서 일의 프로세싱이 개발자의 머리에서 대부분 일어난다. 따라서 소프트웨어 개발의 성패 혹은 품질에 대한 담보는 동기가 부여된 능력 있고 협업 및 책임감 높은 개개인의 역량이 중요하고 그들 간의 상호작용이 중요하다는 소리다. 물론 프로세스 측면과 도구 측면도 중요하지만 말이다. 이게 애자일 가치의 첫번째 덕목이다.
두번째는 업의 중심에 있는 소프트웨어에 대한 얘기다. 네가지 가치 중 가장 중요하다 할 수 있다. 소프트웨어 개발 일에서 가장 중요한 가치가 담기는 것은 뭘까? 문서일까? 소프트웨어 자치일까? 이것에 대한 주장이다. 소프트웨어 개발에 있어 가장 중요한 산출물이 소프트웨어이기 때문에 일의 진척에 대한 판단을 소프트웨어로 해야 하고 일의 모든 중심은 작동하는 소프트웨어 관점에서 판단되고 얘기되어야 한다는 소리다.
세번째는 소프트웨어 담길 피처, 기능의 발원지라 할 수 있는 고객 혹은 사용자에 대한 내용이다. 두 종류의 사람 그룹을 가치에서 언급하고 있다 했는데 개발자 그룹에 이은 두번째 종류의 그룹이 업무 진영의 사람, 즉 소프트웨어를 사용하는 사용자 그룹이다.
이들과는 계약도 하지만 계약이 중요한 것이 아니라 계약 성사 후 소프트웨어를 만들어 나감에 있어서 지속적인 협업이 중요하다는 소리다. 단순한 일이 아니기 때문에 개발하는 주체인 개발자도 중요하지만 개발자가 해야 할 일을 정해 주는 사용자의 지속적인 관심과 참여도 중요하다는 것이고, 이 가치를 상실하면 소프트웨어 개발 프로젝트는 실패한다는 소리다.
마지막 네번째 가치는 이 사람들과 소프트웨어 사이에서 일어나는 일이 모든 일이 마찬가지이겠지만 변화에 대한 관점이 중요하다는 소리이다. 변화를 인정하느냐, 난 모르겠고 처음에 결정된 계획을 사수해야 하느냐의 문제다. 소프트웨어 개발에 담길 피처, 기능에 대한 식별 작업의 난해함 때문이겠는데 소프트웨어 개발에 있어 처음부터 완벽한 계획이 나올 수 없다는 진실을 깨달아야 한다. 따라서 지속적인 계획의 수정 및 조정이 필요하다는 소리다.
이렇게 가치에 대한 나의 생각을 "소리다" 네번으로 정리해 보았다.
[2023.08.09]
애자일 선언에 있는 가치와 원칙은 암기를 해야 할 충분한 이유가 있는 소중한 개념이다.
그래서 오늘부터 가치 4개와 원칙 12개를 암기하면서 관련 내용이 있으면 적어 볼까 한다.
[2023.05.04]
두명이서 주거니 받거니,, 2명도 나름 괜찮은 숫자임을 알게 된~
2023.03.11 ~ 2023.05.13
2023.1.2 ~ 2023.3.4
2022.07.30 ~08.27
#4
이 책으로 온라인 독서 토론회를 두번째 진행하고 있고 어제(22년 1월 14일) 본격적인 첫 나눔을 가졌다.
1장은 론의 소프트웨어 개발 방법론의 개요에 해당하는 장으로서 한 페이지에 엑기스만 잘 담아 놓고 있다.
론이 산을 비유로 책에서 얘기하고 있어 위 이미지는 피라미드라고 하기 보다는 산으로 생각하고 싶다.
아뭏든 론의 방법론의 시작이자 핵심은 가치이다. 소프트웨어의 가치이므로 소프트웨어가 담고 있는 features가 가치이다.
어제 나눔을 하기 전에 1장을 정리한 내용을 이 쪽에 옮겨 본다.
--
가치를 찾아서 떠나자. 가치에서 시작하고 가치가 이 탐구의 핵심이다. 이렇게 우리가 원하는 것인 가치를 찾기 위해, 성취하기 위한 방법론이 들여다 보면 6가지 항목을 기반으로 하고 있다. 그 6가지 항목을 한문장으로 표현하면 "작은 조각으로 품질에 초점을 맞춘 상태에서 가이드, 조직하기, 계획하기, 구축하기를 하라" 이다.
이제는 각 기반이 되는 6가지 항목 각각을 간단하게 핵심만 설명하고 있는데, 위 그림의 계층별 두가지 키워드로 기억하면 좋을 것이다.
basement#1, 가이드 영역: 목표로 하는 가치가 있는데 그것을 실현해 내려면 그것을 만드는 팀이 있어야 하고 그 팀에게 뭘 언제까지 만들어야 하는지를 알려줘야 하는데 무엇을 통해 가이드를 하는게 효과적인가? 우리가 만들고 있는 소프트웨어를 관찰하며 그들을 가이드하라.
basement#2 조직하기 영역: 팀을 구성할 때 기능 개념을 활용하면 가장 빠르게 계획 및 구축을 할 수 있다. 좋은 사람으로 구성하고 그들이 기술을 쌓아 나갈 수 있도록 도우라.
basement#3 계획하기 영역: 필요로 하는 기능의 구현 순서를 선택하는 일이다.
basement#4 구축하기 영역: 기능 단위로 구축하라, 일찍 그리고 자주 진척시키는 방법을 알게 될 것이다.
basement#5 얇게 자르기 영역: 가치를 담고 있되 가장 작게 기능을 자르면 일찍 소프트웨어를 전달하는게 가능해진다. 그런 다음 납기에 맞춰 고도화 해 나가라.
basement#6 품질 영역: 좋은 설계와 무결함이 목표인데 그렇게 함으로써 끊임없이(continuously), 속도를 유지하며(sustainably), 무한히 가치를 구축할 수 있게 된다.
Agi #3
애자일 선언과 원칙에 대해 두루 두루 보고 있는 중이다. 원칙은 선언을 뒷받침하고 있다.
선언은 네가지이다. 개인 및 상호작용, 동작하는 소프트웨어, 고객과의 협업, 변화에 대응.. 이렇게다.
원칙은 열 두가지이다. 각각 선언과 매칭을 시키려 하였으나 그런 맥락은 아니라 본다. 원칙이 선언 여러개에 걸쳐 의미를 가질 수 있다.
열 두가지 원칙은 12개의 이모티콘과 키워드로 정리를 하고 있는데도 있으나 원칙 전체의 의미를 같이 보는게 좋다고 본다. 키워드로 정리하면서 훼손되는 의미가 있어 보이기 때문이다.
그래서 스마트폰에 선언과 원칙을 옮겨 놓고 계속적으로 상기해 볼 요량이다. 왜냐하면 이게 소프트웨어 개발의 핵심이고 정수이기 때문이다.
일단 12개의 원칙을 떠올려 본다. 음~~
첫번째 원칙이라 그런지 고객 만족이라는 원칙이 기억난다. 소프트웨어 개발의 가장 중요한 우선순위가 고객 만족이라는 것이다. 고객 만족을 하는데 도구가 되는 것은 무엇일까에 대한 언급도 있다. 문서 산출물이나 납기가 이루어지는 시점이 아니다. 가치있는 소프트웨어이다. 고객이 원하는 기능이 탑재된 소프트웨어이다.
다음은 일곱번째 원칙으로 넘어간다. 소프트웨어 개발은 진척관리도 중요한 포인트인데 뭐로 진척 관리를 하면 되는가에 대한 물음에 답이 될 수 있는 원칙이다. 소프트웨어 개발의 진정한 진척의 척도는 동작하는 소프트웨어를 봐야 한다. WBS의 태스크로 두리뭉실 퍼센트 화 해서 숫자를 인위적으로 만들어 80% 진척.. 이렇게 하면 안 된다. 그냥 이제껏 만든 소프트웨어를 데모하고 그거 보면 자연스레 어느 정도 진척이 되었는지 아는 것이다.
일정한 속도를 내야 한다는 원칙도 있다. 일정한 속도는 여러가지로 유용하리라.. 뭐겠는가? 일정한 속도를 내게 되면 이러 이러한 기능을 이 팀이 얼마동안의 일정으로 개발 가능한지가 나오기 때문이다. 납기 준수에 대한 자신감을 확보할 수 있다는 점이다.
그리고 자치적인 팀을 만들라는 원칙도 있다. 뭐가 비즈니스에서 생존하기 위한 원칙인가? 돈 많이 주는게 동기 부여의 답이 아니다. 특히 지식 노동의 영역에서는 더더욱 그렇다. 목표, 자치, 전문성 이것이 경쟁력의 삼요소이다. 피플웨어에서 강조하듯이 소프트웨어 개발의 핵심 자원은 사람이다. 그런 사람들로 팀을 만들어야 하는데 그 때 자율성을 갖는 self organizing 요소의 확보가 중요하다는 원칙이다.
짧은 주기로 빈번한 배포를 해야 한다는 원칙도 있다. 가시성 확보와 맥이 닿아 있다.
의사소통 관련한 원칙도 중요하다. 문서, 이메일, 전화, 대면 미팅 등에 대한 혜안을 갖게 해주는 통찰이다.
회고에 대한 원칙도 있다. 효과적인 방법을 곰곰히 생각하고 그것을 팀내 프로세스로 도입하라는 원칙이다.
개인의 기술 역량과 좋은 설계가 일정한 속도를 담보하며 결국은 민첩성을 달성하게 한다는 원칙도 있다.
단순성이 중요하다는 원칙도 있는데, 이는 불필요한 낭비 요소가 있는지 확인하고 그러한 일들을 제거하는 노력이라는 측면으로 설명하고 있다. 하지 않아도 되는 일을 하지 않을 때 소프트웨어 개발 현장이 단순하고 깔끔해진다.
요구사항 변경에 대한 태도도 언급한다. 프로젝트 막판에 요구사항 변경을 수용할지 말아야 할지에 대한 기준이다. 애자일은 프로젝트 막판에도 요구사항 변경을 환영해야 한다고 말한다. 그런데 거의 대부분의 프로젝트에서 어떠한가? 영향도 운운하며 요구사항 변경을 하면 안된다고 피 터지게 싸우지 않는가? 물론 이렇게 여유롭고 호기롭게 요구사항 변경을 수용하려면 좋은 설계라는 탄탄한 기반이 뒷받침되어야 한다.
애자일 선언과 원칙을 넘나 들며 올바른 소프트웨어 개발에 대한 관점을 견지해 나가다보면 좋은 날이 오리라~
Agi#1
Agur를 닮기로 한 크리스천이라는 정체성 말고 직업적인 정체성으로 생각한 것은 Agile Coach 이다. 줄여서 Agi... Agu와 Ag를 맞추기 위함이고 구별하기 위함이고..
소프트웨어 개발이란 영역은 쉬운 영역은 아니다. 그만큼 여러 주장들이 난무하고 실패할 확률도 많은 업이다.
지금 수행하고 있는 프로젝트도 지연이 될려고 하니 말이다.
그런데, 30여개의 프로젝트를 하면서 생각이 머무는 것은 Agile이라는 프레임워크가 유념하고 기억하면 참 좋은 사상이라는 점이다. 지식이 난무하고 범람하는 가운데 중심을 잡아주기에 충분한 생각들이다. 그래서 잘 살펴 보고 내 것으로 만들어 놓으면 피가 되고 살이 된다.
그리고 또 한가지는.. 생각하라는 것이다.
우리나라 사람들 똑똑하다. 하지만 아직 소프트웨어 개발의 국내 현실을 보면 아쉬운 부분이 너무 많다.
이는 생각을 깊이 하지 않고 좋은 머리라는 자만으로 너무 피상적인 접근을 하고 있어서가 그 이유이지 싶다.
그래서 지금 독서 토론회를 1회 마쳤고, 2회를 시작하려고 하는 "The Nature of Software Development"는 참 고마운 책이다. 책의 모토가 "생각하라"이기 때문이다.
이 책에서 던지는 화두들을 웹사이트에도 차곡 차곡 모아 나갈 생각이다. 암튼 장독대에 간장, 된장 담그듯이 충분히 생각하는 여유를 가져 보자.
참.. Agi는 매주 월수금에 할 저널링이다.
Agi#2
이번주도 직업 현장을 마무리하는 시점이 왔다. 즐거운 금요일이고 크리스마스 이브이다. 오늘은 건강 검진을 받고 오후는 한가하게 보내고 있어 감사하다.
크리스마스가 한해의 마지막에 있어 좋다. 한해를 정리하고 한해를 계획하는 일은 참으로 중요한데 예수님의 탄생도 생각할 수 있기 때문이다. 예수님의 탄생은 삶의 마지막에 대한 묵상거리를 주기에 충분하지 않은가.
암튼..
나의 인생책인 소프트웨어 개발의 본질(nature)를 1월 초가 되면 두번째 온라인 독서 토론회를 하게 된다. 이 책은 애자일 선언을 한 사람 중 한 사람인 론 제프리스의 책이다. 이 책을 통해 애자일을 깊이 있게 이해할 수 있다. 그리고 더불어 애자일 선언과 원칙이 있는 사이트를 방문하게 만들었다.
애자일 선언은 다 알지만, 아니 모를 수도 있다. 피상적인 세상을 살고 있지 않은가. 본질에 입각한 통찰은 깊은 사색의 강을 넘은 사람만의 전유물이지 않는가.
애자일 선언은 소프트웨어 개발의 가치에 대한 선언이다. 소프트웨어 개발에 있어 무엇이 가치가 있느냐에 대한 발견의 공유다.
비교법을 사용하여 가치에 방점을 찍은 것들을 강조하고 있다. 오늘은 네 개의 방점 중 첫번째 것을 다루어 본다.
개인에 대한 것과 상호작용에 대한 것이다.
개인이 중요하고 여러 개인 간의 상호작용이 중요하다는 것이다. 비교법이라고 했으니 뭐보다?
프로세스와 도구이다. 프로세스와 도구도 일을 진행하는데 있어 사용이 되고 그 안에 개인 및 상호작용도 발견할 수 있다. 액티비티 담당자인 역할자로 개인이 등장한다. 워크플로우(일이 마쳐지면 다음 일로 던져 주는 도구)가 되었든 위키, 게시판이 되었든 도구도 소프트웨어 개발 현장에서 발견되고 어떤 때는 도구가 중요하다고 도구 도입에 집중하는 경우도 있다.
이런거다. 개인, 상호작용, 프로세스, 도구..
다 중요해 보인다. 뭐가 더 중요한지 잘 모르겠다. 하지만 고수들은 경험이든 학습이든 자기만의 철학이 있고 믿음이 있는 것이다.
소프트웨어 개발은 햄버거를 찍어내는 단순 생산이 아니다. 지식 노동이다. 그럼 그에 걸맞는 옷이 있어야 한다. 그런 옷에 개인, 상호작용이 더 잘 어울린다는 것이다. 명품 옷이라는 것이다.
프로세스와 도구를 어설프게 적용하면 소프트웨어 개발의 본질인 개인, 상호작용이 훼손될 수 있다는 것이다. 그래서 개인의 역량, 개인의 태도, 개인 간의 cross functional한 상호작용에 가치를 두고 잊지 않아야 한다고 강조하는 것이다.
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
2021-11-05 ~ 2021-12-19
2022-01-07 ~ 2022-02-25