Big design up front
બિગ ડિઝાઇન અપ ફ્રન્ટ (બી. ડી. યુ. એફ.) એ સોફ્ટવેર ડેવલપમેન્ટ અભિગમ છે જેમાં પ્રોગ્રામની ડિઝાઇન પૂર્ણ કરવાની હોય છે અને તે પ્રોગ્રામનું અમલીકરણ શરૂ થાય તે પહેલાં તેને પૂર્ણ કરવાની હોય છે. તે ઘણીવાર સોફ્ટવેર વિકાસના ધોધ મોડેલ સાથે સંકળાયેલું છે. બિગ ડિઝાઇન અપ ફ્રન્ટ (બી. ડી. યુ. એફ.) માટે સમાનાર્થી શબ્દો બિગ મોડેલિંગ અપ ફ્રન્ટ (બી. એમ. યુ. એફ.) અને બિગ રિક્વાયરમેન્ટ અપ ફ્રન્ટ (બી. આર. યુ. એફ.) છે. આને ચપળ સોફ્ટવેર વિકાસમાં વિરોધી પેટર્ન તરીકે જોવામાં આવે છે. વોટરફોલ મોડેલના સમર્થકો માટેની દલીલો એવી દલીલ કરે છે કે ડિઝાઇનિંગમાં ખર્ચવામાં આવેલો સમય એક સાર્થક રોકાણ છે, એવી આશા સાથે કે સોફ્ટવેર પ્રોડક્ટના જીવનચક્રના પ્રારંભિક તબક્કામાં બગને ઠીક કરવામાં ઓછો સમય અને પ્રયત્ન ખર્ચવામાં આવશે જ્યારે તે જ બગ મળી આવે છે અને પછીથી તેને ઠીક કરવો આવશ્યક છે. એટલે કે, અમલીકરણના તબક્કામાં તે જ ભૂલને ઠીક કરવા કરતાં જરૂરિયાતના તબક્કામાં જરૂરિયાતોની ભૂલને ઠીક કરવી ખૂબ સરળ છે, કારણ કે અમલીકરણના તબક્કામાં જરૂરિયાતોની ભૂલને ઠીક કરવા માટે ઓછામાં ઓછા કેટલાક અમલીકરણ અને ડિઝાઇન કાર્યને સ્ક્રેપ કરવાની જરૂર છે જે પહેલેથી જ પૂર્ણ થઈ ગયું છે. સોફ્ટવેર ડેવલપમેન્ટ પર લોકપ્રિય ઓનલાઇન ટીકાકાર જોએલ સ્પોલ્સ્કીએ મોટી ડિઝાઇનની તરફેણમાં ભારપૂર્વક દલીલ કરી છેઃ "ઘણી વખત, વસ્તુઓને અગાઉથી વિચારવાથી આપણને પછીથી ગંભીર વિકાસ માથાનો દુખાવો બચી ગયો. . [ચોક્કસ સ્પષ્ટીકરણમાં ફેરફાર કરવા પર]. વિશિષ્ટતામાં આ ફેરફાર કરવામાં એક કે બે કલાકનો સમય લાગ્યો. જો આપણે કોડમાં આ ફેરફાર કર્યો હોત, તો તે સમયપત્રકમાં અઠવાડિયા ઉમેર્યા હોત. હું તમને કહી શકતો નથી કે હું બિગ ડિઝાઇન અપ ફ્રન્ટમાં કેટલો મજબૂત રીતે વિશ્વાસ કરું છું, જેને એક્સ્ટ્રીમ પ્રોગ્રામિંગના સમર્થકો અભિશાપ માને છે. મેં સતત સમય બચાવ્યો છે અને બી. ડી. યુ. એફ. નો ઉપયોગ કરીને વધુ સારા ઉત્પાદનો બનાવ્યા છે અને મને તેનો ઉપયોગ કરવા પર ગર્વ છે, ભલે એક્સ. પી. કટ્ટરપંથીઓ ગમે તે દાવો કરે. તેઓ આ મુદ્દે ખોટા છે અને હું તેનાથી વધુ સ્પષ્ટ ન હોઈ શકું. જો કે, કેટલાક વિવેચકોએ એવી દલીલ કરી છે કે જેને જોએલ મોટી ડિઝાઇન કહે છે તે બી. ડી. યુ. એફ. જેવી નથી જેની એક્સ. પી. અને અન્ય ચપળ સોફ્ટવેર વિકાસ પદ્ધતિઓના હિમાયતીઓ દ્વારા ટીકા કરવામાં આવી હતી કારણ કે તેઓ પોતે કહે છે કે તેમનું ઉદાહરણ ન તો સંપૂર્ણ પ્રોગ્રામ ડિઝાઇન હતું અને ન તો સંપૂર્ણ રીતે પૂર્ણ થયું હતું. જેમ જેમ આપણે ઉત્પાદન બનાવવાનું શરૂ કરીએ છીએ, તેમ તેમ આપણે ઘણી બધી વસ્તુઓ શોધી કાઢીશું જે યોજના મુજબ બરાબર કામ કરશે નહીં. અમે નવી સુવિધાઓની શોધ કરીશું, અમે વસ્તુઓ બદલીશું, અમે શબ્દોને સુધારીશું, વગેરે. જેમ જેમ વસ્તુઓ બદલાશે તેમ તેમ અમે સ્પષ્ટીકરણોને અદ્યતન રાખવાનો પ્રયાસ કરીશું. કોઈ પણ રીતે તમારે આ વિશિષ્ટતાને કોઈ પ્રકારનો પવિત્ર, કાસ્ટ-ઇન-સ્ટોન કાયદો ગણવો જોઈએ નહીં. ટીકાકારો સામે દલીલો (ખાસ કરીને જેઓ ચપળ સોફ્ટવેર વિકાસની પ્રેક્ટિસ કરે છે) એવી દલીલ કરે છે કે બી. ડી. યુ. એફ. બદલાતી જરૂરિયાતો માટે નબળી રીતે અનુકૂળ છે અને બી. ડી. યુ. એફ. ધારે છે કે ડિઝાઇનર્સ વ્યાપક પ્રોટોટાઇપિંગ અને અમલીકરણમાં ઓછામાં ઓછા કેટલાક રોકાણ વિના સમસ્યાના ક્ષેત્રોની આગાહી કરવામાં સક્ષમ છે. નોંધપાત્ર પ્રોજેક્ટ્સ માટે, વપરાશકર્તાઓની જરૂરિયાતોને પ્રારંભિક ડિલિવરેબલ્સના પ્રકાશમાં શુદ્ધિકરણની જરૂર છે, અને મોટા પ્રોજેક્ટ્સ પૂર્ણ થાય તેના કરતા વધુ ઝડપથી વ્યવસાયની જરૂરિયાતો વિકસિત થાય છે-જે સિસ્ટમ પૂર્ણ થાય ત્યાં સુધીમાં મોટી ડિઝાઇનને જૂની બનાવે છે. તેઓ એવો પણ દાવો કરે છે કે આયોજનમાં વિતાવેલા સમય અને ખામી સુધારવામાં ખરેખર ખર્ચ થશે તે સમય વચ્ચે સંતુલિત કરવા માટે એક ઓવરહેડ છે. આને કેટલીકવાર વિશ્લેષણ લકવો કહેવામાં આવે છે. જો આયોજનનો ખર્ચ ફિક્સિંગના ખર્ચ કરતાં વધારે હોય તો આયોજનમાં ખર્ચવામાં આવેલો સમય વેડફાય છે. સતત જમાવટ, સ્વચાલિત સુધારાઓ અને સંબંધિત વિચારો ઉત્પાદનમાં ખામીઓના ખર્ચને નોંધપાત્ર રીતે ઘટાડવાનો પ્રયાસ કરે છે જેથી તેઓ શરૂઆતમાં આયોજન કરતાં રન-ટાઇમમાં સુધારવા માટે સસ્તા બને. વાસ્તવમાં, રન-ટાઇમ ફિક્સેસ ડિઝાઇન ફિક્સેસ કરતાં વધુ ખર્ચાળ છે, તેથી વિકાસ ચક્ર દરમિયાન સમસ્યાઓનું સમાધાન કરવા માટે વિકાસ દરમિયાન વારંવાર પ્રદર્શન અને વપરાશકર્તા પ્રતિસાદ જેવી ચપળ પદ્ધતિઓનો ઉપયોગ કરવો મહત્વપૂર્ણ છે. વપરાશકર્તા પ્રતિસાદના લાભ સાથે સોફ્ટવેરમાં સુધારો કરવો એ સામાન્ય રીતે બી. ડી. યુ. એફ. સાથે સિસ્ટમના દરેક પાસાની અપેક્ષા અને દસ્તાવેજીકરણ કરવાનો પ્રયાસ કરતાં ઓછો ખર્ચાળ છે. ઉપરાંત, મોટાભાગના પ્રોજેક્ટ્સમાં વ્યાપક લેખિત (અથવા તો જાણીતી) આવશ્યકતાઓનો નોંધપાત્ર અભાવ છે. તેથી બી. ડી. યુ. એફ. માં ઘણી ધારણાઓ કરવામાં આવે છે જે પાછળથી ખોટી સાબિત થાય છે પરંતુ ડિઝાઇન કરવામાં આવે છે અને સંભવતઃ પહેલેથી જ કોડેડ છે. વૈકલ્પિક અભિગમ રફ ડિઝાઇન અપ ફ્રન્ટ (આર. ડી. યુ. એફ.) છે જેમાં પ્રોજેક્ટની પ્રગતિ સાથે ડિઝાઇનની વિગતવાર રચના કરવા માટેનું માળખું પૂરું પાડવા માટે 'પર્યાપ્ત' ડિઝાઇન પૂર્ણ કરવામાં આવે છે. જોશુઆ કેરીવ્સ્કી દ્વારા સમાન અભિગમને પર્યાપ્ત ડિઝાઇન કહેવામાં આવ્યો છેઃ "હું કહું છું કે આપણને આપણા ઉત્પાદનો માટે મહત્વપૂર્ણ હોય તેવી સામગ્રી માટે ઉચ્ચ ડિઝાઇન ગુણવત્તાની જરૂર છે અને જટિલ ન હોય તેવી સામગ્રી માટે ઓછી ડિઝાઇન ગુણવત્તાની જરૂર છે". સ્ક્રમના વકીલો ઇમર્જન્ટ ડિઝાઇનના ખ્યાલનો સંદર્ભ આપે છેઃ "સ્ક્રમ પ્રોજેક્ટ પરનો તફાવત એ નથી કે ઇરાદાપૂર્વકની ડિઝાઇનને બહાર ફેંકી દેવામાં આવે છે, પરંતુ તે (સ્ક્રમ પ્રોજેક્ટ પરની દરેક વસ્તુની જેમ) ક્રમિક રીતે કરવામાં આવે છે". સોફ્ટવેર વિકાસ ફિલસૂફીઓની યાદી સંદર્ભો સોફ્ટવેર વિકાસ પ્રક્રિયા પણ જુઓ.