Doing .NET Right … Looking at the Critical Success Factors

Published in TDAN.com April 2002


Introduction

The recent Microsoft announcement and the subsequent significant advertising program has made .NET a hot item. Some companies have adopted .NET as their architecture of the future and many others
are investigating it. Interesting enough, .NET is not a Microsoft peculiar product but is based in part upon standards developed by ECMA (1), an international industry association, with
headquarters in Geneva, founded in 1961 and dedicated to the standardization of information and communication systems. Microsoft, Sun, and IBM, among others, are members of ECMA.

The Microsoft .NET (MS .NET) Suite is a product suite, based upon the .NET standards that enables organizations to build application systems, usually web-based, and enterprise-class Web Services.

.NET Project Technology-oriented Critical Success Factors Critical Success Factors (CSFs) are “those limited number of areas where ‘things must go right’ “(John Rockart of
MIT, 1982). A Microsoft .NET development project has both management and technology critical success factors.


The .NET project technology-oriented CSFs include:

  • MS .NET Best Practices
  • UML Object Oriented Approach
  • Service-based Component Architecture

 





MS .NET Best Practices

In a Microsoft only environment, MS .NET architecture should be strongly considered. The MS .NET (see Framework Diagram) contains a variety of system components that handle various languages, web
services, user interfaces, data handling, XML (extended Markup Language) handling, the Common Language Run Time (CLR) component, and interfaces to various servers.

MS NET is language-neutral platform within a Microsoft environment for developing business services over the Web. It is highly interoperable and fully object-oriented. .NET incorporates the best of
Microsoft and Internet technologies and is an evolving de-facto model for distributed computing. .NET Objects/Components can be made to be extensible into TRUE Web Services.


MS .NET Framework Diagram (2)

MS .NET systems should be implemented utilizing an N-Tier Architecture (see .NET Logical Tiered Architecture diagram below). The .NET Presentation Layer Tier should utilize MS ASP.NET and be based
upon Use Case analysis and prototyping and upon User Interface Standards and Best Practices. The .NET Business Logic or Middle Tier(s) Components should utilize .NET compatible languages,
especially VB.NET or C# and be based upon Use Case analysis. The .NET Data Services Tier should utilize MS .NET ADO.NET and be based upon Use Case analysis.

 



Figure – .NET Logical Tiered Architecture (3)


UML Object Oriented Approach

A UML object-oriented approach should be followed in developing a .NET application. Objects are everywhere. The universe is made of objects. Objects are made of objects. Albert Einstein and Stephen
Hawking have studied objects. Objects may be tangible or intangible. The Object Paradigm can be implemented with rigor, for completeness, while retaining its inherent flexibility.

Object-orientation (OO) is an industry standard method for developing robust business services delivered over the Web. OO organizes a business domain in terms of Objects and their responsibilities.
Objects represent real-life business entities. Example: Business Party Roles (for example, Underwriters or Customers), Products, Resources, Money, etc. Objects have real-life business
responsibilities Example: Underwriters manage Risks, Customers buy products. OO provides reuse – “Build once, use and/or reference many times”. OO is supported by the Unified Modeling
Language (UML).

The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other
non-software systems. The Object Management Group (www.omg.org) has adopted UML as the industry standard. UML provides standard notation and semantics

UML provides traceability/connection between business concepts and the technical artifacts of software applications. UML is the industry standard method for:

  • Modeling software components
  • Visually representing the mechanisms and services of the system.

UML enables architects to develop technical blueprints out of business specifications. UML is platform neutral and OO Centric.


Service-based Component Architecture

.NET applications should be designed using a Service-based Component Architecture.

Components should be analyzed and managed according to Component Levels. Enterprise Conceptual Components should be developed, and documented. Solution Design Components should be derived from
Conceptual Components. Implementation Components should be derived from entity and composite solution design components.

A Service-based Component Methodology should be implemented. A component, by definition, contains one or more well-defined interface. A component can handle one or more business or system event.
The decision event action triggered by the event handler constitutes a part of the methods or behavior of a component. Components should be designed to apply the principal of “separation of
concerns”.

Middleware should provide the implementation mechanism for component architecture.


.NET Project Management-oriented Critical Success Factors (4)

The .NET project management-oriented Critical Success Factors include:

  • Business Driven Approach
  • Skilled Development Team
  • Project Management Skill
  • Knowledge Transfer/ Mentoring


Business Driven Approach

A business driven approach is critical for any large application development effort. It ensures that the requirements of the business are clearly understood and completely represented in the
solution application. Getting the Business Requirements right is therefore the most important part of the software development process.

A Business Driven Approach ensures:

  • Business scope clearly understood and defined
  • Business functional requirements captured and validated
  • System developed will satisfy the expectations of the user community

We recommend the business driven, object-oriented UML approach to .NET software development because it provides the tools that support a business focus in all phases of the software development
process.


Skilled Development Team

The .NET technology choice not only imposes the need for object orientation in the business architects and designers but in the developers as well.

