Програмиране и шофиране

В книжката си за екстремно програмиране, Кент Бек прави интересна аналогия между разработката на софтуер и шофирането. Тя касае спецификациите. Големият мит на софтуерното разработване гласи, че първо клиента пише спецификация, след това програмистите правят дизайн и накрая го кодят. Поставя се една посока и след това се върви по нея. Кент Бек твърди, че по-скоро прилича на шофирането – дори на най-правото шосе, ако насочите колата право напред и пуснете волана, след най-много минута-две ще сте извън пътя. След като изберат посоката, шофьорите постоянно налагат малки корекции за да не напуснат платното. Така правят и софтуерните разработчици – в процеса на разработка постоянно да правят малки корекции по изискванията, кода и дизайна. Хрумна ми как тази метафора може да бъде доразвита. Continue reading

Софтуерни метафори

Наскоро започна твърде често да ми се налага да обяснявам процеса на разработка на „нетехнически лица“. И тъй като е бая сложно да говориш за рефакторинг, редизайн и итерации на хора, които просто мигат на тези думички, си припомних мъдростта на Стив МакКонъл. В Code Complete имаше цяла глава, посветена на метафори за софтуерното разработване – бе го сравнил с писане на жудожествен текст, градинарство, игра и прочее. Безспорно най-доброто сравнение беше с изграждането на някаква постройка. Наистина, „сградостроенето“ е доста сходно до това което ние правим като програмисти. И на двете места си говорим за „архитектура“ и „инженери“, планирането е адски важно и има огромна разлика между строенето на лятна кухня и небостъргач… Continue reading