System Architecture is the most important aspect of any software project. Architecture is much bigger than implementation, languages, specific patterns or techniques, or even choice of specific technologies. Is the database you have chosen not quite up to the task after all? Well, as long as your architecture is right, you should be able to switch. Need to support mobile devices in addition to Windows and Web versions of your app? The right architecture will enable you to do so quickly! Architecture is longer lived than anything else in software, and architectural mistakes are among the most costly to make and one of the main reasons that software projects fail.
We can help you with your architecture. We have a lot of experience with various types of system architectures, and can help you to choose the correct one for your scenario. We make heavy investments in testing new software and technologies, while programs are still in their infancy so that we can then advise you based on extensive real-world experience. And, as the publishers of CODE Magazine, we have access to an extensive pool of experts that advocate various architectural choices for certain scenarios. We have tons of readers who send us feedback and questions concerning the architecture they have chosen. Our involvement with events and conferences gives us access to speakers and attendees alike. Our training business (CODE Training) provides us with similar information. Not to mention the many customers we reach through CODE Consulting. All in all, our various endeavors provide a treasure-trove of experience that we are happy to pass on.
Whatever you do in your software project, whatever technologies and platforms you choose, no matter what vendors or staff you go with, the first order of business has to be to get the architecture right. Failure to do so is extraordinarily costly! We can't tell you which mobile device platform will be the most important five years from now, or which database technology is going to be the best, but we can tell you how to architect your system to have the greatest chance to adapt most easily and flexibly (or whatever your primary goal may be).
Starting an Architecture Project
Architecture is generally not a project in itself; it is the starting point for a whole project or system. Many architecture sessions start with a short meeting or a Vision & Scope Workshop to determine the overall goals of the project, the size of the effort, and best approach. The Vision & Scope also includes an evaluation of resources that play an important role in not creating the right architecture, and creating it in a way that allows for productive development and a desirable rate of progress throughout the project. We then often move on toward creating key pieces of the architecture, which includes a Proof of Concept or Prototype phase. We also create documentation such as "developer guides" of "style guides" that enable all project members to function to the best of their ability. In many cases, we also perform training and mentoring sessions to ensure that everyone on the project is up to speed.
Project Lifecycle and Development Approach
Architecture sessions are usually relatively small. They are not overly large in terms of time frame, nor are they very large in terms of the number of people involved. Architecture is not labor intensive, it is knowledge intensive! The phase of the project during which big architectural decisions are made usually consists of a number of meetings, the creation of documentation, diagrams, and even prototypes or similar small development tasks. Usually this happens in a series of meetings with specific goals being defined for the next meetings. Note that architecture is not something that is just doneat the initiation of a project and then never revisited, instead, architecture is an ongoing process, although the most critical architectural decisions are usually made early in the development phase, and this is where we can help you the most!
We usually charge for architecture as part of a bigger project (using a "time-and-materials," pre-paid hourly block, or service agreement approach). It is also possible to agree upon specific deliverables ahead of time and perform an initial architectural task as a fixed-price project.
Purchasing Our Services
We offer our services in a variety of ways to meet every possible need. Options range from plain time and materials setups, to hourly blocks and montly service contracts, and sometimes even fixed price setups (especially for mobile "apps"). Contact us for more information and for a Schedule of Fees.
Click here to contact us!
Vision and Scope Project Analysis
Need a new application? Have an existing app that needs a face-lift? Or perhaps you have an existing app that needs to be rewritten using today's latest technologies? We will spend time at your office and then deliver a detailed document outlining your project, the path for a new application, how to avoid the major risks, and much more. We will provide our expertise and experience to advise you on technologies and architecture to use. We will help you to judge effort levels and project feasibility. This "workshop" results in a Vision & Scope document and other deliverables. This Vision & Scope provides a detailed road map for us, your team, or even another consulting firms, to use in order to begin work on your project in a structured and well thought out fashion.
More about this service...
Prototyping & Proof of Concept
All software projects include risks and unknowns. Will new technology "X" really work as advertised? Will technique "Y" work well for our needs? Will device "Z" really be able to handle everything we expect it to? Will a planned solution to a known problem really solve everything, and will we be able to implement it as quickly as we hope? These are questions that need to be answered sooner rather than later as failures associated with them could spell disaster for any project. Prototypes and Proof of Concept projects are a good way to provide necessary answers. They are also a good way to start projects using small but significant steps.
More about this service...