Milestone-Driven Software Development Process
In software development, as in other scalable projects, small projects are easier — they are easier to plan for, define, estimate and work on, etc. It’s also much easier to track goals in small projects and to see how well those goals are met. Our software development process essentially takes a project, no matter how large, and breaks it down into smaller projects that are well defined and efficiently managed. This process gives our clients the chance to evaluate the progress, value, and usefulness of their application in incremental stages, thus helping the project stay on budget, on schedule, and on point.
Our Development Process Allows for Early Changes on a Project Based on Early User Feedback
When incremental tasks are completed successfully and stacked upon themselves, they yield successful projects. The milestones we use in our development process have built-in tools that help validate progress, business objectives, and success. We document what we will give our clients, and the test plan developed for each mini project allows clients and other stakeholders to cross-check our work. The documents we provide for each milestone also offer a convenient, centralized place for stakeholders to view exactly what we plan to do, which can be helpful to a client if, for example, they want their IT department time to weigh in on infrastructure, etc.
An Account Manager's Summary of Our Process
We start each project with a Planning Milestone. This initial step consists of getting a general understanding of the scope of the entire project, and a specific, detailed understanding of the first 1-2 months (or milestones) of work. In the second milestone, we begin laying out the workflow of the app (or iteratively wireframing) with refinements based on your feedback. When this workflow is accepted, we move forward with more detailed frontend designs (again, iteratively with your feedback), and, once these are approved, we begin implementing these designs with our developers. Each release will then be thoroughly tested and sent to you for review. While this process moves forward, your Project Manager (PM) will work with you to begin defining in detail the next milestone. We essentially repeat the whole process until you are satisfied that your business needs are fulfilled.
We welcome deeper, development process discussions with you or your internal development team.
A Detailed Overview of our Development Process
Successful custom software development projects evolve and the development process itself must embrace and manage that transformation. A process that is too rigid will miss the end target and inevitably require expensive, time-consuming rework, while a process that is too loose will eventually lose direction, burn unnecessary budget, and never be implemented successfully. Art+Logic utilizes a milestone-driven approach based on proven agile development principles.
- A focused and efficient use of budget
- Visible and verifiable progress
- Frequent opportunities to make refinements
- Cooperative prioritization of work
- Successful results
Illustration of Our Development Process
Milestone 1, 2, N . . .
Each development milestone repeats a pattern that involves:
- Testing: Unit testing, regression testing, and user testing of the milestone features and functionality.
- Bug fixing
- Planning documents or UI mockups for approval
- Staging release for interim feedback
- Alpha release for usability testing
- Beta release for end-user feedback
- Production-ready installer
The Non-Technical Overview of Our Process
First, we meet with your team to understand the big picture – what are you trying to accomplish? This is a big picture view of the project. The goal of this initial discussion is simply to gain sufficient understanding of your project so that we can give you a rough ballpark idea of cost and schedule that you, in turn, can use for business planning purposes. It’s not an attempt to provide you with a detailed estimate or project plan. Let’s face it, at this point in our relationship, we know less about your project than we will at any other point over the course of our work on your project. Attempting to deliver a detailed estimate before learning even more about your needs and wants would be irresponsible and, frankly, misleading. The rest of our process roughly follows the following outline:
- We collaboratively decide what the heart of the application is, what needs to be done first.
- Looking just at the heart of the application, we collaboratively unpack the requirements, both from a business intelligence and technical perspective. When we’ve all decided on what exactly we’ll be doing and sign off on that, Art+Logic estimates the work and submits that for approval.
- We implement ruthlessly.
- We test ruthlessly, using the test plan developed during the estimation of the milestone.
- We release to you and ask that you, with the test plan and Requirements document in hand, validate the application and provide feedback.
- We reconvene and decide what to do next.
- Repeat until you determine we’re done.
Our process ensures that you, as the client, and we, as your developers, have the necessary latitude to address the realities of custom software development as they arise, and thereby deliver a successful project that benefits you, your business, and the end users of your software. Contact us to learn more about what we can do for you.
Machine learning is not new, but advances in both hardware and software have recently opened the gate of possibilities. Automated drones and vehicles are capable of getting themselves from point A to point B without (much?) human intervention thanks to machine learning and artificial neural networks. With an extremely small amount of effort, software can now be developed to do incredible things with neural networks which couldn’t be done just a few years ago.read more
The RESTful API has a funny place in the software development world: it’s widely regarded as the best general-purpose pattern for building web application APIs, and yet it’s also nebulous enough of a concept to cause endless disagreements within teams over exactly how to implement one.read more
As is often the case, I found myself working on a personal project and had some UI elements that *really* wanted to have some life to them on the screen. I started sketching some ideas in code, and by the time I was done with it, had created a reusable framework to add fairly rich animation capabilities to programs written using the JUCE application framework, where I have been doing a lot of work these past few years.read more