How long does it take to make software!

the PM …[should] consult the team who would actually be doing the work on how long would it take them. It takes a little longer, but it creates a sense of ownership over the time line, because the team helped in
deciding it. Also, having team input brings to light certain assumptions and constraints which a single person might miss out on or ignore.

…Never give an estimate verbally or over the phone. Always send along a document which clearly states why you are saying it will take you x number of days…[the WBS] … , Make sure you can present your estimates
yourself to the boss or client, instead of relying on someone else to do that. The reason is that there are certain constraints and assumptions you would know better and could explain better, which would
not be lost in translation. Also, negotiations often happen at this point, and as a PM you are in a better place to know where you can cut down the time, quality or cost (the project management triangle)
because of the time and effort you’ve invested instead of the boss or a third party.

[via Green n White]


The Consultant’s Money-Back Guarantee

If they don’t feel what I’ve done is worth what they’ve paid, they can have their money back, no questions asked. I make sure they know this up front.

…Why? Because it’s your job to satisfy the client. That’s what they pay you for. If you buy a laptop from Apple or Dell or HP and when you try to use it, it doesn’t work, don’t you expect to get your money back? If
you don’t, would you ever buy a computer from Apple or Dell or HP again? So, one reason to offer a money-back guarantee is to develop future business with that client.

…But perhaps the most important reason to offer this guarantee is to force them, and you, to think about what value means to each of you. Well, yes, of course you want to clear this up before you go in, but
that’s not always possible. People often don’t know in advance what they want. They only know when they see it. Many of my clients ask for one thing when I come in, but through my consulting learn that they
really wanted something else that was more valuable.

An intelligent client picks an intelligent consultant and that’s a heuristic, too.

[via secrets of consulting]

Introduction to Connected Services Framework – CSF

The goal of CSF is to achieve rapid integration – with the minimum amount of custom coding – between Web services, and to reduce (or eliminate) dependencies between Web services.

Connected Services Framework provides a platform for developing, aggregating and using Web services by abstracting collaboration essentials, such as identity, service discovery, and profile management. It also provides collaboration context management, which is based on intelligent routing criteria.

A typical Web service aggregation uses the CSF collaboration context – the Session – to route messages (based on routing logic that can be altered at run time) to the participants (participating Web services) in order to facilitate a business scenario.

The interaction between the Web services and CSF is similar to that of computers connected to a hub in a star schema. In CSF, the Session is the hub and the Web services (the participants) are the computers.

The Session component is an intermediary Web service that provides service isolation, logical message routing, seamless identity mapping, seamless security scheme usage, and message interception services to composite Web service applications. It acts as the abstraction layer of each service rather than an abstraction of a platform service. Ideally, all the Web services in a composite application send messages to each other through the Session component so that each Web service need only work directly with the Connected Services Framework. The isolation that the Session component provides
by being the “middleman” allows each Web service to become independent of the other services. Using the CSF Session component for all message traffic in a composite Web service application increases
the modularity of the application components and decreases their “coupling.”

Your browser may not support display of this image.

The CSF Session component acts as a router or communications agent between all the Web service participants, as shown in the preceding illustration. It routes messages between all the participants based on the routing criteria specified in the manifest file or a custom route provided at run time. Each Web service sends messages to the Session (the runtime collaboration context), which then
forwards the messages to the appropriate participant Web services.

CSF Session component provides interception capability so that message structures can be transformed at run time and it provides logical routing capability, which allows the same message to one (or more than one or no) Web service conditionally

Identity Management

“Identity Management is the process and technology used to manage digital identities as well as
the policies that govern how the identities can be used to access IT resources”

Profile Management

Within Connected Services Framework, the Profile Manager component is a Web Services Enhancements (WSE) 2.0 Web service that provides:

  • WSE interface to Active Directory
  • BizTalk orchestration for propagating attributes across VAS systems
  • User-Service Mapping table

Service Catalog

The Service Catalog component is a Universal Description, Discovery, and Integration (UDDI) database that contains a list of all the services available within the CSF environment.
The Service Catalog may also contain information about the required policy for using the service. No commercial definitions should be stored within this catalog. The CSF Service Catalog is a technical catalog only.

[from CSF documentation]

more on [lavbox Connected Services Framework]

Posted in C#. 3 Comments »

ASP.NET – store XML based configuration in web.config

ASP.NET web.config, XML SectionHandler to store XML configuration data

XML Serializable Section Handler