Like a band that’s been playing music together for years: the Polycot team is tight; our work is harmonious and efficient. The Polycot members power a full-featured, highly creative web consulting and development agency, offering managed website design & development, and associated expertise in content strategy, search and social media optimization.
And we’re skilled communicators, which really helps the process. Through ongoing collaboration and communication, we ensure that our clients are clear about the direction and status of their web development project. They aren’t surprised by the timing or state of deliverables, or about the project cost, because they’re getting clear and regular updates and have access to developer discussions and tasks.
Because of this Polycot’s clients have a high level of satisfaction, and this is attributable not only to our great teamwork, but also to our highly collaborative approach. This gives our clients visibility into, and input into, the web development process, not just in the discovery phase, but throughout the project.
The colorful graphic on Polycot Associates’ “How We Work” page shows four basic aspects of website development:
- information design
- aesthetic design
- website development
- website deployment
However there’s a lot more going on in web development; web projects tend to be strategically and tactically complex, even for sites that appear relatively simple. This longer post provides a more detailed overview of Polycot’s web development process, and how we manage the complexity of web development.
The seasoned professionals at Polycot Associates have been building websites for many years. We’ve been building them together, as a team, since 2010. So we’re experienced developers with substantial experience as a working team of complementary experts. All of us have worked as freelancers with clients of our own, and have learned the client perspective, and how to communicate effectively with our clients about our work. The developers’ client awareness and empathy are helpful in supporting the project managers who handle most of the client communications.
Our first contact with a client might be via referral, client inquiry, RFP process, or serendipitous meeting. We promise a free hour of consultation at first contact, and we use that hour to get a sense of the client and the project, determining whether we’re a best fit, and what we need to make an informed estimate of cost.
The initial hour of discussion usually won’t provide sufficient detail about a project to create a detailed estimate and plan for development, especially if the project is large and more complex. For larger projects, we often suggest a paid discovery, though an alternative is to build discovery into the project plan with the understanding that our initial estimate may be refined substantially as we gather more detail.
Discovery is a process of exploring the project goals and deliverables with the client, and gathering as much detail as possible about user stories and projected design, programming, and configuration tasks. In discovery, we capture as much detail as possible about all the tasks required.
The discovery process can be as little as an initial 1-2 hour consultation on simpler projects, or a longer paid discovery process for larger, complex projects, especially where details are not completely worked out. In addition to a project plan, the discovery project allows us to produce a refined estimate based on a better understanding of the details of the project.
A robust discovery project can take 10-20 hours including documentation, and can potentially include prototyping. Though prototypes can be disposable, we find the initial prototype often becomes the first stage of development, especially in projects that have tight deadlines. A more robust discovery project will determine and clarify goals and audience, explore the site’s content and marketing strategies, determine layout and look and feel of the website, envision potential technology issues and how they can be resolved, and determine site functionality and user stories. By the end of the discovery process, we have defined a working backlog of tasks for the project.
An example: one of our earliest projects involved migrating a web presence from a hosted service that was integrated with a salesforce database. The project also involved building an online catalog and ecommerce system for sales of books and products, including software downloads. There were also several roles to be defined that would interact with the site in various ways. In discovery, we defined all the content and design requirements, as well as roles and permissions for the site. We also explored and defined how the new site would sustain the Salesforce integration. Finally, we determined the kinds of products and product requirements for e-commerce, including integration with a third party fulfillment system. And we had to select and determine how to integrate a third party email system. In discovery, we gathered all the detailed knowledge and information required for efficient execution of tasks required to migrate all necessary content, data, and functionality to the new system.
Our initial estimate of project cost is a range based on the best information available, and can be refined by discovery, or as we get deeper into the work. Because web development is complex, there can be many variables impacting the development process, and unforeseen requirements can emerge as we do the work. Given the complexity and the potential for requirements and their definitions to evolve, the amount of effort required can and often will scale up throughout the project. For this reason, we don’t make a fixed bid on a project. A fixed bid shifts all the responsibility for cost containment to the developer, and can result in an adversarial relationship between developers who are constrained by the scope of the bid, and the client, who will inherently have changing thoughts about existing requirements, as well as new requirements, throughout the project.
The most accurate estimate depends on a complete list of tasks and a smart assessment of the effort required for each. Certainty is impacted by our experience as well as the clarity and completeness of the requirements. The final estimate is a low to high range of anticipated effort and cost.
While we don’t make a fixed bid, we can always work to a fixed cost, often necessary because our clients have a specific project budget limit.
What’s the difference between a fixed bid and a fixed cost? When you submit a fixed bid for a set of services or tasks, you’re committing to handle everything specified within the bid amount. However, as already mentioned, unforeseen issues and requirements can and often do emerge after the work is under way, and have an impact on the budget and deliverables. This can create tension about project scope and require negotiation of change orders that can have an impact on the efficient delivery of the minimum viable product. Given a fixed cost, we focus on priority deliverables and make sure those are completed, with the potential to defer lower priority requirements to later development which can be budgeted separately.
Many or most web development companies will refuse to commit to a fixed bid for a defined set of requirements, because a fixed bid usually means either exceeding the project budget, failing to deliver a completed project, or “cutting corners,” which can impact the quality of the overall deliverables.
As suggested at the beginning of this post, a successful project depends on ongoing communication and collaboration with our client for the tasks we’re performing, and the status of costs relative to budget. Project transparency is critical to a successful client collaboration. We achieve this in part by providing the client’s designated product owner access to our project management and collaboration environment, which enables close monitoring of task status and overall project progress. We also provide periodic project reports - more about this below.
From the backlog of tasks, we organize phases of work - called sprints - usually of two weeks’ duration. As we work through sprints, new requirements and tasks may emerge, and those may be handled within the current sprint or added to a future sprint. Larger projects typically require 5-6 sprints (10-12 weeks) to complete.
Our clients designate a person to work with us on planning and development as product owner and subject matter specialist. We invite that person (and potentially other stakeholders) to a platform called Basecamp where all of our tasks are posted as to-dos, and where all project-related discussions can be conducted directly or via email. This ensures that the project is collaborative from beginning to end, with ongoing input to and feedback from the client. Our clients are never surprised by the state or cost of the project, because they are involved in discussions and decisions and get periodic reports including summaries of hours and cost.
Our sprints are a process of iterative development as we work through the tasks and requirements. As part of the iterative process, we and the client collaboratively test and improve until we are ready to deploy the changes to a live website. If we’re revising an existing website, there may be multiple deployments within a project; for a new website, deployment is a launch.
Often, the first stage of deployment is a “soft” launch with limited exposure, so that we can gather feedback from users directly or from user behavior, as well as from the client, fixing bugs and making revisions according to client feedback and agreement.
Our initial development or revision of the website is often just the beginning of our relationship with a client, which may include ongoing website maintenance and follow-on projects to further enhance the site’s functionality. In a case where there is a fixed budget for the initial delivery of the site, the client might defer lower-priority “nice to have” features to later projects as budget is available. Or the first launch might be considered a beta release, with the intention of gathering feedback and data about user behavior to feed into later phases of development. And it’s common for Polycot to have an ongoing maintenance agreement to ensure that we perform regular updates to the core technology and modules to keep the site up to date and secure.
Polycot Associates offers a free one-hour consultation to determine whether we’re the right fit for your project, whether it’s an initial development “from scratch” or an overhaul of an existing website. To request a consultation, just complete the form at http://polycotassociates.com/forms/request-free-one-hour-consultation