Eliminating Magic Numbers with Tom van Stiphout and Kim Young

Ever inherited an Access project where every number in the code is a mystery and every business rule exists only in someone's head?

Tom van Stiphout and Kim Young shared decades of hard-won experience about transitioning Access projects between developers at a recent Access Pacific user group meeting. Their presentation covered everything from initial project assessment techniques to establishing sustainable development practices that protect both outgoing and incoming developers. The discussion emphasized that successful transitions require far more than just handing over code—they demand structured approaches to documentation, testing, and stakeholder relationships.

Whether you're preparing to hand off a project or stepping into someone else's work, this comprehensive guide offers practical strategies for making developer transitions smoother, safer, and more successful.

Understanding Your Work Environment

Key Stakeholders and Relationships

  • IT Department Integration: Understand their Access policies, SQL backend preferences, and deployment procedures
  • Business Unit Mapping: Identify which departments use the application and their geographic distribution
  • Power User Identification: Find the departmental experts who understand both the business processes and application functionality
  • Management Structure: Know who makes decisions, approves changes, and controls budgets

Company Standards and Procedures

  • Documentation Requirements: Determine what standards exist and how they're enforced
  • Testing Protocols: Understand current testing procedures or help establish them
  • Deployment Processes: Learn the rollout procedures and who needs to be involved
  • Code Review Practices: Assess whether peer reviews are standard or need implementation

Project Assessment Techniques

Database Quality Analysis

Tom demonstrated using automated scanners to quickly assess database health within minutes:

  • Relationship Analysis: Check the relationships window for proper referential integrity
  • Table Structure Review: Examine required fields, indexes, and naming conventions
  • Query Inventory: Look for excessive queries that may indicate poor maintenance practices
  • Object Naming: Identify spaces in names, copy tables, and orphaned objects

Code Quality Evaluation

  • Compilation Status: Verify the application compiles without errors
  • Option Explicit Usage: Ensure proper variable declarations throughout
  • Procedure Organization: Assess code structure, naming conventions, and documentation
  • Reference Analysis: Review external library dependencies and API calls

Security and Change Control

  • Data Protection: Evaluate current security measures for sensitive information
  • Version Control: Understand how changes are tracked and deployed
  • User Access Management: Review who can modify data and application components
  • Backup and Recovery: Assess disaster recovery procedures and data protection strategies

Essential Initial Changes

Database Design Standards

  • Referential Integrity: Implement proper relationships between tables immediately
  • Required Fields: Identify and enforce business-critical data requirements
  • Data Cleanup: Address existing bad data before implementing new constraints
  • Index Optimization: Add appropriate indexes for performance and data integrity

Code Quality Improvements

  • Option Explicit: Add to every module without exception—this is non-negotiable
  • Error Handling: Implement centralized error logging and user notification systems
  • Magic Number Elimination: Replace hard-coded values with named constants or enums
  • Dead Code Removal: Identify and remove (or rename) unused objects and procedures

Tracking and Monitoring Systems

  • User Activity Logging: Track button clicks and report usage to understand application patterns
  • Error Detection: Implement crash detection and corruption monitoring
  • Version Control: Establish clear version numbering and distribution methods
  • Change Documentation: Create systems for tracking what changes and when

Working with Power Users

Building Strategic Relationships

Kim emphasized the critical importance of power users as your greatest allies:

  • Direct Observation: Watch users actually work with the application to understand real workflows
  • Regular Check-ins: Establish ongoing communication rather than waiting for problems
  • Documentation Collaboration: Enlist power users to create and maintain testing procedures
  • Business Knowledge Transfer: Learn the "why" behind processes, not just the "how"

Testing and Quality Assurance

  • User-Driven Testing: Power users should own regression testing procedures
  • Integration Testing: Ensure changes in one department don't break workflows in another
  • Training Documentation: Help users create materials that serve dual purposes for testing and training
  • Feedback Loops: Establish regular channels for identifying pain points and improvement opportunities

Transition Best Practices

For Outgoing Developers

  • Code Documentation: Add comments explaining "why" decisions were made, not just "what" the code does
  • Wish List Creation: Document desired improvements and explain why they weren't implemented
  • Business Knowledge Transfer: Share understanding of industry-specific requirements and workflows
  • Availability Planning: Negotiate transition support periods and emergency contact arrangements

For Incoming Developers

  • Assessment Before Commitment: Evaluate project quality before agreeing to take it on
  • Standard Negotiation: Establish wiggle room for code quality improvements without requiring approval for every change
  • Tool Investment: Identify third-party tools that can reduce risk and development time
  • Stakeholder Interviews: Meet with power users and management to understand expectations and constraints

Mission-Critical Considerations

Emergency Preparedness

  • Rapid Diagnosis: Implement logging systems that quickly identify the source of problems
  • Communication Protocols: Prepare standard responses for when applications go down
  • Escalation Procedures: Know who to contact and when during critical failures
  • Recovery Planning: Think beyond major disasters to include smaller disruptions like printer failures

Relationship Management

  • IT Department Connections: Proactively introduce yourself to database administrators and network specialists
  • Trust Building: Establish credibility through quick problem resolution and clear communication
  • Expectation Management: Help stakeholders understand what's possible and what requires additional resources

Tools and Resources

Assessment and Analysis Tools

  • FMS Total Access Analyzer: Comprehensive database documentation and analysis
  • VB Watchdog: Automated error handling and logging without extensive code changes
  • Custom Scanners: Simple scripts to gather database metrics quickly
  • Code Review Tools: Utilities for identifying common problems and standardization issues

Development Enhancement

  • Third-Party Components: Email tools, charting libraries, and other specialty components
  • Version Control Systems: Tools for tracking changes and managing deployments
  • Documentation Platforms: Systems for maintaining business knowledge and technical specifications

Conclusion

Successful developer transitions require far more than technical handoffs—they demand systematic approaches to relationship building, quality assessment, and knowledge transfer. Tom and Kim's experience demonstrates that the "soft skills" of understanding business processes, building stakeholder relationships, and establishing sustainable development practices often matter more than pure coding ability. By focusing on these foundational elements before diving into feature development, developers can ensure smoother transitions and more successful long-term outcomes.

Recording

The full recording is available on YouTube:

Join Live!

Want to get even more out of these presentations? Join the live Access User Group events! The next upcoming events are listed on the AUG Event Calendar.

Attending live gives you the opportunity to:

  • Interact directly with presenters during Q&A sessions
  • Network with other Access developers
  • Share your own experiences and challenges
  • Get immediate answers to your specific questions
  • Participate in group discussions

With multiple user groups across different time zones (and languages!), you're sure to find a meeting time that works for your schedule.

Acknowledgements

  • Base cover image generated by FLUX-schnell
  • Initial draft generated by Claude-Sonnet-4