Architecture design in technology that lacks expertise

At my company, we are engaged in the great task of creating a new software architecture for our products. Our current architecture has been used for many iterations of products and lasted a long life, and it is time for her retirement. The user interface architecture is currently implemented in WTL / ATL 3.0 and COM.

We have just completed the development of the rear architecture, which will stand the test of time, as was the case with its predecessor. However, UI technologies are advancing so quickly that no one on our team has the experience that I believe should lay the foundation for many years. We are currently focusing on WPF for this architecture and are considering various alternative strategies to help us with a lack of experience with this technology. Some of the approaches we are considering are:

  • Our experienced staff are building up WPF and working through architecture. The concern with this approach is that the areas in which we need our user interface level to last and probably all the necessary knowledge will not be obtained until many products are implemented using this architecture.

  • Draw on the temporary experience of a consulting firm to assist in architecture and development. This approach looks promising; offers for firms with experience? Microsoft does not provide application and architecture consultants, so finding someone with the right expertise can be a daunting task.

  • Engage a consulting firm to study architecture and leadership. It seems to be irresistible, as it would provide our experience in managing staff, while at the same time allowing our domain knowledge to control the direction of architecture. It may be difficult to find firms eligible for this type of service.

Now my question is: how did you solve a similar situation when you have to create a reliable, rich, long-term architecture using new technologies that your team does not currently have knowledge of the level of architects? Have you had success with any of the previously mentioned strategies, or are there other approaches that I skipped completely?

In general, I am not a supporter of working in this capacity with technologies unfamiliar to you. With that in mind, the user experience that we consider WPF can provide us with the capabilities that we want to use for many years. Anyway, you have to start something .; -)

+6
design architecture wpf
source share
2 answers

Ultimately, you should explore your chosen graphical interface.

As one of those external consultants who are part of these projects, I propose the option with option No. 2.

  • Inclusion of one or two external consultants.

  • Ask them to go through something like your option 2. Do you really learn WPF, and then (with their help) develop the architecture and implement it.

Your next question ("offers for firms with experience") is a concern. If you do not have trusted technology partners, now is the time to start cultivating them. It will take some time to find people you can trust.

The only way to find them is to pay them for the work done and see if you like them and the job. This process can take a long time.

The problems with running # 1 are themselves obvious. If you try to do it on time without experts, you will make mistakes. You will accept these errors in concrete. You will try to live with them forever. When you learn something new, a calendar is the most dangerous thing you can imagine.

Option number 1 works when there is no temporary pressure. When you learn, you are building something one-time. Then create something that you know you have to throw away. Then create the real thing.

The problem with fulfillment # 3 is that you can ask consultants to do too much. If they plan your architecture, you probably won’t understand it completely. You cut corners and bad things can happen. If, on the other hand, you do it yourself, you will understand why these corners should not be cut.

In addition, # 3 is an opportunity to style every function that you think can be cool. Until you understand the technology, you really do not understand what is important, what is easy and what is difficult. You are likely to require something expensive and risky, because it is difficult to understand how expensive and risky it is.

+6
source share

First off, WPF is probably a good choice. It is used by Microsoft, and in fact, it seems that the direction is for long-term development. I recently made the same decision and decided to go with WPF. After the initial pain that comes with new technology, this proves a very good solution.

As I said, I would recommend a mixture of 2 and 3.

If you can find a good consultant to help you with your development, you can get them to help you with the design and architecture phase, some initial project design, and they can also help your developers get up to speed. Home help (or at least on call) will be extremely helpful in getting the initial phases of WPF development.

It also helps attract a developer and / or developer who has experience with WPF.

+4
source share

All Articles