Daripada Where does the programming effort go?
Less than 10% of the code has to do with the ostensible purpose of the system; the rest deals with input-output, data validation, data structure maintenance, and other housekeeping.
Kurang daripada 10% daripada kod yang dihasilkan dapat dirasai atau diperlihatkan kepada pengguna; yang selebihnya berkaitan dengan input-output, data validation, data structure maintenance, dan lain-lain kerja yang remeh tetapi bila digabungkan dan dilihat secara keseluruhan adalah zahir dan intipati sistem tersebut.
Keadaan begini menyebabkan pengaturcara selalu diganggu oleh pengurus-pengurus (manager) yang tidak mempunyai latar belakang dalam pembangunan perisian ataupun tidak cuba untuk memahami apa yang diperlakukan oleh pengaturcara.
“Ini je?” adalah antara penyataan yang kerap kali disuarakan.
Agak bingit dan sakit hati bagi para pengaturcara yang penat lelah menghasilkan kod dan sebagainya untuk menjadikan perisian tersebut yang terbaik, diperlekehkan hasil kerjanya sebegitu. Bagaikan sesuatu disentap didalam dada. Luntur segala semangat dan keazaman yang sebelum ini membuak-buak didalam hati.
Mereka yang tahu serba sedikit mengenai programming kerap kali akan menyukarkan keadaan kerana mereka mungkin dapat bayangkan 10% daripada kerja yang akan dilakukan daripada keseluruhan projek. Ini adalah perkara biasa yang kerap kali saya bertemu.
Kerja-kerja yang remeh beginilah yang perlu kita ketahui dan juga adalah peluru bagi kita sebagai pengaturcara untuk mematahkan serangan pihak musuh yang cuba mempertikaikan hasil kerja kita.
Berikut adalah contoh non-functional requirement yang ada didalam sesuatu projek.
Security
• Login requirements – access levels, CRUD levels
• Password requirements – length, special characters, expiry, recycling policies
• Inactivity timeouts – durations, actions
Audit
• Audited elements – what business elements will be audited?
• Audited fields – which data fields will be audited?
• Audit file characteristics – before image, after image, user and time stamp, etc
Performance
• Response times – application loading, screen open and refresh times, etc
• Processing times – functions, calculations, imports, exports
• Query and Reporting times – initial loads and subsequent loads
Capacity
• Throughput – how many transactions per hour does the system need to be able to handle?
• Storage – how much data does the system need to be able to store?
• Year-on-year growth requirements
Availability
• Hours of operation – when is it available? Consider weekends, holidays, maintenance times, etc
• Locations of operation – where should it be available from, what are the connection requirements?
Reliability
• Mean Time Between Failures – What is the acceptable threshold for down-time? e.g. one a year, 4,000 hours
• Mean Time To Recovery – if broken, how much time is available to get the system back up again?
Integrity
• Fault trapping (I/O) – how to handle electronic interface failures, etc
• Bad data trapping – data imports, flag-and-continue or stop the import policies, etc
• Data integrity – referential integrity in database tables and interfaces
• Image compression and decompression standards
Recovery
• Recovery process – how do recoveries work, what is the process?
• Recovery time scales – how quickly should a recovery take to perform?
• Backup frequencies – how often is the transaction data, set-up data, and system (code) backed-up?
• Backup generations – what are the requirements for restoring to previous instance(s)?
Compatibility
• Compatibility with shared applications – What other systems does it need to talk to?
• Compatibility with 3rd party applications – What other systems does it have to live with amicably?
• Compatibility on different operating systems – What does it have to be able to run on?
• Compatibility on different platforms – What are the hardware platforms it needs to work on?
Maintainability
• Conformance to architecture standards – What are the standards it needs to conform to or have exclusions from?
• Conformance to design standards – What design standards must be adhered to or exclusions created?
• Conformance to coding standards – What coding standards must be adhered to or exclusions created?
Usability
• Look and feel standards – screen element density, layout and flow, colours, UI metaphors, keyboard shortcuts
• Internationalization / localization requirements – languages, spellings, keyboards, paper sizes, etc
Documentation
• Required documentation items and audiences for each item
Bagi sesuatu projek web, sedikit penambahan seperti captcha untuk borang(form), cross-browser testing (dapat dipaparkan pada pelbagai jenis browser seperti chrome, firefox, opera, safari dan juga IE 7/8/9), etc.

Dengan berbekalkan maklumat sebegini, kita dapat memberi penjelasan dan menerangkan serba sedikit perkara yang dilakukan dan berlaku disebalik tabir, moga hati dan mindanya terbuka untuk menerimanya, kalau tak, susah sikit la.
Selamat Programming!