JavaRush /Java блогу /Random-KY /Программалык камсыздоону иштеп чыгуу методологиялары
Миха Писаренко
Деңгээл
Киев

Программалык камсыздоону иштеп чыгуу методологиялары

Группада жарыяланган
Салам. Акыркы эки интервьюда менден методология тууралуу сурашты. Бул эң маанилүү же татаал суроо эмес, бирок жооп үчүн алдамчылык баракчасы болсо жакшы болот. Бул макалада мен өнүктүрүү методологиясы деген эмне жөнүндө түшүнүк берүүгө аракет кылам жана жеке өзүм жолуккан же суралгандарды салыштырып көрөм. Программалык камсыздоону иштеп чыгуу методологиялары - 1Программалык камсыздоону иштеп чыгуу методологиясы – бул конкреттүү продукт кантип иштелип чыгаарын сүрөттөп берүү процесси, башкача айтканда, команданын иштеп чыгуусун уюштуруунун жолдорунун бири. Мындай процесстин көптөгөн ар кандай моделдери бар, алардын ар бири өзүнүн мамилесин сүрөттөйт жана алардын арасында ар бир долбоордо колдонулушу керек болгон бирөө бар деп айтууга болбойт, бардыгы таза кырдаалдык. Мен алардын үчөөнү кененирээк карап чыгууну сунуш кылам.

Шаркыратма

Шаркыратма (каскад, шаркыратма) эң эски методологиялардын бири болуп саналат жана бардык этаптарды катуу ырааттуу ишке ашырууну билдирет, алардын ар бири кийинкиси башталганга чейин бүтүшү керек. Башкача айтканда, кийинки этапка өтүү мурунку боюнча иштин толук бүтүшүн билдирет. Сүрөттө адегенде биз тапшырманы талдайбыз (documentтик тапшырмалар, кыйынчылыктарды талкуулайбыз), андан кийин долбоорлоо (бул этапта долбоордун структурасы түзүлөт), андан кийин codeдоо жана тестирлөө жүргүзүлөт. Кийинки этаптар үчүн эч кандай кайтарым жок. Мындай системаны талаптары алдын ала белгилүү болгон жана алардын өзгөрүү ыктымалдыгы аз болгон чакан долбоорлордо колдонуу сунушталат. Программалык камсыздоону иштеп чыгуу методологиялары - 2Артыкчылыктары:
  • Ар бир этапта толук жана ырааттуу documentтер;
  • колдонуунун жөнөкөйлүгү;
  • Туруктуу талаптар.
  • Бюджет жана мөөнөттөр алдын ала белгиленген
Кемчorктери:
  • Документтердин чоң көлөмү;
  • Өтө ийкемдүү система эмес;
  • Кардар буюмдун демо versionсын көрө алbyte;
  • Бир кадам артка кайтууга жол жок.

Scrum

Scrum - бул программалык камсыздоону иштеп чыгуу тутуму, бул процессти итерацияларга бөлүүгө негизделген, мында алардын ар биринин аягында команда продуктунун демо versionсын берүүгө даяр. Сүрөт команда өнүгүүнүн бардык этаптарын параллелдүү басып өткөнүн көрсөтүп турат, бул бизге ар бир итерациянын аягында долбоордун даяр бөлүгүнө ээ болууга мүмкүндүк берет. Программалык камсыздоону иштеп чыгуу методологиялары - 3Мен методологиянын маңызын жөнөкөй сөздөр менен кыскача түшүндүрүүгө аракет кылам, бирок бул жерде терминдер көп. Эң негизгиси маңызын түшүнүп, терминдер тажрыйба менен эсте калат деп ойлойм. Бардык өнүгүү спринттерге бөлүнөт (көбүнчө 2-3 жума). Бардык иштеп чыгуу мезгor үчүн жана ар бир спринт үчүн өзүнчө артта калуу (милдеттердин тизмеси) бар . Ар бир тапшырманын өзүнүн окуясы бар (кыйынчылык рейтинги). Процесстин ар бир катышуучусунун ролу бар:
  • Scrum командасы - бул долбоордун үстүндө иштеген команда (иштеп чыгуучулар, тестерлер, дизайнерлер).
  • Scrum Master - бул Scrum принциптеринин сакталышын камсыз кылган адам.
  • Продукт ээси - кардар.
