DCSIMG
October 2007 - Posts - Simon Chulsky's Blog

October 2007 - Posts

MSDN Magazine November 2007 edition now available.

I'm really recommending for each developer to subscribe for MSDN Magazine news, it is the Microsoft Journal for Developers. For years I'm enjoying from the quality information, articles and source code of the samples. MSDN Magazine Homepage, All Articles RSS Feeds

Few recommendations from November 2007 edition

CLR Inside Out: Managing Object Lifetime In this column, Tim Fischer have set out to help developers who are consuming .NET or COM classes to better understand lifetime management, recognize situations where you can run into resource traps, and know how to solve these issues. Each C# developer should read this article to refresh the common basic knowledge on how to manage the objects inside the projects. 

Toolbox: Updated Grid Controls, Open-Source Comparison Tools, and More I'm always reading the Toolbox column; here you can find new books reviews, useful tools and components. This time I found interesting free tool for quickly compare and merge files.

Posted by Simon Chulsky
תגים:

New KCS web site on the air!

The beta version of KCS web site was published, special thanks to Nik Rogel, Liron Hayun and Diego. The web site includes link to this blog and desription of the Generica product.

http://www.kc-sys.com

KCS web site

Posted by Simon Chulsky
תגים:,

My RSS subscription address was updated.

Hi all,

I changed my RSS subscription address to http://feeds.feedburner.com/simonchulsky you are welcome to update it at your RSS Reader software.

 

Posted by Simon Chulsky

Requirements Management and Engineering is a quality factor of ALM.

Requirements banner

Overview

This is a first post of series about Requirements Management and engineering practices. This post will talk about the importance of requirements management within a product development project, when the project could be for a new consumer product, a web site, a system or a software application. Also, I’ll write about the methodologies and the best practices in a different projects types and sizes allover application lifecycle management (ALM) phases.

 

Next posts will be written in case someone will request it, just keep your comment with the topic or suggest the new one.
 -         Popular Requirements Management Tools Review
 -        
Requirements Management Best Practices
 -        
Manage Requirements with Team Foundation Server (TFS)
 -        
Generica solution for Requirements Management  

Introduction

First of all, let’s answer the main question, why it is so important to manage project requirements? I think the best answer for this question is to make parallel with chess game, when the win in game equals to successful project. Before the game starts, professional chess players work hard on the game strategy.
Strategy it is a general thought process used to plan a game of chess. Strategy is more concerned with distant future moves than the calculation of tactics for the next move.  The tactics in a chess game is a term used to describe a short-term sequence of moves involving threats and counter threats.
Source: Glossary of Chess Terminology by David Hayes

In development projects requirements management is the strategy and the tactics of the Application Lifecycle Management. Next image demonstrates the requirements management role in the software quality lever. 

 - This data from Boehm: Software Engineering Economics.
- The picture was taken from the “Maximize the business value of the software” presentation from Borland.

The common problems of requirements management and engineering

It is two main factors that define the success of the requirements engineering and management process, methodology and the tools. It is very important that the tool we are evaluating supports the organization methodology and vice versa.  Organizations spending a lot of money to evaluate and to buy the tools that promise to improve the process with build-in methodologies, features and regulation standards, but they don't analyze is the organization can adopt those changes.  
Commonly, the requirement management tools are very difficult for organization adoption and integration into the application lifecycle. From my experience with the customers in 70% of cases, the end result of most popular tools like Requisite Pro and Doors has proven unsuccessful. Let’s see the common reasons for the failure.    

  • The price is the general limitation; it breaks the concept of data transparency and collaboration. The tool may the best tool in the world, but not for the $3 - 6,000 a seat price tag. The budget limits the access of consumers to the information inside the professional system.
  • Complexity of the tools causes to any business analyst or project manager to stay out of the loop. The best work environment for this kind of consumers is to work directly on the document and to edit features as unstructured data with reach formatting and not on hierarchical tree of requirements. This fact breaks the chain; the next paragraph will show the effect of different not synchronized work environments. 
  • Microsoft Word into the requirements management tools, but not vice versa. Commonly requirements management tools provides a good enough way to import requirements from Word Document to the hierarchical structure.  This process has side effects like conversion of Visio objects to the pictures, formatting and the other data looses. But in all of the cases there is no way to synchronize the requirements with the source document, the only way is to do this manually. As a result the information collaboration between the document workers like business analysts, consumers, etc is damaged.
  • Multiplicity of professional tools at ALM is a real problem, the integration between the tools is not nature, all project information not available from the single user interface and no way to analyze and manipulate with full project information. For example, if the document management system not integrated with the requirement management tools the configuration and the changes management become to be the hard manual work.

