Types of issues with examples:
- User interface
- Some new customer-facing feature, or improvements to previous UI
- Responsiveness of UI
- Accessibility features
- Logic and arithmetic
- (bug) Bad logic or arithmetic
- (bug) Rounding errors; overflow or underflow; incorrect data conversions
- (bug) Outdated constants
- (bug) Infinite loops or recursions; off by one errors; failure to re-initialize a pointer
- (bug) Data type errors
- Resource bugs & load conditions
- (bug) Incorrect initialization
- (bug) Null arrow dereference
- (bug) Access violations
- (bug) Resource leaks
- (bug) Buffer overflow
- (bug) Required resources are not available
- (bug) Doesn't erase old files from mass storage
- (bug) Doesn't return unused memory
- Control flow
- New business logic, written from scratch, that has to do primarily with control flow
- (bug) Wrong returning state assumed
- (bug) Mishandling exceptions or errors
- (bug) Missing or incorrect defaults
- Interfacing
- Using new APIs, or updating previous APIs
- Using new platforms or systems, or updates to previous ones
- Protocol implementation; hardware handling; etc.
- Multi-threading bugs
- (bug) Deadlock
- (bug) Race conditions
- (bug) Time-of-check-to-time-of-use (TOCTOU) issues
- Other issues
- Unpropagated updates caused incorrect assumptions
- Documentation out of date or incorrect
- Some problem with a network connection; some server somewhere crashed
- Blocked because of dependencies on other teams
- Blocked because of some unbalance in the universe idk
- Investigating & learning some new tech skill or software
- Reading documentation when onboarding onto a new project
- Designing the tech docs for a new feature
- Miscellaneous
- Going through training
- Sitting in meetings
0 is an "off" day, e.g. for weekends and holidays.
I've had days where I'd be debugging, say, a synchronization issue, only to cause a null pointer bug myself. Then I'd be forced to figure out where in the code I went wrong. It's silly, but it happens.