اگر تا به حال در تيم‌هاي نرم‌افزاري حضور داشته‌ايد و پروژه‌هاي نرم‌افزاري پياده‌سازي نموده‌ايد، حتماً با اشكالاتي، برخورد كرده‌ايد. اگر خيلي خوش‌شانس باشيد، در شروع پروژه مشتري يا همان كلاينت، اطلاعات دقيقي را از سيستمي كه نياز دارد در اختيار شما قرار خواهد داد. اگر خيلي زرنگ و باز خوش‌شانس باشيد، در همان جلسه اول مصاحبه با مشتري مي‌توانيد تصويري كلي از نرم‌افزاري كه قرار است تهيه شود را در فكر خود تجسم كنيد و شروع به طراحي و پياده‌سازي قسمت ابتدايي برنامه نماييد. با اين حال صبر كنيد؛ انگار با مشكلي روبه‌رو شده‌ايد! بله كوچك‌ترين تغييري از طرف مشتري تمام برنامه شما را با مشكل روبه‌رو مي‌سازد و پروژه شما دچار تغييراتي مي‌شود. از جمله مشكلاتي كه ممكن است براي شما پيش بيايد، مي‌توان به موارد زير اشاره كرد:

- ممكن است ماجول‌هاي برنامه بسيار سخت طراحي شده باشند. در ابتدا برنامه‌نويسان كدهاي هر ماجول را بسيار منظم و قابل فهم براي ساير اعضاي تيم آماده مي‌كنند، ولي به مرور زمان و ايجاد تغييراتي در متن كدها، به كدهايي تبديل مي‌شوند كه فهميدن آن‌ها بسيار سخت خواهد بود.

- كدهاي نرم‌افزار ممكن است دچار تكرارهاي غيرضروري شوند و قطعه‌اي از كد چندين بار در طول برنامه تكرار شود كه در نتيجه باعث سردرگمي برنامه‌نويسان تيم خواهد شد و طبيعتاً تغييرات در برنامه را با مشكلاتي رو‌به‌رو خواهد كرد. مثلاً تصور كنيد كه در برنامه با اشكالي روبه‌رو شده‌ايد و آن را مرتفع كرده‌ايد، ولي وقتي برنامه را مجدداً كامپايل مي‌كنيد، متوجه مي‌شويد برنامه باز اشكال دارد. در نتيجه مجبور مي‌شويد تمام قسمت هايي را كه اين اشكال در آن وجود دارد، اصلاح كنيد.

- كدهاي برنامه ممكن است داراي اجزايي باشند كه جز افزودن پيچيدگي به برنامه سود ديگري نداشته باشند. اين اشكال معمولاً وقتي پيش ميآيد كه برنامه‌نويسان پروژه امكاناتي كه احتمال مي‌دهند در آينده به آن نياز است را از ابتدا در برنامه قرار مي‌دهند كه باعث پيچيدگي در متن برنامه خواهد شد.

- يكي از اشكالات ديگري كه ممكن است در پروژه‌هاي نرم‌افزاري پيش آيد اين است كه وقتي برنامه‌نويسان با اشكال يا تغييري در برنامه مواجه مي‌گردند، بيش از يك راه‌حل براي آن تغيير پيدا مي‌كنند. برخي از اين تغييرات قالب طراحي نرم‌افزار را حفظ مي‌كند و برخي تنها با هك كردن سورس‌كدها اين تغيير را به وجود مي‌آورند و اين كار باعث به‌هم ريختگي و از هم گسيختگي طراحي يك نرم‌افرار و كدهاي آن مي‌شود.

- معمولاً تغييرات در برنامه باعث شكنندگي سيستم نرم‌افزاري مي‌شوند.

- معمولاً از آنجا كه هر تغيير در برنامه باعث تغييراتي در قسمت‌هاي مختلف برنامه مي‌شود،  تغييرات در سيستم‌هاي نرم‌افزاري معمولاً دشوار است.

در مدل برنامه‌نويسي چابكانه اعضاي تيم با رعايت اصول اين مدل نرم‌افزاري نمي‌گذارند اشكالات ذكرشده در سيستم نرم‌افزاري به وجود آيد.