[소프트웨어공학] 사례로 배우는 소프트웨어 공학 실무

2019. 7. 2. 20:30CS/소프트웨어공학

반응형
[소프트웨어 공학 : 왜, 무엇을, 어떻게?] Week 1 사례로 배우는 소프트웨어 공학 실무

[소프트웨어 공학 : 왜, 무엇을, 어떻게?] Week 1 사례로 배우는 소프트웨어 공학 실무

해당 포스트는 K-MOOC 소프트웨어 공학 : 왜, 무엇을, 어떻게? 강의를 바탕으로 작성되었습니다.
학습 목표

  • 우리 나라의 SW 산업 현황과 문제점 이해

  • 사례 분석을 통한 소프트웨어 공학의 필요성 파악

우리 소프트웨어 산업은 왜 지지부진한가?

  1. 환경적인 요인

    • 세계 소프트웨어 시장에서 차지 하는 낮은 비중

    • 제조 산업에서 인정 받지 못하는 H/W와 S/W의 차이

    • 공급 과잉 현상으로 제값 받기 어려움

  2. 소프트웨어 인식 부족

  3. 소프트웨어 품질 역량 부족

  4. 소프트웨어 전문 인력 부족

  5. 소프트웨어 프로세스 역량 부족

주요 원인은?

  • 소프트웨어의 제strong text값을 받지 못한다는 것

    • 소프트웨어 존재하지 않는 제조 비용

    • 제조업과 소프트웨어 산업 차이에 대한 인식 부족

다른 사람이 만든 SW의 값 어치를 인정하지 않으면서 내가 만든 SW의 값어치는 인정 받으려고 한다.

소프트웨어에 대한 올바른 인식은 왜 중요한가?

중요 Point: 소프트웨어를 이용해서 자신의비즈니스 이익얼마나 창출해낼 수 있느냐

ex) facebook의 whats App` 인수

소프트웨어 특성

  • 눈에 보이지 않음

  • 제조비용이 들지 않음

  • 시장 진입의 투자 필요 없음

  • 심한 생산성 격차

1명의 유능한 인재가 만 명을 먹여 살릴 수 있음

소프트웨어 defect zero 는 가능한가?

defect zero를 위한 기업의 노력

  • 1,000줄당 산업체 평균 약 15 ~ 50개 정도의 defect

    • 보통 1,000줄당 20~30개 정도의 defect가 있음

성공하는 프로젝트의 조건 = 사용하는 고객의 불만이 가장 적은 프로젝트로 잡고,
결함 수를 모니터링하여 적정한 수준으로 유지할 수 있게 함
-> 최상의 프로세스 개선 활동을 통한 품질개선 활동

품질 우선 전략 vs 비즈니스 우선 전략

  • 품질 제일 주의 : 다양한 시도를 통한 최고의 품질 찾기

  • 비즈니스 입장 : 이익창출을 위한 최고의 조건 찾기

결론

비즈니스 전략과 품질 전략을 적절하게 타협하는 역량 필요

Black box vs White box

둘 중, 나에게 더 좋은 것은?

  • Black box : 과정을 볼 수 없고 결과물만 보임

    • 장점

      • 시간의 효율적인 관리 가능

      • 관리자의 관리를 최소로 받음

      • 엔지니어로서의 노하우를 지킴

        • 개발자의 중요한 경쟁력

    • 단점

      • 관리자는 불안감을 가짐

      • 문제가 심각해지기 전까지 알 수 없음

      • Best practice가 외부에 잘 알려지지 않음

        • 실무적인 일을 해결하는 방법

      • 전문가 양성이 되지 않음

        • specialist를 키울 수 없는 구조

  • White box : 과정을 볼 수 있고 관리할 수 있는 절차

개발 프로젝트 buffer, 시간과 연관 됨.
철저한 시간 관리는 프로젝트 관리에 잘 활용 되어야 함

SW 경쟁력은 무엇일까?

  1. 남이 할 수 없는 것을 내가 소프트웨어로 할 수 있다.

    • amazon, facebook, google 등..

  2. 남보다 내가 소프트웨어를 더 잘할 수 있다.

    • apple (값싼 하드웨어 + 고급 소프트웨어)

소프트웨어의 성공 요인

프로세스 개선을 통해 얻을 수 있는 요인
(프로젝트 예상 기간, 공수에 맞게 개발할 수 있도록 개선)

  1. 가시화 : 눈에 보이지 않는 걸 보이게 해주는 것
    => 눈에 보이게 자료를 만들어 신규 프로세스 시작 시 정확한 예산을 요구할 수 있다.

  2. 가치화 : 프로젝트 예상 기간을 줄이면 인력을 운용하고 프로젝트를 관리하는데 훨씬 많은 가치가 생겨남

  3. 내재화 : 개발자 스스로 제대로 된 데이터를 만들고, 제대로 된 소프트웨어를 개발함.

혁신을 위해 창의적인 생각을 하는 인재양성 중요함

  • 공학적 접근, 조직, 관리 등 다양한 측면에서 조직의 역량 강화

  • 소프트웨어 경쟁력의 두 축 : 혁신, 개선 => 보완관계

반응형