Agile 프로그래밍도 ... 안전 크리티컬 시스템에 대한 임시입니까? [닫은

StackOverflow https://stackoverflow.com/questions/233707

문제

예를 들어, 항공 전자 소프트웨어를 위해 그렇게하는 것이 엄청나게 위험할까요?

나는 애자일을 완전히 이해하지 못한다.

도움이 되었습니까?

해결책

나는 본질적으로 폭포 과정을 사용하여 항공 교통 제어 시스템에서 일했으며, 이러한 프로젝트는 분명히 민첩한 관행의 혜택을 누릴 수있었습니다. 나는 어떤 종류의 단위 수준 자동 회귀 테스트없이 그 코드의 얼마나 많은 일이 "우연히"작동하는지 생각하고 싶지 않습니다. 그리고 요구 사항은 앞면이 붉은 청어입니다. 항공 우주 시스템은 아마도 스톤 스톤 요구 사항을 선행 할 수있는만큼 가깝다는 것은 사실이지만, 당신은 아직 시스템이 수락 테스트 중일 때만 나타나는 모호한 요구 사항의 의미에 대한 인수를 가지고 있습니다. 또는 빅뱅 통합으로 인해 게임 후반에 나타나지 않은 처리량 문제가 있습니다. Test-First, Spike Solutions, Continuous Integration, Pair-Programming-이 모든 것이 내가 작업 한 프로젝트를 개선했을 것이라고 생각합니다.

업데이트 : "디자인 문서"가 프로젝트가 끝날 때까지 얼마나 자주 거짓말을했는지는 말할 것도 없습니다. 디자인은 현실에 직면하여 반드시 진화했기 때문입니다. Agile은 코드를 쓰기 시작하기 직전에 디자인을 얻을 수 있다고 주장하기보다는 폭포 프로젝트에서와 마찬가지로 실제 디자인의 사실을 인식합니다.

다른 팁

나는 항공 우주 (위성)에서 일하고 있으며, 우리는 실제 요구 사항과 비즈니스 프로세스 요구 사항의 두 가지 문제에 직면하기 때문에 하이브리드 접근법을 사용합니다.

위성의 변화가 느리고 희귀하고 나사가 나쁘기 때문에 우주선 요구 사항과 중요한 섹션에는 폭포 적 접근 방식을 사용합니다.

그러나 끊임없이 변화하는 비즈니스 프로세스의 경우 우리는 민첩한 접근 방식을 사용합니다. 어떻게 그들은 고객의 요구로 인해 우주선을 끊임없이 변화하고 있습니다. 최악의 경우 사용자가 결과를 얻지 못한다는 것을 의미합니다.

나는 그 분야에서 (항공 시스템 사용자를 제외하고) 내 자신의 진정한 독립적 인 의견을 형성하기에 충분한 경험이 없습니다. 그러나 최고의 실적을 가진 중요한 시스템에 대해 계속 읽는 모든 것들이 폭포가 실제로 가장 좋은 방법이라고 믿게됩니다. 사람들이 안전을 증진시키기 위해 냉동 요구 사항의 추가 낭비를 기꺼이 허용하기 때문에 가능합니다. 이 경우 트레이드 오프는 조금 다릅니다.

미션 및 생명 공학 시스템에 민첩한 관행의 적용 가능성 결정

애자일 적합성 필터

요컨대, "민첩한"프로그래밍은 없습니다. 일련의 관행이 있습니다. 어떤 사람들은 다른 사람들보다 더 잘 빌려주지 만 일반적으로 어떤 프로젝트는 어떤 관행의 혜택을받을 것입니다.

사람들이 일반적으로 관심있는 가장 큰 지역은 모델링과 건축입니다. 민첩한 관행을 사용하여 많은 팀이 있습니다. 예를 들어, 나는 FUN3D 팀 NASA와 함께 - 민첩한 관행을 사용하고 우주 왕복선 지원과 같은 것들을 다룹니다.

이 유형의 작업에 전념하는 여러 그룹이 있습니다. 가능합니다. 다른 방법론과 마찬가지로 위험을 알고 있어야합니다.

애자일은 훈련 된 과정이어야합니다. 프로세스에 관계 없이이 경우 안전 문제를 해결해야합니다. 반복을 반복적으로 전달하고, 지속적인 빌드 시스템을 사용하고, 프로그래머 화상 요금을 계산하고, 회의를 확보하고, 고객을 활성화시키는 등의 경우 안전에 부정적인 영향을 줄 수있는 방법을 알 수 없습니다.

많은 고려 사항이 있습니다. 첫 번째는 안전 중요성이 무엇인지입니다. 당신의 대답이 "a"또는 "b"(그리고 실제로 "a") 인 경우 절대적으로 그렇지 않습니다. 당신은 어쨌든 모양이나 형태로 민첩한 일을하지 않을 것입니다. 레벨 A 소프트웨어 (약 15 년의 배경)에서 필요한 매우 엄격한 코딩 표준, 문서 표준 및 프로세스 표준이 있습니다. 여기에는 다음이 포함됩니다.

  • 전체 상향/다운 추적 성.
  • 전체 지점 범위.
  • 완전한 다중 조건부 범위.
  • do-178b가 설명하는 기본 문서에는 SRD, SDD, SCI, SCMP, SDP, TQP, SCI가 포함됩니다.

따라서 코드, 설계 및 요구 사항을 인증해야 할뿐만 아니라 도구 세트, 컴파일러, 자동 테스트 장비 등을 인증해야합니다.

요컨대, 그것은 실제로 작은 위업이 아니며 작은 팀과 함께하지 않을 것입니다. 마찬가지로, 인터페이스는 실제로 견고하고 매우 구체적이며 정적입니다. 인터페이스 변경하려면 일반적으로 3 개 이상의 회사와의 조정이 필요합니다 (기체 제조, Vender 1 Vender 2와 대화).

모든 정직으로 12 줄 코드 변경 비용은 170,000 달러로 상승 할 수 있습니다. 물론 500 라인 코드 변경은 $ 190,000입니다. 요컨대, 레벨 A 코드와 관련된 막대한 프로세스 오버 헤드 (레벨 B의 경우 훨씬 적고, C의 경우 훨씬 적고 레벨 D의 경우가 거의 없음) 작은 반복을 매우 비싸게 만듭니다. 즉. 작은 변화를 테스트하기 위해 완전히 연료를 공급 받고 비행 777을 얻는 데 많은 돈이 들었습니다. 대형 상업용 항공기의 시스템 테스트 랩조차도 매일 $ 10,000의 화상 속도를 가질 것입니다.

예 : 레벨 A : HUD, 스러스트 리버서, 파워 시스템, FADEC (엔진 제어) 레벨 B : 보조 스위칭 로직, 보컬 커뮤니케이션 시스템. 레벨 C : 비행 데이터 링크에서. 레벨 D : 비행 엔터테인먼트 시스템에서.

레벨 D 및 아마도 레벨 C는 민첩한 후보 일 수 있습니다.

보안 수요가 프로세스에 어떻게 통합되었는지에 달려 있다고 생각합니다. 그들이 추가 테스트 세트라면, 그것은 민첩한 프로그래밍과 모순되는 것이 아닙니다. 민첩한 방법은 민첩한 프로젝트가 폭포 프로젝트보다 품질이 높은 경향이 있기 때문에 더 안전한 소프트웨어를 생산하는 데 도움이 될 수 있다고 생각합니다. 중요한 것은 당신이 설치 한 추가 품질 보증도 민첩한 방법에 사용되는 것입니다.

그러나 보안 수요가 건물 처리에 적용되는 경우 민첩한 방법과 모순 될 수 있습니다.

실제로, V- 모델이라는 폭포 모델의 변형이 있으며, 예를 들어 IEC61508이 선호합니다. 그것은 폭포-소트이지만 기본 프로젝트주기의 재 구체 조항이 있습니다. 이 경우 재정의의 주요 목적은 프로세스의 다양한 단계에서 감지 된 문제를 처리하는 것입니다. 기본 아이디어는 나중에 문제를 겪을수록 문제를 돌보고 변경의 영향을 검토하기 위해 프로세스가 더 많이 돌아와야한다는 것입니다.

그래서 정말 민첩하지는 않지만 ... :-)

당신은 민첩한 접근법을 사용할 수 있지만 첫 번째 패스에는 안전 및 보안 측면을 포함하거나 최소한 제공해야하므로 발에 자신을 쏘지 않고 모든 것을 다시 쓰지 않도록해야합니다. 그러나 나는 브라이언에 동의합니다. 아마도 그러한 프로젝트에 폭포 접근법을 사용하는 것이 좋습니다.

Eurostar 2009 회의에서 Gittie Ottosen은 회사에서 민첩한 방법에 대해 이야기했습니다. 인상적인 것은이 회사입니다 체계적인 항공 공장, 군사 등을위한 소프트웨어를 만들고 있습니다. CMMI 5, ISO 9001 및 AQAP 150 & 2110을 준수하여 수행합니다. 따라서 Agile은 높은 규정을 가진 시스템에 적용될 수 있다고 생각합니다. 어쩌면 그 프레젠테이션을 찾아 보려고 노력하고 그에게서 더 많은 정보를 얻으려고 노력할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top