Theory
શું project કરી શકો અને systemએ શું કરવું જોઈએ?
Problem clear થયા પછી બે મહત્વના questions આવે છે. પહેલો: તમારા time, skills અને resourcesથી project realistically કરી શકાય છે? આ feasibility study છે. બીજો: systemએ exactly શું કરવું જોઈએ? આ requirement analysis છે.
આ checks skip કરવાથી common student problems થાય છે: semester પૂરો થાય તે પહેલાં over-ambitious project half-built રહી જાય, અથવા teamને systemમાં શું બનાવવાનું છે તે અંગે agreement ન હોય. આ lesson તમને achievable project પસંદ કરવા અને 'done'નો અર્થ શરૂ પહેલાં સ્પષ્ટ કરવા મદદ કરે છે.
Theory
Feasibility: project realistic છે?
Feasibility study projectમાં મહિનાઓ invest કરતા પહેલાં પૂછે છે કે તેને ખરેખર deliver કરી શકાય છે કે નહીં. તેના common angles:
Technical: available technology અને તમારી skillsથી project બની શકે છે? Operational: તે practiceમાં કામ કરશે અને લોકો તેનો ઉપયોગ કરશે? Economic: cost benefit સામે યોગ્ય અને affordable છે? Schedule: available time, જેમ કે semester,માં project finish થઈ શકે છે?
Student project માટે time અને skill feasibility સૌથી મહત્વપૂર્ણ છે. સાચો પ્રશ્ન છે: 'શું અમે અમારી હાલની abilitiesથી આ project આ semesterમાં પૂરો કરી શકીએ?' જવાબ no હોય તો scope ઓછો કરો. Finished અને polished modest project હંમેશા ambitious પરંતુ unfinished project કરતાં સારું છે.
Theory
Requirements: functional અને non-functional
Requirement analysis નક્કી કરે છે કે systemએ શું કરવું જોઈએ, એટલી clarity સાથે કે બધા agree કરે અને તમે તેના આધારે build તથા test કરી શકો. Requirements બે પ્રકારની છે.
Functional requirements specific features અથવા behaviours છે: 'system studentને event માટે register કરવા દે' અથવા 'organiser attendee list જોઈ શકે'. તે system શું કરે છે તે બતાવે છે.
Non-functional requirements systemની qualities છે: performance ('page 2 secondsની અંદર load થવું જોઈએ'), security ('passwords securely store થવા જોઈએ'), usability અને reliability. તે system કેટલું સારું કરે છે તે બતાવે છે.
Good requirements clear, specific અને agreed હોય છે. તે building checklist અને testing criteria બંને બને છે.
Quiz
નીચેનામાંથી કઈ non-functional requirement છે?
- System studentને event માટે register કરવા દે
- System દરેક requestનો response 2 secondsમાં આપે અને passwords securely store કરે
- System organiserને attendee list જોવા દે
- System registration પછી confirmation email મોકલે
Show the answer
System દરેક requestનો response 2 secondsમાં આપે અને passwords securely store કરે
Non-functional requirements systemની QUALITIES, એટલે કે તે કેટલું સારું perform કરે છે, તે બતાવે છે. Option B response within 2 seconds performance અને secure password storage security વિશે છે, તેથી તે non-functional છે. Options A, C અને D specific features અથવા behaviours છે (register કરવું, attendees જોવા અને confirmation email મોકલવો), તેથી તે functional requirements છે. Difference યાદ રાખો: functional કહે છે system WHAT કરે છે; non-functional કહે છે તે HOW WELL કરે છે, જેમ કે speed, security, usability અને reliability.
Think first
Realistic scoping સૌથી મુશ્કેલ અને મહત્વપૂર્ણ planning skill કેમ છે?
ઘણા student projects scopeના કારણે fail કેમ થાય છે અને honest feasibility એટલી જરૂરી કેમ છે? પછી tap.
Show the answer
કારણ કે ambition રાખવી સરળ છે, પરંતુ project finish કરવો મુશ્કેલ છે. Student projects fail થવાનું common કારણ એ છે કે available time કરતાં વધારે work લઈ લેવામાં આવે છે. Honest feasibility એટલે જે ખરેખર deliver કરી શકો તેટલું scope નક્કી કરવું.
Grand project plan કરવો tempting છે: ઘણી features, cutting-edge technology અને panelને impress કરવાનું લક્ષ્ય. પરંતુ semester ટૂંકો હોય છે, skills develop થઈ રહી હોય છે અને bugs, integration problems, learning curves તથા personal responsibilitiesને કારણે development ધાર્યા કરતાં વધુ સમય લે છે. Over-scoped projectમાં અંતે core features અધૂરાં અને polish વગર રહી જાય છે.
Counter-intuitive truth એ છે કે SMALL, COMPLETE અને well-executed project large પરંતુ broken project કરતાં વધુ impressive છે. તે બતાવે છે કે તમે problem define, plan, build, test અને finish કરી શકો છો: આ actual skill assess થાય છે. સાચું પ્રશ્ન પૂછો: 'શું અમે આ project available timeમાં પૂરો કરી શકીએ?' જવાબ no હોય તો scope cut કરો અને core features સારી રીતે build કરો.
Extra featuresને 'future scope' તરીકે reportમાં લખી શકો છો. આ ambition બતાવે છે, પરંતુ actual build achievable રહે છે. Realistic scoping weakness નહીં, maturity છે. Small and done beats big and broken.
Summary
Key takeaways
- Problem define કર્યા પછી feasibility check કરો અને requirements analyse કરો.
- Feasibility study પૂછે છે: project realistically થઈ શકે છે? Technical, operational, economic અને schedule feasibility check કરો.
- Student projectમાં time અને skill feasibility સૌથી મહત્વપૂર્ણ છે; semesterમાં finish કરી શકો તે પ્રમાણે scope રાખો.
- Requirement analysis systemએ શું કરવું જોઈએ તે clear રીતે define કરે છે.
- Functional requirements systemના specific features અને behaviours બતાવે છે; non-functional requirements performance, security, usability જેવી qualities બતાવે છે.
- Good requirements clear, specific અને team દ્વારા agreed હોવા જોઈએ; તે build checklist અને test criteria બને છે.
- Memory hook: પહેલાં check કરો 'શું આપણે finish કરી શકીએ?', પછી functional (what) અને non-functional (how well) requirements define કરો.