𝗪𝗵𝘆 𝗠𝗼𝘀𝘁 𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗜𝘀 𝗕𝘂𝗶𝗹𝘁 𝗕𝗮𝗰𝗸𝘄𝗮𝗿𝗱𝘀

મોટાભાગનું સોફ્ટવેર ઉલટી રીતે બનાવવામાં આવે છે.

આવું એટલા માટે થાય છે કારણ કે લોકો ખોટી બાબતોને પ્રોત્સાહન આપે છે.

ફીચર્સ (Features) પર ધ્યાન આપવામાં આવે છે. આર્કિટેક્ચર (Architecture) પર નહીં. જાહેરાતો પર ધ્યાન આપવામાં આવે છે. ડોક્યુમેન્ટેશન (Documentation) પર નહીં. નવી ક્ષમતાઓ પર ધ્યાન આપવામાં આવે છે. મેન્ટેનન્સ (Maintenance) પર નહીં.

ટીમો દેખીતી બાબતોથી શરૂઆત કરે છે. તેઓ પાયા (foundation) ને અવગણે છે.

સોફ્ટવેરના સામાન્ય પ્રશ્નો ખોટા તબક્કા પર ધ્યાન કેન્દ્રિત કરે છે:

  • આપણે કયા ફીચર્સ બનાવવા જોઈએ?
  • ડેશબોર્ડ કેવું દેખાવું જોઈએ?
  • આપણે કયા ઇન્ટિગ્રેશન્સ (integrations) ને સપોર્ટ કરવા જોઈએ?
  • આપણે હવે પછી શું જાહેર કરી શકીએ?

આ પ્રશ્નો ખૂબ વહેલા પૂછવામાં આવે છે. ફીચર્સ બનાવતા પહેલા તમારે સિસ્ટમ (system) ને સમજવી જોઈએ.

ઘર બનાવવાનું વિચારો. તમે રંગો પસંદ કરવાથી શરૂઆત નથી કરતા. તમે આનાથી શરૂઆત કરો છો:

  • પાયો (The foundation)
  • માળખું (The structure)
  • પ્લમ્બિંગ (The plumbing)
  • ઇલેક્ટ્રિકલ સિસ્ટમ (The electrical system)

દેખીતી વિગતો અદ્રશ્ય સિસ્ટમો પર આધારિત હોય છે. સોફ્ટવેર પણ આ જ રીતે કામ કરે છે.

યુઝર ઇન્ટરફેસ (User interface) દેખીતો છે. આર્કિટેક્ચર દેખાતું નથી. ફીચર્સ દેખીતા છે. તેમને ટેકો આપતી સિસ્ટમો દેખાતી નથી.

સિસ્ટમ નક્કી કરે છે કે સોફ્ટવેર સફળ થશે કે નહીં.

ફીચર્સ વ્યક્તિગત સમસ્યાઓનો ઉકેલ લાવે છે. સિસ્ટમ્સ સમસ્યાઓના સમૂહનો ઉકેલ લાવે છે. ફીચર્સ કાર્યક્ષમતા (functionality) બનાવે છે. સિસ્ટમ્સ સુસંગતતા (consistency) બનાવે છે.

જો ફીચર્સ પર ધ્યાન આપશો તો જટિલતા (complexity) વધશે. જો સિસ્ટમ્સ પર ધ્યાન આપશો તો જટિલતા વ્યવસ્થિત થશે.

ડોક્યુમેન્ટેશન સત્ય રજૂ કરે છે. સારી રીતે ડિઝાઇન કરેલી સિસ્ટમમાં સ્પષ્ટ ડોક્યુમેન્ટેશન હોય છે. ખરાબ રીતે ડિઝાઇન કરેલી સિસ્ટમને લાંબા અને જટિલ ખુલાસાઓની જરૂર પડે છે. જો કોઈ વર્કફ્લો (workflow) માટે પેજ ભરીને સૂચનાઓની જરૂર પડતી હોય, તો કદાચ તે વર્કફ્લો જ સમસ્યા છે.

યુઝર્સ વ્યક્તિગત ફીચર્સનો અનુભવ નથી કરતા. તેઓ સિસ્ટમનો અનુભવ કરે છે.

યુઝર્સ આ જોતા નથી:

  • Authentication
  • APIs
  • Database queries
  • Deployment pipelines

યુઝર્સ આનો અનુભવ કરે છે:

  • વિશ્વસનીયતા (Reliability)
  • ઝડપ (Speed)
  • સરળતા (Simplicity)
  • આત્મવિશ્વાસ (Confidence)

આ લાગણીઓ સમગ્ર સિસ્ટમમાંથી આવે છે.

ઉલટી રીતે બનાવવું સમજવું સરળ છે. ફીચર્સ સ્ક્રીનશોટમાં સમાઈ જાય છે. તમે ફીચરની જાહેરાત કરી શકો છો. તમે સિસ્ટમની જાહેરાત સરળતાથી કરી શકતા નથી.

અદ્રશ્ય કાર્ય સૌથી વધુ મૂલ્ય ઊભું કરે છે.

મેં મારો અભિગમ બદલ્યો. મેં પ્રોજેક્ટને કયા ફીચર્સની જરૂર છે તે પૂછવાનું બંધ કર્યું. હું હવે એ પૂછવાનું શરૂ કરું છું કે હું કઈ સિસ્ટમ બનાવી રહ્યો છું.

સિસ્ટમ મર્યાદાઓ (constraints) બનાવે છે. સિસ્ટમ પ્રાથમિકતાઓ (priorities) બનાવે છે. સિસ્ટમ દિશા બનાવે છે.

જ્યારે પાયો તૈયાર હોય ત્યારે ફીચર્સ બનાવવાનું સરળ બની જાય છે.

સફળ પ્રોડક્ટ્સ પાસે માત્ર ઘણા ફીચર્સ જ નથી હોતા. તેમની પાસે વિચારપૂર્વકની સિસ્ટમ્સ હોય છે. વર્કફ્લો કુદરતી લાગે છે. અનુભવ હેતુપૂર્વકનો (intentional) લાગે છે.

દેખાતા ભાગોથી શરૂઆત કરવાનું બંધ કરો. સૌ પ્રથમ સિસ્ટમ બનાવો. ફીચર્સને તેમાંથી આપમેળે ઉદભવવા દો.

સ્ત્રોત: https://dev.to/stinklewinks/why-most-software-is-built-backwards-46i