When you are starting a new project on PI or that matter any other place there is a lot of ideas you need to implement. In the beginning it is quite harmless and there is not a large problem with figuring out that you need to go a different direction. You have not invested heavily in projects and you can recreate the whole solution in a matter of hours, to fit with a new convention.
After just two weeks it becomes much more complicated to correct any mistakes that you want to implement. You have made too many object that all are connected, so you need to be really sure you are linking them back together the same way. If you first find a better way to make the corrections after the project is over, you have a huge pile of objects that needs to be moved, but more importantly tested and transported/configured. The testing part is probably the most costly because it requires the use of business resources to validate everything is running smoothly. For a change in this phase there needs to be a large business payoff, and that will be difficult to find for small businesses.
The problem is that when you start on your project, you do not know a lot about your architecture and how it needs to be. You start with a blank sheet of paper and then need to know how everything needs to be before you are started. If you are an experienced consultant it might be easier to create an architecture. Most often you don’t have the time to work on defining the architecture.
The idea can be illustrated with the following graph.
There are a lot of uncertainty in the beginning of the project, but as the project progresses you learn more and reduce the amount of uncertainty you have. But the price of change is also increased, because you need to correct all the mistakes you have made previous.
By having an architecture that works is that you have less confusions to worry about. You can just implement the solution and know that everything is taken care of. It will be easier to get new developers on the project, because there are some principles that they can follow and implement.
I’m currently in the process of creating a template for how you can construct your architecture. I need your help with that. Please go to this page and answer a simple question, and get a guide to naming conventions of software component versions, but more importantly get free access to the program. There are only 20 free program so be fast.
Updated: Sold out, but sign up to the newsletter and be the first to know about the release.