개발자 노트
프로그램을 작성하기 전에 순서도를 작성하시나요? 저는 순서도를 작성하지 않습니다. 대신에 어떻게 프로그램을 작성해야 하는지 주~욱 시나리오를 적는 것을 좋아합니다. 그러나 납품을 하게 되면 첨부되는 문서 중의 하나가 순서도입니다. 그렇다면 미리 순서도를 만들고 작업하면 나중에 문서 제출할 때도 좋을 텐데, 현실은 엉뚱하게 흘러 갑니다. 프로그램을 모두 만들어 놓고, 그 내용에 따라 순서도를 작성하지요. 결국 저에게 순서도는 제출용 뿐이 되지 않습니다.
물론, 만들어진 순서도는 인수인계를 받는 분이나 관리자의 이해를 돕겠지만, 그렇다고 하더라도 순서도는 매우 비효율적이라도 생각합니다. 아래의 순서도를 보시죠. 매우 낯이 익은 모습으로 작성되어 있습니다. `
글씨를 작게 줄이고 도형을 줄여도 A4 한장에 출력할 수 있는 내용은 매우 적습니다. 그림으로 표시되니 이해도 높을까요? 저는 그렇게 생각하지 않습니다. 위처럼 간단한 경우에는 이해가 쉬워도 조금만 복잡해 지면 마치 전자 회로 같이 보입니다. 나중에는 이해 하기 위해 순서도를 분석해야 합니다. 이해하기 위해 만들어진 자료가 분석이 필요하다고 한다면 과연 순서도가 제 구실을 한다고 할 수 있을까요?
도형을 이용하는 순서도는 작성하기 어려울 뿐 아니라 수정하는 데에도 매우 많은 시간과 노력이 들어 간다는 치명적인 문제점을 가지고 있습니다. 가뜩이나 프로그램 짜기도 힘들어 죽겠는데, 하루가 멀다 하고 계속 바뀌는 코드를 순서도와 일치 시켜야 한다면, 아무리 부지런한 사람도 포기할 것입니다. 결국 일이 끝나고 나서야 문서 제출용으로 만들 수 밖에 없습니다.
그러나 순서도와 같이 작업의 흐름을 보여 주는 방법은 반드시 필요합니다. 혼자 작업 때뿐만 아니라 공동 작업할 때에는 프로젝트라는 배가 산으로 가지 않게 하기 위해서는 반드시 필요한 내용입니다.
그렇다면 작성하기 쉽고 이해하기 쉬우면서, 그러니까 어떻게 하면 효율적인 작업 흐름도를 작성할 수 있을까요? 저는 예전에 "마소"라는 애칭으로 불리웠던 Microsoftware 라는 잡지 책에 소개된 탑다운 방식을 사용하고 있습니다. 어느 분이 만드셨는지 지금은 기억도 안 나지만, 이렇게 좋은 방법을 왜 널리 퍼지지 않는지 모르겠습니다.
바로 아래와 같이 작성하는 방법입니다. 아마, 알고 계시는 분도 많으실 것입니다. 그러나 다른 분이 사용하는 모습을 본 적이 없습니다.
더 많은 내용을 입력할 수 있고 무엇을 어떻게 처리하는지 알 수 있을 뿐 더러 프로그램 코드에 바로 적용할 수 있습니다. 내용 추가나 삭제도 매우 편합니다. 물론 수고로운 부분이 없는 것은 아니지만, 기존의 도형을 이용하는 순서도 보다는 매우 편하지요.
그러나 워드에서 블록 묶음을 보여 주는 직선과 열을 맞추어 입력하는 것은 쉬운 일이 아니지요. 그래서 저는 워드의 표 기능을 이용하고 있습니다.
저와 같은 문제로 고심하는 분이라면 참고하세요. ^^
제가 보는 관점은 블럭다이어그램이나 순서도가 개발 업무에서는
비슷한 개념이라고 생각합니다.
상세설계 전 큰 그림을 잡아주는 것이라고 생각하거든요.
혹시라도 놓칠 수 있는 기본사항들을 챙길 수 있게 해줍니다.
더 중요한 건 나 혼자가 아닌 타인과의 Co-Work 까지 가능해지므로
상호 검토로 인해 나중에 변경될 소지를 미연에 방지할 수 있습니다.
저는 하드웨어 설계를 하는 사람입니다만
회로설계 전에 블럭다이어그램을 먼저 그립니다.
그 블럭다이어그램을 바탕으로 각 기능들과 요구사항들이
제대로 반영되었는지 사전에 상호검토합니다.
프로그래밍을 하게되더라도 노트에 끄적끄적 순서도 비슷하게 구조는 잡고 시작합니다.
어디까지나 큰 그림을 그리는 것이기 때문에 Detail 과는 거리가 있습니다.
핵심적인 뼈대만 다룹니다.
비슷한 맥락에서 저는 프로그램 순서도를 상세하게 그리는 것을 좋아하지 않습니다.
보는사람들도 헷갈리거든요.
(구조설계자와 코더가 따로 존재하는 프로젝트는 예외로 둡니다.
코딩 룰이 정해진 상태에서 상세 순서도가 있어야만 코딩이 가능하니까요)
님께서 올려주신 방법은 기본 구조가 머리속에 있는 상태에서 실제 코딩 시 도움되는 방법 같습니다.
도형으로 순서도 그리는 것이 번거롭다면 Visio 를 한 번 사용해보시는 건 어떨까요? ^^
전 제품 A/S 수리 매뉴얼에 순서도를 넣는데 Visio 를 이용합니다.
작성도 쉽고 특히 수정이 용이하던데요.
정리하자면
딱 A4 용지 한 장에 심플하게 표현해야 좋은 블럭다이어그램, 순서도 라고 생각합니다.
그 큰 그림이 가지는 의미와 효과는 상당히 크다고 봅니다.