What does it take to get started on your web application project? In this post we walk through the initial onboarding steps we take with every client.
Introductory Information / Scope
The first thing that we need to do is get to know you, your business, and your project. While far from being a comprehensive investigation, these questions help us determine if our services are a good fit for your needs and what follow-up questions might be necessary.
- What exactly does your business or project do or intend to do?
- Who are your customers?
- What problems are you solving for your customer?
- Who is your competition?
- What distinguishes you from your competition?
- Do you already have an existing solution for your problem or is this a new project?
- Is the project a core component of your business or is it used to support operations and make them more efficient?
- Describe your project.
- Give us a summary of its purpose.
- Describe the users of the product and the actions they will be performing with the assistance of the product.
- Contact Information
- The legal name of the business
- The operating name of the business, if it differs from the legal name
- The physical and mailing address of the business
- Phone and e-mail addresses for all critical contacts
Budget / Timeline
Our introductory questions are meant to introduce us to the potential scope of your project. Scope is just one component of the, “iron triangle” of project management. The other two components are budget and timeline. Successful delivery of a quality product requires balance and management of scope, budget, and timeline. Generally speaking a smaller scope means the project will have a smaller budget and timeline.
Having a limiting factor to your budget and timeline is one of the quickest ways to determine the appropriate scope of a project. If you know you only have 2 weeks to deliver a solution or $2,000.00 to spend then it narrows down what is possible very quickly.
If you’re uncertain or unaware of any budget and timeline constraints, we can work with you to help define a scope, budget, and timeline that delivers as much value as possible as quickly as possible.
- Do you already have an estimated budget for the project?
- Does this budget include both development costs and continuing operational costs?
- Do you have specific deadlines that are associated with the project?
- Are you aware that an increase in scope may necessitate an increase in timeline, cost, or both?
- The more information you can provide regarding requirements in advance of work beginning, the less likely that a change in scope will result in modifications to budget and timeline.
- We bill once a month and all clients / contracts operate on NET30 terms unless otherwise specified.
Source Code Management / Issue Tracking
We currently use Github.com for management of all client projects and issues. We want as many of your project’s stakeholders involved and connected to the project on Github.com as possible.
- This allows us to use one tool to manage issues and specifications for your project.
- It makes communicating with stakeholders easier / faster by sending messages to specific users or entire teams directly through the site.
- We have integrated git and Github.com into our continuous integration and collaboration tools.
- It’s easy to track productivity and progress on a project from both our perspective and that of our client.
- Clients always have open access to the source code we’re developing for them.
- We don’t like the idea of withholding source code from clients until project completion for the purpose of coercing payment from clients. While it is frequently employed by other development firms, we believe trust and a solid contract are better mechanisms for solidifying a working relationship.
The scope discussion will help inform us of what kind of hosting arrangements are appropriate for your project. While we prefer to develop and host with the Heroku platform as a service (PaaS) offering when possible, not all applications are appropriate for production deployment to Heroku. We have clients with specific security policy requirements the preclude a deployment to such a platform. We also have clients whose applications would be more economically hosted on other services / systems.
- In order to make the setup of development services and infrastructure as expedient and painless as possible we will setup and run development systems billed at cost + a 10% markup.
- In order to give clients full control of their hosting infrastructure and expenses, we encourage them to setup their own hosting services accounts. While we are happy to manage these assets for you, we don’t require that you purchase hosting services from us.
Product Review Meetings
Every client we engage needs to setup a time for a weekly project management meeting. At a minimum we want a weekly opportunity to review with you:
- The work we performed in the previous week / sprint with you.
- Check on the scope, budget, and timeline of the project and note any modifications each.
- Prioritize any newly reported issues / work for inclusion in the schedule.
- Review the work scheduled for the next week / sprint.
- Schedule deployment of the changes presented during the meeting, pending user acceptance testing.
User Acceptance Testing
User acceptance testing should be performed by the client on each new feature, enhancement, or bug fix we perform. Doing so greatly reduces the risk involved in operating your project. In Github we provide flags / labels for clients to approve or reject every pull request / issue that we have addressed.
Testing is an opportunity to review the work before deployment.
Testing is an opportunity to cross train other members of your organization on how to use the product.
Testing helps identify unanticipated use cases before they disrupt operations.
Bugs in software frequently are caused by:
- Specification details and goals being omitted by developers.
- Specification details and goals not being reported by stakeholders.
- A change in the underlying technology stack that breaks previously functional code.
It’s important for clients to conduct testing and know that if bugs due to developer omission are caught during the acceptance period of a contract, we’re going to make it right and fix the functionality to what was defined in the original specification.
Review of Client Tasks
- Sign up for Github
- Send all Github username to your project management contact.
- Sign up for Hosting Accounts
- Amazon Web Services
- Google Developers Account
- Schedule a Weekly Project Management Meeting
- Sign statement of work / contract and return to project management contact.