Our Custom Software Development Process
Most companies say that they pride themselves on their customer service, but we really, mean it. Whether it’s pricing transparency, our close collaboration, our commitment to being there for you when you need it, or just a friendly “hello” when you call, Dymeng was built from the ground up with quality, productivity and customer service as the three pillars to our success.
We’re committed to providing high quality solutions to our clients – on time and on budget – and that means following some tried and true practices to get there.
We’ll take a few minutes to chat with you about your project – where you have now, where you want to go, etc
Next we’ll take a detailed assessment of your core requirements.
We’ll review those core requirements to come up with a project plan overview and estimate.
This is where the fun starts! We lay out designs for your system: architectures, screens, pages, database, etc.
Once initial sketches are laid out to your approval, we get to work building it.
We’ve built it, tested it, you’ve looked at it and approved. What next? Put it in place!
A Few Things You Should Know
Software design is really straightforward and it’s easy to know exactly what’s going to happen and there’s never any surprises! – said no software project, ever.
Designing good software is rarely a straightforward task. Every project comes with unknowns that are discovered and vetted out throughout the development process. As part of our effort to make sure you’re well informed and never taken by surprise, below are a few points to keep in mind as you begin your project.
Unknowns Are Bountiful
Typically, a project begins with a loose set of concepts and ideas for desired results. As your project begins to move forward and take shape, we dig deeper into the unknowns, uncovering new unknowns and details to define. This cycle takes place throughout the entire process of software design and development.
Managing these unknowns and incorporating their surprises into the greater fold of things without disrupting the project takes considerable experience and discipline in the management process. Our Agile process provides the methodology for handling such cases easily.
Changes Are A Given
Whether driven by budget, functionality or business rules, changes happen, and they happen often. That’s why our Core Process, defined above, can never assume that things are fully known and fixed in place. The process laid out above can become a repetitive cycle, allowing us to better research, estimate, design and develop as we manage changing requirements and respond to unknown or unexpected needs.
Agile Is Our Friend
The Agile style of software development and management is a collection of practices and processes that serve several important purposes: it provides both you and us with fast feedback; it allows us to recognize problems early; it allows us to communicate details, review pricing and discuss progress with you regularly; and it allows us to handle changing requirements easily.
We’ll work in small units of work, referred to as Iterations. Once the “big picture” is defined, we break out major tasks into smaller units or work. These units are prioritized and aligned into iterations, which are typically 3-4 weeks worth of work.
Through each iteration, we keep notes and ask for clarifications as needed, and as we make progress, we may push a feature to the next iteration or begin one sooner than anticipated. At the end of each iteration, we have a deliverable: a working piece of the product that makes up a portion of the overall project.
From here, we review the next iteration, incorporate any changes, re-prioritize if necessary, and begin again.
Estimates Change As The Project Changes
As seen above, the process of defining and constructing software is not black and white. It’s a dynamic, fluid process, and as such, determining exactly how much a project is going to cost upfront is quite difficult.
Our initial estimates are typically provided in the form of a range. As the project progresses and the project’s details become more clear, the pricing requirements will become more precise.
Through the Agile development process and assiduous project management, we constantly monitor budget and estimates, continuously providing transparent updates to you to make sure we are all on the same page and agree on your software’s feature set, production timeline, and more.