Web Development

Successful web development projects all have a few things in common: effective communication for the project duration, the skill to meet the demands of the project, and a solid technical management process that includes meticulous quality control.  Each project I undertake is supported by these three qualities.

I am available to work independently or as part of a team, on a project from start to finish or on a particular component of a project, and on short-term projects or on long-term projects.

I specialize in PHP/MySQL back-end and HTML/CSS/JavaScript/jQuery front-end development, which includes but is not limited to CMS solutions like WordPress, Magento, or Drupal and frameworks like Zend or Laravel.  However, I have completed projects in a variety of other technologies and platforms.  For a detailed list of my skills, please see the About page.

When working independently on a new project, I follow a development cycle that includes:

  1. Gathering business requirements. 
    This discovery phase includes understanding the purpose of the projects, specific goals and specifications, and sharing project assets, like content, image files, graphic design mock-ups, etc. This is a critical step that is often skipped or minimized on projects with poor or delayed outcomes.  A project can proceed linearly or iteratively.  In a linear project, the majority of the requirements and detailed specifications are defined prior to the start of development.  In an iterative development cycle, basic requirements are defined to inform a general architecture.  Development then begins and is frequently evaluated with an eye towards honing the business requirements, providing additional project assets as they become available, and refining the corresponding technical requirements and implementation.  There are arguments to be made for either approach; the appropriate approach largely depends on the client’s goals.
  2. Defining technical requirements and architecture. 
    Once business requirements are understood, they can be translated into an implementation plan.  An implementation plan may include one or more proposed solutions and estimates for each component of a solution.  In the case of a linear development strategy, the implementation plan should be detailed enough that any significant gaps between the project requirements and the implementation plan can be identified.
  3. Development.
    Depending on the client’s preferences and existing infrastructure, development may begin by setting up a development environment with a web hosting provider.  In other cases, development may proceed entirely within a local environment.  The selected development approach will also have an impact on project setup.  After project setup, the implementation plan guides development efforts.  In an iterative cycle, the development phase is repeated as the requirements are refined and the implementation plan is updated.
  4. Testing and debugging. 
    Testing and debugging occur throughout development.  In an iterative development cycle, the client as well as the developer is involved in the testing that occurs during the development phase.  This phase follows the completion of the development phase and is a period of testing with an understanding that deployment is the next step.  This phase includes site-wide testing by both the developer and the client.  If development was done locally to this point, there may be a need to set up a testing environment with a web hosting provider.  It is recommended that two sites are set up on the server to be used for the live site, one with the production URL, like http://mysite.com, and one with a development URL, like http://dev.mysite.com.  This ensures that there are no environment-specific surprises during the deployment phase.  During the testing and debugging phase, thorough cross-browser and device testing is performed in addition to functionality and requirements testing.  Clients have the opportunity to make sure that all business requirements are being met and that the site is user friendly from both an end-user’s perspective and an administrator’s perspective.  At the end of this phase, the goal is to have a client-approved website or component that is ready to launch.
  5. Deployment. 
    Once the site has been thoroughly tested and approved, preferably at the development URL on the production server or a server that is identical to the production server, it is ready for deployment.  Often, deployment is fairly simple.  It can consist of updating the IP address to which the live URL points and then, once the URL has propagated, doing one final round of testing to ensure that everything is working as expected.  In the case of a project component being deployed, the component is added to the live site via a revision control system like Git (recommended) or via a file syncing utility.  A final round of testing ensures that the component updates are successful.

If you’d like to learn more about my web development services, please contact me.