Using Traffic Lights in Project reporting
Following my previous article on Earned Value Management (Project Management: Understanding Earned Value Management), here is a very simple technique that probably many of us are already using, which helps to clearly define project health on an easy way.
Traffic Lights definition and usage
These indicators are generally used in summary reporting (the status of activities within a project), or in program reporting (the status of projects within a program). They are particularly useful for giving management focus on activities or projects which require particular attention.
We sometimes use the term RAG for these indicators, stating for Red / Amber / Green.
The definitions of RAG indicators are agreed at the beginning of the project and used in reports and presentations regarding its status.
Examples
The project team has agreed to define following boundaries on Cost Performance Indicators. (Remember that CPI = EV / AC) The “traffic light” indicators could then be defined as:
- Red if CPI < 80%
- Amber if 80% ≤ CPI ≤ 95%
- Green if CPI > 95%
Usage in Microsoft Project® (Project plan)
Here is an example of using traffic lights inside Microsoft Project®.
How can you implement such indicators in Microsoft Project ®?
- Create a new custom field for task, with type: Number,
- Select Custom attribute: Formula,
- Enter the following formula,
The result is:
- 1 if SPI >=0.9,
- 2 if 0.8=<SPI<0.9,
- 3 if SPI<0.8
- Select display graphical indicators,
- Choose your graphical indicators.
Usage in Microsoft Office Excel (Project report)
Another example of traffic lights usage, an issue log in Excel, I have used the conditional formatting to color cells.
Here are the rules used for the conditional formatting.
Usage in Microsoft Office PowerPoint (Steering committee presentation)
The last example I wanted to show is the usage of traffic lights in PowerPoint presentations. Here is a print screen of one of my sides regarding my project cost status.
Overall project cost indicator is on top, and a more detailed presentation for Capex / expenses is given below.
Advantages of such technique
- It is very intuitive and visual,
- And very effective for summary reporting, or management presentations.
You should pay attention on following points
- The values of the indicators must be agreed at the beginning of the project, and should be consistent with other projects
- The summary nature of the indicators can be misleading (i.e. how “green” is an activity, what is the trend?)
- They do not provide sufficient information to allow diagnosis and interpretation, without discussion.
Consequences and actions
- Maintain the performance of projects/activities which are “green”,
- Diagnose the risks and issues of projects/activities which are “amber” and take appropriate action to remedy problems,
- Diagnose and remedy issues with projects/activities which are “red”, seeking management support and endorsement as appropriate.
Hide SharePoint 2007 list column from edition using JavaScript
Here is a quite simple way to hide some column in a SharePoint list when you create/edit/view a list item, using JavaScript.
Here is my list definition:
I just have Title and MyHiddenColumn columns.
Here are the 4 pages where my list can be viewed and edited.
Create new item:
List view:
Display item:
Edit item:
What I want to do is to hide the MyHiddenColumn column (this could be useful to manage confidential information related to a list item).
To hide this column to the list view, I just have to remove the column from the view (easy).
To hide the column on the 3 other screens, I will use the following JavaScript code, included in the page:
<script language="javascript" type="text/javascript">
_spBodyOnLoadFunctionNames.push("hideFields");
function findacontrol(FieldName) {
var arr = document.getElementsByTagName("!");
// get all comments
for (var i=0;i < arr.length; i++ )
{
// now match the field name
if (arr[i].innerHTML.indexOf(FieldName) > 0) {
return arr[i];
}
}
}
function hideFields() {
var control = findacontrol("MyHiddenColumn");
control.parentNode.parentNode.style.display="none";
}
</script>
Where MyHiddenColumn is the name of the column I want to hide.
You can edit the page using Microsoft Office SharePoint Designer.
Save your change.
The result is then:
Create new item:
Display item:
Edit item:
Not so stupid question now, how can I edit this hidden field? The solution is Data Sheet view:
If you ensure that standard users cannot use another view than the default one (without this column displayed), this is a simple solution to add confidential information to a list item without creating a second list.
Conditional formatting in a SharePoint 2007 list view
I have just set up a new SharePoint 2007 team site to help me managing my new project documents. I have the following list where I record all mandatory documents for my project and check if the document has been produced or not.
I wanted to find a simple solution to colour code each line of the list view, to display green background for documents that exists (Done == ‘Yes’) and red colour to non-existing documents (Done == ‘No’).
Here is how to proceed:
First let’s create a new view. Click on the View drop down list and select Create View.
Select Standard View from the list of available type of view.
And create a new view that display Attachments if any, Document Name and the "Done" flag.
Once created, open Microsoft Office SharePoint Designer 2007 to edit this view. First open the site and then select the .aspx page that corresponds to the view.
Right click on the List View Web Part and select Convert to XSL Data View. This will convert settings for the current view into data view parameters.
Once converted, right click on the web part and select Conditional Formatting.
We are now ready to add new formatting conditions. On the Conditional Formatting Tool box, click on Create and choose Apply formatting
The condition criteria window opens; you can now enter your conditions. Click on Click here to add a new clause…
Enter criteria. In our example, if the field Done == ’Yes’ then we modify the style to display green background.
Do it for the second formatting condition, if the field Done == ’No’ then we modify the style to display red background.
To complete this example, we can also add a data sorting property to our view. Click on Data View and select Sort and Group…
And sort by Document Name ascending order.
Save your changes.
And here is the result.
It remains some comments so that this view could be perfectJ, I still not have time yet to fix those issues.
First issue: If I try to add this view as a web part on my site Home page, I get the following error:
Cannot save the property settings for this web part. Cannot complete this action. Please try again.
Second “issue”: When you mouse over an item, it is displayed with default background, which can be fixed probably
Last comment: The modified view can now be only edited using Microsoft Office SharePoint Designer 2007.
SharePoint 2010 Feature Stapling
I just discover while working on the SharePoint 2010 MCPD certification, what is Feature Stapling.
Feature Stapling allows you to create a feature and then associate it with any site definition without ever touching the site definition files themselves. Your feature will be executed when the site is being provisioned.
The full article can be read on sharepointmagazine.net.
Brain dump sheet for 70-564 certification
Here are my notes, laid out as a Q&A, for the next exam I am preparing, the last one to become Microsoft Certified Professional Developer (MCPD): ASP.NET Developer 3.5 ...wow ;-)
I have prepared this article using OneNote within SkyDrive. This is by the way an excellent tool to take notes, share them and access them from everywhere and for free.
Q1: What are the different Page directives?
The author of this article gives this definition for Pages Directives:
Asp.Net Page directives are something that is a part of every asp.net pages. Page directives are instructions, inserted at the top of an ASP.NET page, to control the behavior of the asp.net pages. So it is type of mixed settings related to how a page should render and processed.
The reference article on MSDN gives all the details regarding Page Directives.
Q2: What are the different application folders?
Based on this MSDN article, ASP.NET recognizes certain folder names that you can use for specific types of content. The table below lists the reserved folder names and the type of files that the folders typically contain. Following folders can be used:
· App_Browsers: Contains browser definitions (.browser files)
· App_Code: Contains source code for utility classes and business objects that you want to compile as part of your application.
· App_Data: Contains application data files including MDF files, XML files, as well as other data store files.
· App_GlobalResources: Contains resources (.resx and .resources files) that are compiled into assemblies with global scope
· App_LocalResources: Contains resources that are associated with a specific page, user control, or master page in an application
· App_Themes: Contains a collection of files (.skin and .css files...) that define the appearance of ASP.NET Web pages and controls
· App_WebReferences: Contains files that defines a Web reference for use in an application.(.wsdl , .xsd,.disco and .discomap files)
· Bin: Contains compiled assemblies (.dll files)
Q3: What is a JSON web service in asp.net?
JSON for JavaScript Object Notation specifies how the Web method return-type is serialized. For your information, the other one is XML.
Using this article and the code given by the author, i made a web service test and play with the result. Here is the result I get while invoking the web service:
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">
[["CarNumber1","CarColor1","CarMotor1"],["CarNumber2","CarColor2","CarMotor2"]]
</string>
I am not really sure of the added value of such format… will see...
Q4: What is the difference between a web site and a web application?
Here is what I found when googling this question:
A web site is just a group of all files in a folder and sub folders. There is no project file. All files under the specific folder - including your word documents, text files, images etc. are part of the web site.
You have to deploy all files including source files (unless you pre compile them) to the server. Files are compiled dynamically during run time.
As a conclusion, the author writes:
· A web site is good for you if you just want to create web sites and share with others. It is ideal for new projects.
· However, "web application project" is better if you are planning to migrate your Visual Studio 2003 or 2002 web sites into Visual Studio 2005. Otherwise you may end up spending lot of time to exclude unwanted files from your web site folder.
The full article is visible on dotnetspider.com
Q5: What are Session state modes and how to use them?
Session state modes define the way how session state information is stored. Here are the definitions taken from the MSDN article and the main information to remember:
· InProc mode, which stores session state in memory on the Web server. This is the default.
· StateServer mode, which stores session state in a separate process called the ASP.NET state service. This ensures that session state is preserved if the Web application is restarted and also makes session state available to multiple Web servers in a Web farm.
· SQLServer mode stores session state in a SQL Server database. This ensures that session state is preserved if the Web application is restarted and also makes session state available to multiple Web servers in a Web farm.
· Custom mode, which enables you to specify a custom storage provider.
· Off mode, which disables session state.
Q6: What are "Custom Profile Provider" and "Custom Membership Provider"?
For this subject, i also googled and find the following sites that contain definitions and samples:
· For Profile provider (DavidHayden.com)
· For Membership Provider (MSDN)
Bonus "question", list of control we should know for this exam, with a link to an MSDN article
· FormView:
The FormView control is used to display a single record from a data source in a table. When using the FormView control, you specify templates to display and edit bound values. The templates contain formatting, controls, and binding expressions to create the form. The FormView control is often used in combination with a GridView control for master/detail scenarios. This section contains the following topics about the FormView control
· ListView:
Displays the values of a data source by using user-defined templates. The ListView control enables users to select, sort, delete, edit, and insert records.
· DataList:
A data bound list control that displays items using templates.
· Repeater:
A data-bound list control that allows custom layout by repeating a specified template for each item displayed in the list.
· DetailsView:
Displays the values of a single record from a data source in a table, where each data row represents a field of the record. The DetailsView control allows you to edit, delete, and insert records.
Some tips on ASP.NET, 70-562 certification cheat sheet
I wanted with this post to give a list of tips around asp.net (as part of my next certification 70-562 TS Microsoft .NET Framework 3.5, ASP.NET Application Development)
The first element ASP.net developer should know is the ASP.net page life cycle. Knowing this area will allow you to correctly initialize controls. Here is a great article on MSDN on the life cycle, which details the following sections:
The second point is related to page redirection and page transfer. What is the difference between:
· Response.Redirect("url");
· Server.Transfer("url");
· HttpContext.Current.RewritePath("url");
As a summary, the author gives the following points:
· Response.Redirect is more user-friendly, as the site visitor can bookmark the page that they are redirected to.
· Transferred pages appear to the client as a different url than they really are. This means that things like relative links / image paths may not work if you transfer to a page from a different directory.
· Server.Transfer has an optional parameter to pass the form data to the new page.
The last option, HttpContext.Current.RewritePath, is cleverly detailed in this article with a very simple to understand example.
The third tip of this post is the difference between #EVAL and #BIND.
In few words, #EVAL is one-way(read-only) and #BIND is a two-way (updatable) binding.
Copy/paste of the holy MSDN article on Data-Binding Expressions Overview
Data-binding expressions are contained within <%# and %> delimiters and use the Eval and Bind functions. The Eval function is used to define one-way (read-only) binding. The Bind function is used for two-way (updatable) binding. In addition to calling Eval and Bind methods to perform data binding in a data-binding expression, you can call any publicly scoped code within the <%# and %> delimiters to execute that code and return a value during page processing.
Very stupid stuff to remember, single-quotes should be used and not double-quotes
<asp:TextBox Runat="server" ID="txtProductName" Text='<%# Bind("ProductName") %>' />
Forth tip, let's discuss about AJAX and the difference between $get and $find
$get is an alias for getElementById. In addition, this function has additional code for those browsers that have not implemented getElementById. (Labels, textboxes are example of elements)
$find is a shortcut for Sys.Application.findComponent. (Widgets like calendars are examples of components)
· Both, $get and $find, appear return a reference to a DOM object created using mark-up or at runtime
· Both, $get and $find, appear to return a component reference
· While both methods work on elements and components, it’s recommended to use $get for elements and $find for components.
ITIL V3 core volumes and their processes
As part of my exam preparation for ITIL V3 foundation, here is a very simple flowchart that shows all 5 ITIL Core volumes and their processes. Inputs/outputs are also displayed.
This exam will close the 2010 certification season :-), see you next year... MCPD web 3.5 is in the pipe, will see for others...
This exam will close the 2010 certification season :-), see you next year... MCPD web 3.5 is in the pipe, will see for others...
Subscribe to:
Posts
(
Atom
)