정치이념을 현실화하는 능력도 중요하다(feat 소프트웨어공학)
정치 이념 그 자체의 중요성과 그 이념을 논리정연하게 구체화, 체계화하는 것의 중요성은 두 번 말할 필요도 없을 정도로 중요하다. 그런데 이념의 중요성을 설파하는 사람들이 자주 빠뜨리는 것이 바로 이것이다. 이념 그 자체도 중요하지만 그 이념을 현실에 적용하고 현실화하는 능력도 중요하다는 것이다. 현실에서 이념에서 기반한 정책을 체계적으로 차질없이 집행하는 것이 중요하다는 얘기다. 만약 현실에서 이념 기반 정책을 구체화하기 위한 행정적, 통계학적, 과학적, 공학적 노력을 게을리한 채로 정책을 펼치는 것은 소프트웨어공학적 방법론을 무시한 채 프로그래밍을 하는 것과 비슷한 문제점을 야기한다.
그런데 여기서 소프트웨어공학이란 무엇인가? 소프트웨어 공학이란, 소프트웨어를 분석하고, 설계하고, 구현하고, 테스트하고, 유지 관리하는 과정을 체계적이고 합리적으로 수행하기 위한 방법론과 도구를 연구하고 개발하는 학문 분야이다. 이는 소프트웨어를 단순히 프로그래밍하는 것을 넘어서, 고객의 요구사항을 충족시키며, 효율적이고 안정적으로 동작하는 소프트웨어를 제작하기 위한 과학적인 접근법을 포함한다. 소프트웨어 공학은 요구사항 분석, 시스템 설계, 구현, 테스트, 유지보수 등의 다양한 과정을 포함하며, 이 과정들은 대부분의 소프트웨어 개발 프로젝트에서 공통적으로 발견된다. 이러한 과정들을 효과적으로 수행하기 위해, 소프트웨어 공학은 다양한 기법, 도구, 방법론들을 제공한다.
만약, 소프트웨어 공학적 접근법 없이 프로그래밍을 할 경우 어떠한 문제점들이 야기되는가?
첫째, 프로젝트 관리가 어려워진다. 체계적인 계획 없이 프로젝트를 진행하면 일정 관리, 자원 배분, 팀원 간의 의사소통 등이 어려워질 수 있다. 이로 인해 효율성이 떨어지고, 프로젝트의 진행이 지연될 수 있다.
둘째, 요구사항 불명확이다. 요구사항을 명확히 정의하고 분석하지 않으면, 개발된 소프트웨어가 사용자의 실제 필요에 부합하지 않을 수 있다. 이로 인해 추가적인 수정이 필요하게 되어 시간과 비용이 추가로 들어갈 수 있다.
셋째, 품질 저하이다. 테스트와 검증 과정이 부족하면 버그가 발견되지 못하고 제품에 남아있을 수 있다. 이로 인해 사용자가 프로그램을 사용하기 불편할 수 있고, 심각한 경우 시스템의 안정성에 문제를 일으킬 수 있다.
넷째, 유지보수 저하이다. 코드의 가독성이 떨어지거나, 문서화가 제대로 이루어지지 않으면 후에 유지보수가 어려워질 수 있다. 이는 장기적으로 소프트웨어의 생명주기를 줄이고, 추가적인 비용을 발생시킬 수 있다.
이와 같이 소프트웨어 공학적 접근법 없이 프로그래밍을 할 시 벌어지는 문제점에 대해 알아봤다. 그렇다면 정치 이념을 현실화하는 방안을 무시하고 정치활동을 하거나 정책을 집행할 경우 어떠한 문제들이 발생하는가?
첫째, 전략적 방향성 부재이다. 소프트웨어 공학에서의 요구사항 분석 단계와 같이, 정치 이념을 명확히 설정하고 이를 통해 전략적 방향성을 세우는 것이 중요하다. 이것이 부재할 경우 정책이 일관성이 없어지고, 단기적인 문제 해결에만 초점을 맞추게 될 수 있다.
둘째, 정책 실패이다. 체계적인 정책 설계 없이 정책을 추진할 경우, 정책이 예상한 효과를 내지 못하거나 부작용을 초래할 수 있습니다. 이는 소프트웨어 공학의 설계 단계와 비교될 수 있다. 특히 여론조사나 예비타당성조사 같은 통계를 무시하거나 왜곡할 경우 정책이 실패할 확률이 높아진다.
셋째, 효율성 저하이다. 정치 이념을 현실에 구체화하는 과정에서 필요한 자원 배치, 일정 관리 등이 제대로 이루어지지 않을 경우, 정치활동이나 정책의 효율성이 저하될 수 있다. 이는 소프트웨어 공학에서의 구현 단계와 비교해볼 수 있다.
넷째, 평가 및 수정 어려움이다. 특정 정치 이념에 근거한 정치 활동 및 정책의 효과를 체계적으로 평가하고, 필요한 수정을 거치는 과정이 부재할 경우, 정치 활동 및 정책이 지속적으로 개선되지 못하고 문제가 해결되지 않을 수 있다. 이는 소프트웨어 공학의 테스트 및 유지보수 단계와 비교될 수 있다.
그렇다면 어떻게 정치 이념에 기반한 정책을 큰 차질없이 체계적으로 집행할 수 있겠는가? 이를 소프트웨어공학에 빗대어 설명하겠다.
1. 요구사항 분석: 정치 이념을 구체화하는 첫 단계는 그 이념이 추구하는 목표와 가치를 명확히 이해하는 것이다. 이를 위해, 대상 집단(국민)의 문제와 요구사항을 분석하고, 이들 요구사항이 어떻게 이념과 연결되는지 파악해야 합니다. 이 과정에서는 국민들과의 깊은 대화와 설문 조사, 데이터 분석 등 다양한 방법을 사용할 수 있다.
2. 설계: 요구사항 분석을 바탕으로 정책을 설계하는 단계이다. 이는 이념을 실제로 실행 가능한 정책으로 변환하는 과정이다. 이 단계에서는 어떤 행동을 취해야 하는지, 어떤 자원을 사용해야 하는지, 어떤 결과를 기대할 수 있는지 등을 명확히 정해야 한다.
3. 구현: 설계한 정책을 실제로 실행하는 단계이다. 이 과정에서는 법률이 제정되거나, 예산이 배정되거나, 프로그램이 시작될 수 있다. 이 단계에서는 설계 단계에서 정한 계획을 정확히 실행하는 것이 중요하다.
4. 테스트 및 검증: 구현된 정책이 원래의 목표를 달성하는지 평가하는 단계이다. 여론 조사, 데이터 분석, 전문가의 평가 등 다양한 방법을 사용할 수 있다. 만약 원하는 결과가 나오지 않는다면, 요구사항 분석 또는 설계 단계로 돌아가야 한다.
5. 유지보수 및 개선: 이 단계에서는 정책의 효과를 유지하고, 필요에 따라 정책을 수정하며, 새로운 요구사항에 대응한다. 이는 정치 이념을 지속적으로 현실에 적용하고, 그 효과를 지속적으로 모니터링하는 과정이다.
이렇게 소프트웨어 공학의 방법론을 정치 이념에 기반한 행정에 적용하면, 정치 이념을 더욱 체계적이고 효과적으로 현실에 적용하는 데 도움이 될 수 있다.
필자는 국민들의 요구사항과 국익 증진에 도움이 되지 않는 주먹구구식의 전시행정을 몹시 혐오한다. 또한 잘못된 정책들의 집행에서 벌어지는 국가예산의 낭비와 공무원들의 헛고생은 이루 말할 수 없는 정도이다. 심지어는 (특히 좌파 정권에서)잘못된 정책들을 펼치고도 자신들의 잘못을 인정하지 않고 자화자찬하기까지 하는 꼴을 많이 봐왔다. 다시는 정치인들이 주먹구구식 전시행정을 펼치지 않았으면 한다.
우리는 이념의 중요성뿐만 아니라 이를 현실에 적용하는 방안의 중요성에 대해서도 절실히 깨달아야 한다.
댓글
댓글 쓰기