Sergei Vavinov (svv) wrote,
Sergei Vavinov
svv

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

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

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

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

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

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 42 comments