The .NET environment is brand new. .NET is based on a true object model. Therefore, developers must have experience in object oriented programming environments to effectively use the .NET
environment. The .NET Integrated Development Environment (IDE) is a new object-oriented technological environment that requires a skilled development team that:

  • Strictly follows object oriented programming standards and practices
  • Is able to draw parallels with similar environments to devise creative solutions
  • Works closely with business architects
  • Participates in user communities to keep abreast of development issues.

Programmers with no OOP experience but with strong VB skills can probably build applications in .NET, but the deployment may tend to be sub-optimal and difficult to maintain and evolve.


Effective Project Management

Project Management Best Practices are to:

  • Understand the critical stakeholders & manage their expectations by clearly defining/communicating deliverables purpose and content
  • Manage scope change by means of a change management process
  • Report and review:
    • Progress against deliverables
    • Issues/Resolutions
    • Executive Review

A .NET project manager will balance cost, schedule and functionality.


Successful Knowledge Transfer

Knowledge Transfer is critical for the effective transition of the application to the deployment and maintenance teams. It facilitates quick system problem resolution when they arise in production
and ensures system extensibility when additional functionality is needed. Knowledge transfer is important because it allows for an effective transition of the .NET application to the business
knowledge-worker environment.

A combination of mentoring and training ensures that the knowledge required to take over the application, and maintain it, is effectively transferred to the appropriate personnel who will take
charge of the system.


.NET and Web Services

“Web services are self-describing, self-contained, modular applications that can be mixed and matched with other Web services to create innovative products, processes, and value chains. Web
services are Internet applications that fulfill a specific task or a set of tasks that work with many other web services in an interoperable manner to carry out their part of a complex work flow or
a business transaction. In essence, they enable just-in-time application integration and these web applications can be dynamically changed by the creation of new web services. Various applications
that are available on the Internet can be accessed and invoked at run time without prior knowledge and programming requirements to enable business processes and decision-making at Web
speeds.” (5) Both J2EE and .NET can be used to develop Web Services. According to WebServices.Org, the key benefits of Web Services (6) are:

  • Software may be presented as a Service
  • New business partnerships can be constructed dynamically
  • Common services accessibility
  • Web services constructed from applications meant for internal use can be easily exposed for external use without changing code.
  • Web Services can be based on universally agreed upon specifications
  • Greater agility and flexibility from increased integration between legacy systems
  • New market opportunities.

The relevance of Web Services to the point being made here is that Web Services are natural components, as defined above, which can be constructed using either .NET or J2EE technology. The N-Tier
Component-based Architecture approach, using business-based UML best practices as discussed above, is the key. Using .NET, the Web Service external interface will use SOAP. The Data Services will
use ADO.NET and the middle tier will utilize .NET managed components.


Web Services Examples

For a hospitality industry application, flight arrangements and car rentals are natural Web Services. For a financial services company, we have identified certain risk mitigation and foreign
exchange components that will likely be implemented as web services.


The Bottom Line

.NET and J2EE as technology architectural frame works are comparable. Any performance advantage is likely to be temporary. The decision to use one over the other will likely focus upon the overall
technology architecture environment and upon staff knowledge considerations. The bottom line to success in present and future project endeavors will be the critical success factors discussed above:

  • Business Driven Approach
  • Skilled Development Team
  • Project Management Skill
  • Knowledge Transfer/ Mentoring
  • MS .NET or J2EE Best Practices
  • UML Object Oriented Approach
  • Service-based Component Architecture.

(1) See http://www.ecma.ch

(2) See materials related to http://microsoft.com/net

(3) CIBER .NET Best Practices (T Finneran, D Solensky, W D’Costa, A Verma)

(4) This section was developed, in part, by a proposal team, including T Finneran, D Solensky, W D’Costa.

(5) IBM alphaWorks web site – (www.alphaworks.ibm.com)

(6) See Webservices.org article Why Web Services

Share

submit to reddit

About Thomas Finneran

Thomas R. Finneran is a principal consultant for the IDennedy Project. He has proposed an approach to use the Organization for the Advancement of Structured Information Standards (OASIS) UML Standard for privacy analysis. He was a consultant for over 25 years for CIBER, Inc. He has acquired over twenty-five years of experience in the field of information technology. His strengths include Enterprise (including data, information, knowledge, business, and application) Architecture, business and data analysis, UML Object Analysis and Design, logical data modeling, database systems design and analysis, Information Resource Management Methodologies, CASE and metadata repository tools, project management and Computer Law.  

Mr. Finneran has held such titles as Director, MIS; Manager, Corporate Data Strategy; Manager, Data Administration; Managing Consultant; Manager, Standards and Education; and Systems Designer.  These companies include The Standard Oil Company, Corning Glass Works, ITT, ADR, and the U.S. Navy.  In addition, he was Vice President and General Counsel of TOMARK, Inc., the developer of the highly successful ABEND-AID software package. He has a Bachelor of Arts, Ohio State University, a Master of Business Administration, Roosevelt University, and a Juris Doctor Degree, Cleveland State.  He is a member of the Bar of the U.S. Supreme Court and of Ohio, New Jersey, and Connecticut.  Member of Patent Bar.

 

Top