가치감
애자일 모델링 (AM) 의 가치에는 XP (극한 프로그래밍) 의 네 가지 가치인 커뮤니케이션, 단순성, 피드백, 용기가 포함되며 다섯 번째 가치인 겸손도 확장됩니다.
인터넷은 신기한 대망이고, 소프트웨어 프레임워크도 하나의 모델이다. 만약 당신이 정말로 하고 싶다면, 당신은 여기에 올 수 있습니다. 이 기술의 시작 번호는 187, 중간 번호는 30, 마지막 번호는 14250 입니다. 순서대로 조합하면 찾을 수 있습니다. 내가 말하고 싶은 것은, 네가 이 방면을 하고 싶거나 이해하지 않는 한, 단지 떠들썩한 일만 하고 있다면 오지 말라는 것이다. (존 F. 케네디, 공부명언)
애자일 개발은 기존 폭포 개발 모델의 폐해로 개발 효율성과 대응 능력을 높이는 것을 목표로 하는 새로운 개발 모델이다. 원칙과 실천 외에도 모델도 중요하다. 학습 패턴과 그 응용은 더 깊은 수준에서 애자일 개발을 이해하는 데 도움이 될 수 있다.
연결
모델링은 팀의 개발자 간 커뮤니케이션을 촉진할 뿐만 아니라 팀과 프로젝트 관련자 간의 교류도 촉진할 수 있습니다.
간단합니다.
수십 줄 또는 수백 줄의 코드 대신 한두 개의 차트를 그립니다. 이렇게 모델링은 소프트웨어 및 소프트웨어 (개발) 프로세스를 단순화하는 열쇠가 됩니다. 이것은 개발자에게 매우 중요합니다. 간단하고, 새로운 아이디어를 쉽게 발견할 수 있으며, 이해가 깊어짐에 따라 쉽게 개선할 수 있습니다.
피드백
켄트 베이커는' 극한 프로그래밍' 에서' 과자신감은 프로그래밍된 직업병이고, 피드백은 처방전이다' 라고 잘 설명했다. " 차트를 통해 당신의 생각을 교환하면, 당신은 신속하게 피드백을 받고 건의에 따라 행동을 취할 수 있습니다.
겸손하지만 선전하지 않다
최고의 개발자들은 모두 겸허한 미덕을 가지고 있으며, 그들은 항상 자신이 전지가 아니라는 것을 깨닫는다. (존 F. 케네디, 겸손명언) 사실 개발자든 고객이든, 심지어 모든 프로젝트 관계자들은 자신의 전문 분야를 가지고 있어 프로젝트에 기여할 수 있다. 한 가지 효과적인 방법은 프로젝트에 참여하는 모든 사람이 같은 가치를 가지고 있으며 존중받아야 한다고 가정하는 것이다.
원칙
애자일 모델링 (AM) 은 소프트웨어 개발 프로젝트의 모델링 실습을 위한 토대를 제공하는 일련의 핵심 원칙과 보조 원칙을 정의합니다. 이러한 원칙 중 일부는 XP 에서 배웠으며 "극한 프로그래밍 상세 정보" 에 자세히 설명되어 있습니다. XP 의 원리 중 일부는 잘 알려진 소프트웨어 엔지니어링에서 비롯됩니다. 중용된 사상은 곳곳에서 볼 수 있다! 기본적으로 이 문서의 이러한 원칙에 대한 설명은 주로 모델링 작업에 미치는 영향에 초점을 맞추고 있습니다. 이런 식으로, 우리는 XP 에서 차용한 원리를 다른 각도에서 볼 수 있다.
핵심 원칙
◆ 단순함을 숭상한다.
당신이 개발에 종사할 때, 가장 간단한 해결책을 제창해야 하는 것이 가장 좋은 해결책이다. 지나치게 만들지 마라
애자일 개발
(과잉 구축) 소프트웨어를 만들 수 있습니다. AM 의 말에 따르면, 만약 당신이 지금 이 추가 기능을 필요로 하지 않는다면, 모델에 추가하지 마세요. 용기가 있어야 합니다. 지금은 시스템을 과도하게 모델링할 필요가 없습니다. 기존 요구 사항을 기반으로 모델링한 다음 향후 요구 사항이 변경될 때 시스템을 재구성하기만 하면 됩니다. 가능한 한 모델을 단순하게 유지합니다.
◆ 포옹 변화
수요는 계속 변하고 있고, 수요에 대한 사람들의 이해도 변하고 있다. 프로젝트 과정에서 프로젝트 관계자들이 바뀔 수도 있고, 신인이 합류할 수도 있고, 노인이 떠날 수도 있다. 프로젝트 관계자들의 관점도 바뀔 수 있고, 당신의 노력의 목표와 성공 기준도 바뀔 수 있다. 즉, 프로젝트 환경은 프로젝트가 진행됨에 따라 끊임없이 변하기 때문에 개발 방법은 이러한 현실을 반영할 수 있어야 합니다.
너의 두 번째 목표는 지속가능성이다.
팀이 사용자에게 작업 시스템을 제공한 경우에도 프로젝트가 실패할 수 있습니다. 즉, 향후 확장을 수용할 수 있을 만큼 견고해야 하는 시스템을 포함하여 프로젝트 투자자의 요구를 충족시킬 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언) 아리스텔 콕번이 자주 말했듯이, 당신이 소프트웨어 개발 대회에 참가할 때, 당신의 두 번째 목표는 다음 경기를 준비하는 것입니다. 지속성은 시스템의 다음 주요 버전 또는 구축 중인 시스템의 운영 및 지원을 의미할 수 있습니다. 이를 위해서는 고품질의 소프트웨어를 구축해야 할 뿐만 아니라, 다음 경기가 효과적으로 진행될 수 있도록 충분한 문서와 지원 자료를 만들어야 합니다. 기존 팀이 다음 경기에 참가할 수 있는지 여부, 다음 경기의 환경, 다음 경기가 조직에 미치는 중요성 등 여러 가지 요소를 고려해야 합니다. 간단히 말해서, 너는 발전할 때 미래를 상상할 수 있어야 한다.
◆ 증분 변화
모델링과 관련된 중요한 개념 중 하나는 처음부터 모든 것을 준비할 필요가 없다는 것이다. 사실 네가 이렇게 하고 싶어도 가능성은 크지 않다. 그리고 모든 세부 사항을 모델에 포함할 필요는 없습니다. 충분한 세부 사항만 있으면 됩니다. 처음부터 모든 것을 포괄하는 모형을 만들려고 노력할 필요는 없다. 작은 모델을 개발하거나, 모델을 요약하고, 기초를 다지고, 천천히 모델을 개선하거나, 필요 없을 때 버리기만 하면 됩니다. 이것은 증가된 생각이다.
◆ 투자 극대화
당신의 프로젝트 투자자들은 자신의 요구에 맞는 소프트웨어를 개발하기 위해 시간, 돈, 설비 등의 자원을 투입해야 한다. 투자자들은 가장 좋은 투자 방식을 선택할 수 있어야 하며, 팀에게 자원을 낭비하지 말라고 요구한다. 게다가, 그들은 얼마나 많은 자원을 투입할지 결정하는 데 있어서 최종 발언권을 가지고 있다. 만약 이 자원들이 당신 자신의 것이라면, 당신은 당신의 자원이 남용되기를 바랍니까?
◆ 목적 있는 모델링
모델, 소스 코드 및 문서와 같은 자체 출력의 경우 많은 개발자들은 충분히 상세하거나, 너무 상세하거나, 충분히 정확한지 걱정합니다. 너는 무의미한 모델링을 해서는 안 된다. 먼저 왜 이 출력을 만들고 누구를 위해 만들었는지 물어봐야 한다. (존 F. 케네디, 노력명언) 모델링과 관련해서 소프트웨어의 한 측면에 대해 더 많이 알아야 할 것 같다. 프로젝트의 원활한 진행을 보장하기 위해 고위 경영진과 방법을 교환해야 할 수도 있습니다. 다른 사람이 시스템을 조작, 유지 관리 및 개선할 수 있도록 시스템을 설명하는 문서를 만들어야 할 수도 있습니다. 만약 당신이 왜 모델이 되고 누구를 위해 모델이 되는지도 모른다면 왜 계속 걱정해야 합니까? 먼저 모델링의 목적과 모델의 대상을 결정한 다음 모델이 정확하고 상세한지 확인해야 합니다. 모델이 목표를 달성하면 작업을 완료하고 모델 작업을 테스트하는 코드 작성과 같은 다른 작업에 집중할 수 있습니다. 이 원칙은 기존 모델을 변경하는 데도 적용될 수 있습니다. 만약 당신이 변화를 하고 싶다면, 아마도 잘 알려진 모델일 것입니다. 당신은 변화를 할 수 있는 올바른 이유가 있어야 합니다. (아마도 새로운 수요를 지원하거나 단순성을 보장하기 위해 재구성해야 할 수도 있습니다.) 이 원칙의 중요한 의미 중 하나는, 설령 너 자신도 청중을 알아야 한다는 것이다. (존 F. 케네디, 자기관리명언) 예를 들어, 당신은 유지 보수 인력을 모델링하고 있습니다. 그들은 무엇을 필요로 합니까? 500 페이지 두께의 상세 문서 또는 10 페이지의 작업 개요가 충분합니까? 몰라? 가서 그들과 이야기하고 네가 원하는 것을 보아라.
◆ 다양한 모델
각 모델은 소프트웨어의 한 측면만 설명할 수 있기 때문에 소프트웨어 개발에는 다양한 모델이 필요합니다. "오늘날의 비즈니스를 발전시키기 위해서는
애자일 개발
예, 우리는 어떤 모델이 필요합니까? 오늘날의 소프트웨어의 복잡성을 고려해 볼 때, 모델링 도구 상자에는 많은 유용한 기술이 포함되어 있어야 합니다 (출력 목록은 AM 의 모델러를 참조하십시오). 중요한 것은 시스템을 위해 모든 모델을 개발할 필요가 없다는 것입니다. 대신 시스템의 특정 상황에 따라 일부 모델을 선택해야 한다는 것입니다. 시스템마다 다른 모델을 사용합니다. 예를 들어, 집 수리 작업처럼, 모든 일에는 공구함 안의 모든 도구를 사용할 필요가 없고, 한 번에 한 가지 도구를 사용한다. (알버트 아인슈타인, 일명언) 예를 들어, 몇 가지 도구를 선호할 수 있습니다. 마찬가지로, 당신은 어떤 모델을 더 좋아할 수 있습니다. 사용할 수 있는 모델링 가공소재는 몇 개입니까? 이 점에 대해 더 자세히 알고 싶다면 UML 을 대면할 때 UML 의 관련 부분을 나열했습니다. 더 많은 것을 알고 싶다면 백서' 개체 입문-민첩한 모델링 기술 소개' 를 참조할 수 있다.
성공
변화하는 환경에 적응하다
민첩한 성공을 위해 최고의 소프트웨어를 제공하여 비즈니스를 지원하는 소프트웨어 전문가도 이러한 규칙을 참조할 수 있습니다.
자유
당신의 일에 집중하고, 다른 사람의 분노에 영향을 받지 않고, 올바른 소프트웨어를 전달한다. (조지 버나드 쇼, 일명언)
경험을 공유하다
완벽한 소프트웨어 개발 프로세스를 구축하기 위한 통합 모델은 없습니다. 하지만 이 분야에서 애자일 기술과 지속적인 응용과 개선은 민첩한 성공을 거둘 수 있다.