Sergei Vavinov (svv) wrote,
Sergei Vavinov
svv

О системной инженерии и agile

Прослушал я тут пять лекций по системной инженерии, которые читает ailev.

Вот интересно, там постоянно подчёркивается, что системная инженерия это про то, чтобы принимать важные решения как можно раньше в жизненном цикле системы, чтобы потом не переделывать (и какими методами этого добиваться). В то время как теоретики agile ставят акценты ровно наоборот: «defer decisions to the last responsible moment».

Понятно, что и те, и те, хотят избежать rework. Но, видимо, первые много обжигались на том, что важные решения принимались слишком поздно (и вели к большим переделкам, т.к. были связаны с другими, уже принятыми ранее решениями, которые тоже приходилось пересматривать), а вторые обжигались на том, что важные решения принимались слишком рано, и потом связывали по рукам и ногам и не позволяли гибко реагировать на новые изменения. (Где «новые изменения» — это, конечно, те самые «важные решения, которые стали принимать слишком поздно», против чего и предостерегали системные инженеры.)

Вопрос в том, можно ли (для данной системы, с имеющимися методами...) гарантировать, что весь кластер взаимосвязанных важных решений удастся сосредоточить в начале жизненного цикла системы. Если надежда есть, то, конечно, берём водопадный системно-инженерный подход — и вперёд. В конце концов, это тавтологически истинно: если все решения, принятие которых может потребовать rework, принять заранее, то потом rework-а не будет. Но если в действительности добиться этого нереально (ряд важных решений обязательно потребуется позже), а действовать исходя из того, что это возможно — риски rework вырастут очень сильно.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 42 comments