My home on the web - featuring my real-life persona!

Hello Becky

This is a test

Discussion Question: Describe project selection and what are the pitfalls?

A general rule of thumb for project identification is that a company should come up with about twice as many projects than they actually have time and resources to do. Project ideas should come from all areas of the company, from the operations staff to senior executives. Ideas can come from everywhere - industry magazines or communication with existing and potential clients is a good starting point.

We have to create a list of potential projects with brief description so the decision maker has a good understanding of the potential project. Then the hard part starts, the project selection - a prioritization of the projects and decisions what project should we move forward with and which project should we drop.

When evaluating projects, some aspects that must be considered are value for the company, availability of resources, support from internal champions and external potential clients and how it fits into the goal plan of the company.

For the actual selection, there are three different approaches, using financial and non-financial factors:

  1. Financial analysis of the potential project and only few non-financial aspects (p. 34)
  2. Initial financial screening of potential projects followed by a scoring process
  3. Multi-factor scoring process where financial aspects are just one of many equally important factors

For the financial approach (1) we usually have four different models (NPV, BCR, IRR, PP) and each is bearing its own set of risks and benefits. In general, the main problem with the financial models is that they do not consider how the projects align with the company’s strategic goal. A project that looks good financially but does not align with the general company idea can pull it into the wrong direction and make it a bad choice even if it is fiscally sound.

Approach (2) is a process that first applies approach (1) and then uses a scoring process like (3).
In approach (3) we use a scoring model, different potential criteria for example risk, timing, resource requirements, cost and orientation with company goals are identified [if this follows (1) then cost is not a factor here since that has been the initial sort criteria]. Those criteria have to be categorized by importance and mandatory criteria have to be identified. Next, the criteria are weighted in a selection and prioritization matrix that assigns ratings and weights. With this matrix, we can identify the priority of the projects and also run through a few “what if” scenarios.

The risks for (2) and (3) are minor if the analysis has been done properly. It can be a lengthy process and take up a lot of time and energy. While evaluating the different criteria, we have to make sure that our assumptions are accurate and that the rating and weighting factors are properly set.

Discuss why the data types are the same across languages in the MSIL.

The data types in the different languages in the Microsoft Intermediate Language (MSIL) to provide compatibility. In .NET, various languages can be used but in the end they have to be able to interface with each other. The .NET compiler compiles the languages into MSIL and it can only do this without problems since the data types are the same. It would be incredibly difficult if each language had its own data types or its own definitions of data types. A string for example is a “group” of characters or digits and every program understands it as such. Now imagine another programming language would define a string only as a group of characters and not consider digits and a combination of characters and digits would be called a word, then the VB string cisp238 would be considered a word in the other languages and the .NET compiler would have to examine all strings to see if they need to be converted to be compatible.

I found a real world examples: In VB.NET, the data type Long is a 64-bit number while in VB6 it was a 32-bit number. So, it would require a lot of care to bring those two languages together and every time one languages uses a data type Long you would have to exactly specify what it means. The rules for the different .NET languages are specified in the Common Language Specification (CLS).

I found an interesting link about how different languages define the primitive data type Boolean: http://en.wikipedia.org/wiki/Boolean_datatype which is a good example of the advantages of uniform data type definitions.

It also seems like MSIL is the great “equalizer”. People used to have arguments about the speed of different programming languages, or better the speed of the applications coded in those languages. The argument was that C++ was faster than VB but in .NET everything is going through the MSIL and that determines the speed.

Compare the HTML Server controls to Web controls (ASP.NET controls).

As I pointed out in the answer to the first question, HTML server controls are HTML controls with the runat attribute set to “server”. They are an easy way to create server-side code when you already know HTML. Unfortunately, since they are based on HTML their abilities are still limited.

Web controls are more advanced and they are not based on HTML anymore but on the Web control class. Some of the Web controls look like old style HTML controls but there are additional controls that include new functions. Web controls have several other advantages, for example they are able to determine the browser client agent. In HTML, you had to figure out a way to be compatible with one browser without breaking the code for another browser. Web controls are able to render their functionality automatically depending on the client agent.

Most Web controls can also fully use themes and templates to match the controls to the look and feel determined by CSS.

Compare the benefits of using HTML Server controls with using HTML controls.

HTML controls are part of the HTML language. You can use and address them in client-side scripting but not from the server side.

From what I understand, almost every HTML control can be converted to a server control by using the <runat=”server”> tag in the HTML code on your ASPX code which signals the server that this control is server-side. On page load, the server control generates the code for the control and sends it to the browser.

HTML server controls have the advantage of retaining status (viewstate) - that means, the server knows if the checkbox is checked or not and if an option is selected or not. This is particularly helpful if you refresh a pages or go back to it. A regular HTML control would be reset to the state in the HTML code. An HTML server control on the other hand checks with the server and the server will tell the page, that the user had selected option B and that the name entered in the text field was Susanne. With an HTML server control, the code for the control and the code behind is executed on the server but it can interact with client-side code.

HTML server controls seem to be the in-between step between old-fashioned HTML controls which don’t do much and are purely client-side and fancier Web controls or ASP.NET controls. The resemble HTML controls and make the transition from a static HTML page to a server driven ASP page easier. ASP.NET controls are not based on HTML anymore and are basically a new programming language that you have to learn.

Next Page »