The Business Value of .NET
Paul D. Sheriff
Summary: Discusses the business advantages of developing software on the .NET Platform in terms of increased return on investment. .NET delivers lower development, maintenance, and deployment costs over the long run. (10 printed pages)
Businesses today are looking to IT departments to justify their existence within the organization and what IT will do to either increase revenue or decrease costs. The days of slow-moving, inefficient IT departments that can't meet these goals are over. To help IT departments align their goals with those of the business, it is important they choose the right technology to develop strategic applications. You need a technology that will reduce development time and produce quality, reliable, and scalable applications. The Microsoft® .NET development platform is well suited to this task.
In this article you will be presented with an overview of .NET and see the real benefits you will derive when you start using this powerful framework. You will also learn how to calculate a Return on Investment (ROI) to help you justify why .NET will help you develop applications that meet business goals.
".NET is a brilliant strategy that enables Microsoft to define the next shift in the software business."
"Gartner believes Microsoft is now providing more vision and influence regarding this shift than any other vendor."
A Quick Overview of .NET
Microsoft has created a whole new platform for development. This platform was written from the ground up to overcome many of the problems prevalent in application development. Namely: long development times, inability to change applications quickly, high total cost of ownership of software, and ease of deployment.
Types of Applications You Can Create with .NET
Before you can understand the real benefits of .NET, it is important to understand some of the different types of applications you can create with .NET. Below is a list of some of the types of applications that can be created using the .NET platform.
- Customer relationship management
- Accounting applications
- Product/inventory applications
- Warehousing applications using hand-held devices
- Web sites
- Value chain/supply management
- Integration with partners through the Internet
- XML Web services
- PDA (hand-held) applications
.NET Provides Many Features
.NET consists of a re-useable library of classes (small components that help developers create applications). It also consists of a development environment to help developers rapidly and graphically build applications. Microsoft and many other third-party vendors are putting out tons of books, articles, sample code, specialized components, and various other resources to help make your transition to .NET easy.
The .NET Framework is the future of development at Microsoft. In fact, the upcoming release of Microsoft® Windows® code named "Longhorn" is built upon the .NET Framework. All operating system functions will be encapsulated within .NET. This means that any investment you put into .NET now will last you many years into the future.
It's All About Payback
When a business decides to undertake a software project, they should be concerned with how long the project will take, and how long until they get their investment back. This is called your Return on Investment (ROI). How ROI is calculated will vary by project and company, but this is an important step that must be undertaken prior to starting a software project.
ROI can be broken up into two distinct pieces, benefits and payback time. A benefit is anything that will reduce the operational costs of a company or increase the revenue of a company. The payback time is how long until the company sees the benefit after putting up the money to develop an application. Other less tangible paybacks can also be very important. For example, improving customer service may be very valuable, and it may require an investment to realize. The less tangible benefits are hard to quantify but should be included in your ROI—if not quantitatively, then in a qualitative manner.
How do you calculate ROI? Well, that is not always an easy question to answer. The reason is that not all factors can be measured right away. Sometimes the factors can't even be measured until an application is complete. However, you will need to make some estimate of the benefit to calculate the ROI up front. Another reason it's hard to calculate ROI is the soft benefits a company may receive from an application. A soft benefit might be, for instance, an increase in an employee's job satisfaction, or that their job is made safer. Other soft benefits might be reducing the time to market with a product, increasing customer satisfaction and/or retention. Some of these factors are hard to measure, but an attempt should be made when calculating an ROI.
Some Sample ROI Calculations
ROI is typically calculated by taking the benefits gained over the first year of deployment divided by the total cost to develop the application. The payback time is simply calculated by how long it takes to pay back the initial investment in dollars. This can be done by taking the cost and dividing it by the savings for a single month.
Figure 1. Calculating return on investment (ROI)
Let's say it takes $100,000 to create a new application to take orders for your products. But due to better efficiencies in the ordering software, it allows you to take more orders per day. This increase results in an additional $25,000 in sales each month for the next year. The $25,000 translates to $300,000 in new business. If you take the $300,000 divided by $100,000 you get a 300% return on investment. Since the development cost $100,000 and the increase in sales is $25,000, when you divide the $100,000 by $25,000 you get a payback time of only 4 months.
Another example is creating an application that will allow you track your inventory in real time and reorder in a much more efficient manner. If this implementation costs $500,000 but results in a $50,000 savings each month, then your ROI is 120 percent with a 10-month payback.
What to Look for in ROI
As mentioned, it is important to look at how a new software system will either increase revenue or decrease costs. However, you also need to look at the cost it takes to develop the application, and the time it will take. If the cost to develop the application it too high (in terms of both time and money), then the payback might not be worth it to senior management. The job of a CIO or IT Director is to ensure they can bring an application in on-time and on-budget to stay within the calculated ROI.
.NET and ROI
So the big question is how can .NET help with ROI? There are many reasons why .NET can help you become a more efficient IT organization and help you justify your existence within your company.
First and foremost, Microsoft has put so much re-useable code and so many re-useable components into .NET that developers will not have to write as much code. This translates into less time to develop applications. If applications take less time to develop, they cost less and therefore will have a higher ROI and a quicker payback time. This means your applications have a better chance of helping your company increase revenue or decrease costs.
".NET is a leading example of what we believe will be the dominant architectural model for the third generation of Internet applications."
—Patricia Seybold Group
Another reason .NET will help with ROI is scalability. Many companies start out small but can grow very quickly. When this happens it can often put a big strain on existing IT infrastructure and the applications that run on that infrastructure. .NET was designed with scalability in mind. Thus as your company grows, your applications can scale and support the additional load. This means less time re-working and re-developing applications that were not designed for a large load.
Lowering the total cost of ownership of software is very important. After all, the initial up front cost savings of an application doesn't mean much if the maintenance costs outweigh those savings. .NET applications are very maintainable due to configuration settings that can be modified without having to re-write code. This makes maintenance quicker and easier, thus lowering the total cost of ownership.
Another factor that contributes to a lower total cost of ownership is deployment. Deploying applications in the past was sometimes very difficult. This was due to a number of reasons, but the most common was the number of DLLs (Dynamic Link Libraries or re-useable code in one file) that had to be deployed and registered on a machine. Making sure all DLLs could co-exist on a single machine was sometimes a challenge, and managing the different versions could become quite a nightmare.
The .NET platform solves this by allowing different versions of the same DLL to exist side-by-side on the same machine. Now your tech support people will not be called out to troubleshoot a problem due to a user downloading something from the Internet that wiped out a critical DLL on their machine.
The .NET Framework has proven itself to be a very robust and reliable engine in production applications. Since first released in 2002, it has been used to develop thousands of applications, large and small. System support personnel have been very pleased with the reliability of .NET running on Microsoft® Windows Server™ 2003 and Windows 2000 Server. .NET has many built-in checks and balances that ensure the system stays up and running. Once again this makes business sense, as you do not want your e-commerce sites or any other line of business application failing.
Security was designed into the .NET Framework from the very beginning. It was not something tacked onto an existing product. As such the security features of .NET are top notch. Even just one security flaw in an application that a hacker can take advantage of can cost a business a lot of money. It can sometimes be fatal to a company if that exploitation becomes public knowledge, as it could lead to decreased customer confidence in the company.
.NET will allow your developers to develop applications that target a desktop, a browser, a mobile browser (like on your cell phone), or an application that runs on your PDA. The best thing about .NET is your developers can re-use a lot of the same code for each of these different types of applications. They will also use the same development environment and the same paradigm for development. All of this helps with developers being more productive in these new environments much more quickly than if they were forced to use different tools for each environment.
Everyone is talking about Web services and integrating with their customers these days. .NET is one of the leaders in this trend by making it easy to create a Services-Oriented Architecture within your company. This means that you develop small reusable services that can be used and re-used from many different applications. These services should be able to be called directly from applications within your organization, and across the Internet through an XML Web service. This allows your company to publish a specification that will allow your vendors and suppliers to communicate with you in a much more efficient manner than using a fax, telephone, or e-mail.
Figure 2. Comparison of major Web services vendors
Interoperation with Existing Applications
Every development organization has existing code in which they've invested time and effort. Many managers see .NET as a threat to their existing code base. Whether those existing applications are written in C++, Microsoft® Visual Basic® 6.0, Microsoft® Visual Basic for Applications, or Java, .NET will not interfere with those applications in any way. In addition, .NET can interact with almost any existing application using its interoperability features. Being able to leverage existing code will lower the migration cost to .NET, thus once again increasing the effective ROI.
Integration with Legacy Systems
One sticky point for many large organizations is the need to integrate with existing legacy systems. With the ability of .NET to consume any type of XML document and write any format of file quickly and easily, integration can be performed in several ways, including: XML Web services, Microsoft® BizTalk® Server, Messaging (MQ Series, MSMQ), data access (OLEDB, Microsoft® SQL Server, Oracle®), custom file formats, and many third-party utilities that let you talk directly to mainframe computers.
How to Get Started with .NET
Moving to a new technology is always intimidating for organizations. While .NET is very large, it is not that hard to migrate to. Since it will co-exist with your existing applications, there is no need to rewrite old applications. Simply write new applications in .NET and leave your older applications alone. However, there are several things you should do to prepare for your move to .NET.
Be prepared to upgrade any older hardware and older operating systems to newer hardware and newer operating systems to make sure you can take full advantage of the .NET features. Be sure to load the .NET Framework on any new systems you roll out to your company. This will allow developers to target applications to those machines much more quickly and easily.
Training and Developer Software
You will need to get some training for your programmers prior to doing your first project with .NET. This will cost you some money, but will be well worth it. A normal developer can eat up a lot of time trying to dig through all of the voluminous whitepapers, articles, and books out on the Internet to learn something that an experienced .NET trainer can teach developers in just a few minutes.
You will need to purchase copies of Microsoft® Visual Studio® .NET for each of your programmers on your staff to use when developing their applications. These training and software costs will probably need to be factored into the ROI for your first few projects.
What types of skills will your programmers need to develop? Training for your programmers should include topics such as XML, HTML, one of the .NET languages such as Visual Basic .NET or C#. You should also instruct your programmers in systems analysis and design, and architecture.
Architecture and SDLC
Just because you have purchased .NET and have your developers trained does not mean everyone will magically be productive and better programmers. You need to create a good foundation for everyone to build upon. An architect can help you design a good base foundation upon the .NET Framework to handle many of your common business problems. This architect should also assist you with preparing a Software Development LifeCycle (SDLC) document that will become the governance for your IT department. This SDLC will specify how applications are developed, maintained, tested, put into production, and what standards will be used to produce the application. By doing this you can ensure that all applications will conform to a known model that will persist for many years. This will make maintenance of applications much easier and lead to a lower total cost of ownership.
If your company does not have an architect on staff, or someone with a lot of .NET experience, it might be worth your time and money to hire someone to perform this function. Good architecture can save you potentially thousands of hours of coding and development time. If your staff is not up to the job, make sure you find a Microsoft Certified Partner to help you take this very important first step in establishing a solid foundation upon which to build your .NET applications.
How to Hire an IT Consulting Company
Like all professional services, the experience of those you're hiring is everything. While you should always use due-diligence when hiring any vendor, there are certain qualities to look for when hiring an IT consulting company. Below is a list of questions you should be asking each consulting company that tries to sell you their wares.
Step 1. Look at Their Business Model
Has the software company you are about to hire been around for more than 10 years? You want to make sure this company can survive the ups and downs of business. If they have survived, it is probably because they take care of their customers. Companies that do not take care of their customers do not last long.
Ensure that the company is not a one-man show. If your project is critical to your business, you can not put all of your eggs in one basket. If you hire an individual to do that work, what happens when that person gets sick, or has an emergency, or worse, gets another job that pays more than you? Any of these will spell disaster for your project.
Make sure that they have a real office in a real office building. Professional companies work in a professional setting. Be wary of a company that works out of their house; chances are they are not going to be a professional organization.
Also, make sure developing applications is the only thing they do. The only exception to this is if they offer development training or they otherwise sell their development expertise. In fact these latter items show they really believe in and understand what they are doing.
The company you hire should specialize in just a few areas (not be a jack of all trades). Many companies try to "do it all," but unless they are a huge company like IBM or Microsoft, there is just no way they can do this. If you are looking to have a custom software project developed, make sure they are experts in the language that they are going to use to create it in.
A good network of partners for other specialties should round out the company. If you are hiring a software development company, be sure they have a good networking company they can bring in to help when needed. You should then make sure the networking company they bring in also has the qualifications specified in this report.
Step 2. Look at the Personnel
Ask about the average tenure of the employees. Three years is a good mark, and while you're asking, check the average amount of software and IT experience of the senior staff. Nothing less than 15 years is acceptable. Your reputation is on the line, so you need consultants that have been good enough to thrive in technology's ups and downs.
Ask about the management of the company. Are they professionally managed by both business people and IT people? Look for an IT director that has at least 15 years experience managing large projects.
The principals in the company should have high visibility in the professional community. You will find that the leaders of successful companies are very active in the professional community. They will regularly contribute their time to speaking at user groups or maybe running user groups in their area of expertise, or they may run their own special seminars on IT and development topics.
Step 3. Look at Their Work
Get samples of prior work. Any company should be able to show you several examples of their previous work—not just the software, but also specifications documents and test plans for these projects.
Look for a documented approach to software development. Every company needs a process to follow. This process needs to be fully documented. If the company cannot produce such as document, then they do not follow a process, and you should avoid them.
Architecture is an absolute must for any company you hire. This should include a published set of programming standards, database standards, written documentation, and re-useable blocks of code that can be utilized by the project they will write for you.
References should be provided up front by the company you are hiring. Be sure to get at least 3 references from the company. Call these references and check up on them. Also ask the references if they know any other people that the company has worked for and try to follow up with these other people.
Step 4. Look for Validation
In addition to experience, look for third-party credibility. Easy ways to verify this are testimonials (with names and companies) from their customers and the vendors who license the languages they use. Make sure they are a Microsoft Certified Partner and even better, see if one of the persons on their staff is a Microsoft Regional Director.
Look for published articles and books. Editors don't risk publishing bad writers, so if your consultant has passed muster here, they're probably good at what they do. Finally, troll the list of speakers at big name developer events like Microsoft's Tech Ed, VSLive, or your local Microsoft events. If one of the persons in the company is on this list then that is a good indication they really know what they are doing.
Want More Information?
There are many Web sites and magazine articles that have been published about .NET in the past couple of years. There are also many case studies of successful .NET applications that have been deployed. Do a search on Google or Yahoo to find different business articles around .NET. Also check out the Microsoft case study Web site at http://www.microsoft.com/net/casestudies.
This article introduced how .NET can help your business applications succeed and produce a great return on investment. .NET will lower your development, maintenance, and deployment costs over the long run. Many companies have already chosen .NET and are well on their way to an efficient organization. Companies such as Levi Strauss, Transamerica, Sunkist Growers, Dollar Rent-a-Car, Barnes and Noble, and many others have either deployed, or are deploying cost-efficient, money-saving .NET applications. Your company could start getting these benefits too.
.NET in the Real World
Paul D. Sheriff is President of PDSA, Inc., which provides .NET consulting, products, and services, including an SDLC document and architectural framework (www.pdsa.com). Paul is Microsoft Regional Director for Southern California. His .NET books include ASP.NET Developer's Jumpstart (Addison-Wesley) and several e-books listed on PDSA's Web site. Reach Paul at PSheriff@pdsa.com.