Бул системада байланышка басым жасалгандыктан, көп сандагы митингдер бар:
  • Stand-up бул кыска жолугушуу, күн сайын өткөрүлөт, команданын бардык мүчөлөрү катышат жана ар бир катышуучу 3 суроого жооп берет: эмне кылдыңыз? Ал эмне кылат? Жана блокаторлор деген эмне?
  • Пландоо – спринттин башында өткөрүлөт жана бул жыйында кийинки спринтте кандай тапшырмалар аткарылышы керектиги аныкталат.
  • Ретроспектива спринттин аягында өткөрүлөт жана анын маңызы эмне жакшы жасалганын жана эмнени жакшыртууга болоорун билүү болуп саналат.
Артыкчылыктары:
  • Кардар иштеп чыгуу процессинде натыйжаны байкай алат.
  • Өнүгүү процессине күнүмдүк көзөмөл.
  • Өнүгүү учурунда оңдоолорду киргизүү мүмкүнчүлүгү.
  • Команданын бардык мүчөлөрү менен жакшы жолго коюлган байланыш.
  • Кичинекей documentтердин көлөмү.
Кемчorктери:
  • Иштеп чыгуу үчүн талап кылынган эмгекти жана чыгымдарды баалоо кыйын
  • Өнүгүү башталганга чейин эң чоң тоскоолдуктарды аныктоо кыйын.
  • Команданын башка мүчөлөрүн өнүктүрүүгө бардыгын тартуу зарылчылыгы.

Канбан

Канбан - бул команданын тапшырмаларын аткаруу процессин визуализациялоого негизделген система. Бул системадагы негизги идея учурда аткарылып жаткан тапшырмалардын санын кыскартуу ("орындалууда" тилкесинде).Scrumда команда спринттерди ийгorктүү бүтүрүүгө багытталган, Канбанда тапшырмалар биринчи орунда турат. Негизги функционалдуулук мурунтан эле иштелип чыккан жана минималдуу жакшыртуулар жана мүчүлүштүктөрдү оңдоо калган колдоо баскычында турган долбоорлор үчүн жакшы. Канбанда тапшырмалар жекече берилет. Тапшырма, башка тапшырмаларга карабастан, тактадагы бардык этаптардан өтөт жана ал бүтөөрү менен кардарга көрсөтүлүшү мүмкүн. Канбан тактасы мамычалардан турат, алардын ар бири өзүнчө иштеп чыгуу процессин билдирет. Кээ бир мамычалар (мисалы, аткарылууда) ал жерде болушу мүмкүн болгон тапшырмалардын санына чектөөлөрдү киргизет. Бул тапшырмаларды бөлүштүрүүдө көйгөйлүү жерлерди оңой жана тез табууга жардам берет. Сүрөттө ушундай жөнөкөй тактанын мисалы көрсөтүлгөн. Мамычалардын жана аталыштардын саны ар кандай болушу мүмкүн, бирок мен эң кеңири таралгандарын атайм: Программалык камсыздоону иштеп чыгуу методологиялары - 4
  • Эмне кылуу - аткарылышы керек болгон иштердин тизмеси
  • Аткарылууда – учурда үстүндө иштеп жаткан милдеттер
  • Кодду карап чыгуу – аткарылган жана кароого жөнөтүлгөн тапшырмалар
  • Тестте – тестирлөөгө даяр тапшырмалар
  • Бүттү – аткарылган тапшырмалар.
Артыкчылыктары:
  • Колдонуу оңой.
  • Визуализация (тоскоолдуктарды табууга жардам берет, түшүнүүнү жеңилдетет)
  • Процесстин өзүнө жогорку команданын катышуусу.
  • Өнүгүүдөгү жогорку ийкемдүүлүк.
Кемчorктери:
  • Туруксуз тапшырмалар тизмеси.
  • Узак мөөнөттүү долбоорлордо колдонуу кыйын.
  • Катуу мөөнөттөр жок.

Жыйынтыктап айтканда, программалык камсыздоону иштеп чыгуу методологиясы

Менин оюмча, жетекчorк кызматтарды ээлеген же аларга умтулган адамдар программалык камсыздоону иштеп чыгуунун методологиясын жакшы түшүнүшү керек, бирок ар бир адам жок дегенде негиздерин түшүнүү максатка ылайыктуу. Бул өнүгүү процессинин ажырагыс бөлүгү жана IT тармагында гана эмес колдонулат. Менин макаламды окууга убакыт бөлгөнүңүз үчүн рахмат, сизге пайдалуу болду деп ишенем. Мен негизги пункттарды гана мүмкүн болушунча так жана кыска сүрөттөөгө аракет кылдым, ошондуктан макала толук эмес. Бул тууралуу сиздин пикириңизди угуп, суроолоруңузга жооп берүүгө кубанычта болом. Баарына жакшылык!
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION