With my experience as a solitary web developer in a larger department, and as an external contracted consultant to established teams of programmers, my approach to project management has been rather flexible. I have typically worked within the established work processes of the client or organization. On my own, however, my approach could often be best described as a RAD (Rapid Application Development) method.
Starting with assessment of project requirements, I research the resources available most likely to resolve the core requirements, among other considerations including time, resources, and future expandability. I quickly move into exploring various solutions by implementing a rough version of the expected outcome, testing it for compliance with stated requirements, and either moving on to a test implementation of the next level priority features, or scrapping the first draft for new tools chosen based on evaluation of how well the first choice met the original and evolving criteria.
Client feedback is critical to me at all stages of development, as together we can determine the best approach to solving any problems so that a project meets budget, feature, and timeline expectations.
I use debugging tools and automated simple tasks to catch errors early on, working in an iterative process involving unit and data integrity testing as I write or implement new pieces of code. I verify the project requirements frequently to ensure adherence to or re-evaluate expectations as necessary. By prioritizing functions to be developed, I can work to resolve the most important issues first and prevent later show-stopping problems. When satisfied with the functionality of a new feature, if possible, I like to get acceptance feedback from a client or user before building additional dependent features.
All training is customized to the needs of a client. I try to include scaffolding support (built-in instructions and guidelines) to any features that may require guidance, and when appropriate I will assess user needs to put together additional documentation. I have collaborated on user acceptance testing through feedback collection and observed directed tasks, using the outcomes to plan new or improve existing materials for production online or use during in-person training sessions.
I want my clients to be happy with my work. If we agree on a scope of work (whether based on a timeline or features to be implemented), I will always be happy to fix any bugs that I can replicate in my own development environment.
For other needs, such as general maintenance, additional training, and new feature development, I am happy to arrange an individualized plan of support based on a contract extension, monthly retainer, or hourly rates.