I have been a consultant for over 18 years. During this time I have worked with many organizations and have designed and built a variety of systems. Let me share some ideas for you to consider as you start your .NET development effort.
One very important thing I learned over the last 18 years is “developers love to develop”. To make my point, you could define a process in your organization that needs a grid of data and the ability to put formulas in the cells, sum, average total etc. MS Excel is a perfect solution. If you present this problem to a developer he/she will want to develop you a spread sheet. Of course he/she will use object oriented practices, apply the best design patterns and tie it into multiple social networks. As you’re looking at your next .NET development you have to consider do we develop from the ground up or leverage an existing solution.
I worked with a customer that did not want to make the mistake of tying themselves into a proprietary system and refused to purchase an application server from a software vendor. Instead they developed an application server in C++ to support remote processing using documented standards for the industry. When this organization actually did was create the most proprietary system possible. No one other then the organizations designers understood the system, it was a one-of-a-kind. As you’re looking at your next .NET development you have to realize that just because its Microsoft .NET you can very easily develop a proprietary system that no one can support.
Last point to consider is complexity. Reduce complexity will lead to reduced cost, reduced risk and increased value. Whether you are looking at object oriented development, design patterns, SOA or the next big technology you have to reduce complexity. As the owner of a company I hire developers that know how to develop systems not developers that know a given programming language. Building business solutions can be a very straight forward task technically. What has to happen is focus needs to be on the business not the technology.
Why do I discuss this in a blog that focuses on Microsoft Dynamics CRM? As I mentioned in an earlier post XRM is a platform to build business application. You are still building a .NET application, but you have a platform to build on top of.
XRM Platform Offers:
- Data Model
- Active Director Integration
- Role Security Model
- User Interface
- Offline Access
- Forms and Views
- Data Import
- Software as a Service (SaaS)
As you are looking at your next .NET project you have to ask; Are we designing and developing something that has already been done? Are we creating a proprietary system that will be difficult or impossible to support? Are we designing and developing a complex solution that will have increase cost and increase risk? Will this complexity increase value?
Look at Microsoft Dynamics CRM as a platform for building your next .NET project.