Our software development process: From concept to solution
Software companies must share their workflow with clients and competitors alike. Why would I share my secret sauce that makes everything taste just right, you ask? Because it helps define the value of the service we sell and sheds some light on differences between a $500 website and a custom-built solution.
Besides, half a year ago we didn’t know half of this stuff ourselves, so it’s only logical to assume that there are others who can benefit. This blog post is about the our software development process—the "Devbridge way." Here's how we approach, evaluate, design, and build solutions for our clients (and ourselves!).
I covered the importance of a Request for Proposal in my blog post about Website Redesign Strategy, so we’ll get right into…
Software development process step one: Research and Discovery
First, we discuss the project with you to determine the objectives of your interactive strategy. Whether it is to sell a product, to collect leads, to build a community, or to promote a brand, it helps to know the target audience, research competitor websites and clearly define your brand positioning for the digital medium. We may ask to set up brief interviews with various individuals at your organization and/or your clients in order to gain a better perspective into your industry. On the technology side, we determine the immediate and long-term requirements for the solution.
Typically this step is split into two separate sessions: before the proposal is built, and after you sign off on the proposed approach.
The Project Plan
Failure to plan is planning to fail! As you would by now see from our proposal, our estimate of work is broken down into granular modules. Based on the schedule requirements and team availability, we build a project plan.
This phase can go one of two ways. If you, our dear client, trust us and believe in SCRUM – we build a detailed project plan for the first sprint. Further phases are defined as the process continues, allowing us to take a much more agile and flexible approach to software development.
Alternatively, fixed-price projects are often preferred and thus we accommodate when necessary. Change of scope, however, does become a slightly more costly affair on a fixed-bid project.
Wireframes and IA
Wireframes are screen blueprints, or skeletal frameworks of the pages in your website or application. We create wireframes to illustrate and document the functionality and Information Architecture of the system we are building. The wireframes help us identify the controls and interactions needed on each page of the website. The Information Architecture allows us to map all the necessary content and define the patterns we’re going to use to catalog and group content on the website.
The primary benefit of wireframing is that it allows for quick proof-of-concept visualization of the website or UI. Since everything is done without any colors or visuals, you, the client, and our creative team can focus on functionality and page goals. Additionally, it is inexpensive and easy to alter the planned course of the interface design.
The elusive design stage! This is where the magic happens and where the cold and soulless wireframes turn into pixel-perfect sculptures of color, line, and type. The mockups we will create may range from primary (home) and secondary page layouts to UI designs for applications and more. During this step we will implement your current brand Style Guide into the digital medium. This usually involves establishing typographic hierarchy, setting up calls to action, defining a color scheme, determining appropriate contrast, and more.
We start with a single concept and continue with up to three rounds of revisions on the chosen concept. We will then create designs for all variations of templates used on the website. As an organization, we are heavily vested in the importance of design in our solutions.
Prototypes are like wireframes on steroids! We grab the designs and code up the HTML and CSS to show what the website or UI would look like in the browser. You can walk through different pages of the website and review the interactivity of dropdowns, buttons, and popup windows. While this step is more time-intensive than wireframing, changes are still relatively simple to make because there is no back-end built yet.
This is where we bring in the big guns: The database is designed and the website functionality is developed. We hook up the functionality to the prototypes and those pages then become available to you on the staging website to review. Only functionality documented in the wireframe stage will be developed on the website. All additional changes to the functionality, outside of original scope, typically require a Change of Scope request.
As you can already tell, we try to minimize the risk and cost of changes as much as we can by attempting to nail down the look, functionality, and flow of the system before we get into the time-expensive phase of development.
Testing is closely related to development, as our QA team tests specific deliverables as the development team finishes them. We perform testing after each development sprint and then allocate a budget and timeframe for testing at the end of the project. Unit tests are created to automatically test functionality and Continuous Integration Server automatically builds the whole solution every time a change is made to guarantee that bugs are not introduced along the way.
The new website will be published to the production URL. You will receive documentation of the system and instructional references for the Content Management System if that is part of the project.
A question I hear often is, “How do you guarantee that your understanding of our needs is accurate?” It's a good question. Something that starts with a Word document eventually evolves into an interactive system of great complexity. Our process is not unique, as compared to other development shops, but it has evolved naturally out of need and mistakes made. Each step, from wireframes, to prototypes, and to functional website allows for low-impact corrections. Changes in software development are inevitable, but a structured approach and SCRUM methodology help us stay within budget and schedule of promised deliverables.