how we work with you
Coding is not the hard part. Knowing what to code is the hard part.
That's why we have an established, rigorous methodology for identifying your needs and making sure that development process addresses those needs exactly. Our careful attention to process also supports our ability to deliver on time and within your budget.
We start by listening. Together, the goal is to assess your needs, and figure out what you want the system to do. Simple as that.
We ask, "What do you need to do?" The answer reflects your business goals.
We can catalog, describe, and model the goals for your system. We'll review existing documents (RFPs, perhaps), interviews with users, and in-depth research of best-practices. We'll break abstract goals into distinct features, grouped into feature areas. We'll look at your preferences for how the features should behave, and make recommendations where you have no preferences.
Set aside acronyms for a moment. We love wish lists that start, "I (or my users) want to do X, Y and Z."
We'll take your existing systems into account, whether they are pen & paper, spreadsheet, database or web. Learning from your established practices can help improve upon them and minimize training costs by making our improvements non-intrusive. We'll specify integration features where your new system will need to interact with the old.
We'll work with you to prioritize our findings and recommendations.
Following our assessment, we'll synthesize our findings into a plan of action. Depending on the level of detail of the assessment, the proposal can be a quick birds-eye-view of how to approach your project, or an in-depth architecture design and implementation strategy. If you hire us for the latter, we'll provide you with exhaustive documentation of our findings and blueprints we've generated for planning the project.
Sometimes we will consider a faster, iterative, more "agile" approach. This works well when we mutually agree that jumping right in on development makes sense: smaller project phases, legacy systems, shorter timetables, real-world budgets.
We prefer to give you a simple, working system today - rather than a complex system "some day". This prioritization is central to finding a balance between the calendar and the available resources.
At Beezwax, we create a custom development process that suits your needs. Many shops advertise "agile" or "XP" methodology-but we've found that these process models don't suit every project and client. We do practice agile development where it's needed, but we adapt our way of working to match how you work.
Regardless of the development process for your project, we prioritize rapid delivery of flexible, solid, and useful software. On larger projects, we'll deliver the project incrementally over several iterations; each iteration resulting in software that's immediately useful.
Testing really starts from the moment we begin assessing your needs for custom software, as we begin to understand the requirements that will define user functionality. This is a critical consideration during the entire development process. We will design a system with user acceptance as a goal. For the code itself, Beezwax developers rely on a toolbelt of software development methodologies for testing including unit testing, black box testing and regression testing to assure quality in every system we develop.
Depending on the development process model your project uses, there may be several deliveries over several iterations, or one delivery. Regardless of their quantity, each delivery consists of a package of the work product, your acceptance of our work, and a managed transition to maintenance of the delivered product. In this phase, we can also provide you and your staff with documentation and training necessary to work with the product.
Once your project has been finished, we'll arrange to have the day-to-day administration taken care of. Sometimes that means training your staff in administrative tasks, training a third-party, or creating a Service Level Agreement that guarantees dependability and availability of your mission-critical systems. Our maintenance plans cover everything from the mundane and expected, to fire, flood, and doomsday scenarios.
Use our contact form to get in touch.