Requirement Management tools evaluating tips

  •  First of all I'm really recommend to use consulting services from the start of tools evaluating process to the methodology definition and the tool adoption, good consultant's experience will save you a lot of time and money.
  • Try to sign site license contract with the software vendor, if this option not relevant for your organization the recommended price tag for seat license should be around $200 - $400.
  • Check the tool integration and bidirectional synchronization of requirements within the Microsoft Word documents. Generica product is the leader in providing solution for this market.
  • Try to buy one generic and customizable product for full application lifecycle management. Team Foundation Server with Visual Studio Team client from Microsoft is a good sample.
  • Check the features of the product, it should contain the most important features, like traceability, data control and analyze features.
  • Test product's technical characteristics like scalability, performance, security, etc.

Hope this post was useful and helps to choose the best product for your organization.

The best time to rewrite your products.

The most important key of any success is timing. Good manager always feels when the right time and place to initialize and run the business processes. In R&D world the timing playing critical role, because the technologies coordinal updates every few years, when the customers always seek for the best standards in performance, communications, security, integration and other characteristics in your product. It is dramatically important, for the business success, to have competitive and technological updated products.  The other important point is the development cost; new frameworks usually decrease the cost of the development, because they include new concepts, technologies and the best practices implementation.

In Q4 of 2007 we can feel the massive wave of new technologies from Microsoft which will wash all of us in 2008. Today is the best timing to take one or more R&D teams and to start planning and write prototypes for the next generation product. Let's start with few steps on how to kick off the new project.

Step 1: R&D Environment

  • Chose Product Lifecycle Management (PLM) support systems and define process methodology. I'm recommending to start with TFS from Microsoft, if you don't use the other products (advise: wait for Rosario release)
  • Start coding with VS Orcas 2008 Beta 2.

Step 2: Product Architecture

Today when we are talking on architecture we are talking about SOA. As a start point I'm recommending to understand and to learn the next projects:

  • .NET StockTrader Sample Application from MSDN
    This application is an end-to-end sample application for .NET Enterprise Application Server technologies. It is a service-oriented application based on Windows Communication Foundation (.NET 3.0) and ASP.NET, and illustrates many of the .NET enterprise development technologies for building highly scalable, rich "enterprise-connected" applications. It is designed as a benchmark kit to illustrate alternative technologies within .NET and their relative performance.

    I really hope this project will be updated to .NET Framework 3.5; the strong part of this project is a .NET StockTrader Sample Application Configuration Service , its shows how to implement centralized configuration management of clustered service nodes.
  • NServiceBus from Udi Dahan- The Software Simplist blog.
    NServiceBus is an open source communications framework that makes building enterprise .NET systems easier. By providing scalability critical features like publish/subscribe support, integrated long-running workflow, and deep extensibility NServiceBus provides a solid foundation for any distributed system.

Step 2: Define Server & Client environments

  • Use Windows 2008 Server as your server application OS.
  • Stay with Web Client only if it possible.

Step 3: Use new technologies

  • WCF, WF
  • Ajax
  • LINQ

Hope it will push you, to start rewriting your product from scratch, because it is really the best timing to do that and to keep the old problems behind you ;)