In a series of blog postings, and hopefully with substantial input from the ATG community, I am going to try to define ATG development best practices. From how to run a development project, to coding standards, and more. I know it will be impossible to make a perfect set of practices for everyone, there is no one size fits all, but based on some basic assumptions, I will strive for a great starting point, instead of a perfect solution.

It will take time, but will be well worth it in the end.

This practice definition will be focused on delivering the highest quality ATG applications, on time, and on budget, while maximizing flexibility to accommodate the client’s changing needs.

More specifically the process needs to:

  • Ensure there is a fixed baseline of requirements to build against
  • Allow for accurate estimates, resourcing, budgeting, and scheduling
  • Leverage ATG expertise at many steps of the process, including strategy, requirements gathering, and creative concepts in order to maximize the benefit of the platform and minimize development pain (defined as time/cost/stress/quality-impact)
  • Support a geographically diverse team
  • Define the steps, flow, entrance and exit criteria, and roles for the process
  • Minimize time waste
  • Maximize communication and documentation
  • Be supported by a set of tools and practices to effectively enable the process
  • Deliver high quality (low defect) applications, on time and on budget

And here are the things I will try to address:

  • Project Roles
  • Project Process
  • Development Process
  • Change Request Process
  • Toolset to Support the Processes
  • Hardware, Environments, Software
  • Coding Standards and Best Practices
  • Bug Severity Guidelines
  • Test Phase Exit Criteria
  • Source Code Tagging and Branching Strategy and Naming Conventions
  • Versioning and Build Number Conventions and Tracking
  • Project Naming Conventions
  • Documentation Templates and Conventions