Tuesday, March 22, 2011

PowerPoint Footer: Why they make sense but are still broken

Have you ever tried to make a PowerPoint template?  PowerPoint is one of those great Office tools that is frustrating to use because it's chock-full of features that most people will never use.  Those who do use them often find them to work exactly how they would NOT be expected to work. Confused?  Yeah, now you know how I feel after 4 hours of troubleshooting PowerPoint footers.

Footers.  They are those things that are at the bottom of the slides that include such things as Client names, Dates, and Page Numbers.  Sometimes you want these on slides and sometimes you don't, like on Title Slides and Section Headers (otherwise known as Section Dividers).

image image
Slide with Footer Section Header with no Footer


Type of Footer On Off
Slide Master
  • Add Placeholders
  • Delete the Placeholders
    NOTE: You cannot turn Off the Placeholders in a Slide Master.  You can only delete the text boxes.
Layout
  • Turn on Footers
    Note:  You can only turn on Footers if the Slide Master contains a Footer
  • Turn off Footer, or
  • Delete the Placeholders
    NOTE:  Once you have deleted the Placeholders, you can only re-add the Footer if the Slide Master contains one.
Slide
  • Insert Footer pieces (Date and Time, Slide number, and Footer)
    Note:  You can technically insert Footer pieces on any slide but they will only appear if the Layout contains the piece you wish to add.
  • Remove Footer pieces, or
  • Remove the Footer in the corresponding Layout (see above)

Based on this explanation, you can see that Footers are inherited.  Slide Footer cannot override their Layout Footers, however, Layout Footers can override its Slide Master Footer in certain cases.  It sounds about right.  Just make sure your Slide Master and all of its Layouts have Footers.  What's wrong with it?

Users.

Everyday PowerPoint users do not know the intricacies of the application's behavior or its inheritance rules like the one I described about the Footers.  They do not understand that if they want to hide the Footer on a slide, they need only go to Insert > Header & Footer  and uncheck the Footer pieces they do not want.  Alternatively, they do not understand that if they want to add Footers to slides that do not already have them, they can go to Insert > Header &Footer, and check the Footer pieces they want.  So, it's a training issue?  Not really.
Let's follow this entirely reasonable scenario:
  1. Open a new PowerPoint Presentation.
  2. By default the Normal.POTX
  3. Go to View > Slide Master just to make sure the Normal.potx has Footers in the Slide Master and all its Layouts then close the Master View
image

This is going to be a one-page slide deck with a cover.
  1. Insert a Title Slide (this should already be added for you)
  2. Insert a Content Slide (keyboard shortcut: Select the Title Slide in the Slide Gallery and hit [Enter])
image


I want all the entire Footer in my slides but I don't want them on the cover.
  1. Go to Insert > Header & Footer
  2. Select all Footer pieces
  3. Select the options for "Don't how on title slide" and click "Apply to All"
image


Now, I've decided I don't want a Cover Slide but I'd like to have another Content Slide
  1. Select the Cover Slide
  2. Right-click > Layout  and select one of the Content Layouts
image


Did you see what happened?  The page layout changed but notice that the Footer is still missing.  You can go to Insert > Header & Footer to add them but would you have known to do that if I didn't already tell you how?
image

Now, let's say I want the Content Slide to be the cover.
  1. Select the second Content Slide
  2. Right-click > Layout and select the Title Slide Layout
What happened this time?  The page layout changed but notice that the Footer is still there!  Again, you can go to Header & Footer to remove the Footer pieces but would you have guessed that before today?
image

Great.  How do we fix it and make it easier for our users to use templates?  There are really 3 options:
  1. Leave Footers out of the Slide Master and its Layouts and force users to manually add Footers to every slide
  2. Train your users
  3. Don't use the Footers and make Dates, Page Numbers, and other Footer text part of the Slide Master's and Layouts' backgrounds.

  • Option 1 is the worst option because it's the most cumbersome and will likely cause discrepancies in style from slide to slide.
  • Option 2 would work best because it leverages the inheritance PowerPoint provides for Footers and offers the most flexibility
  • Option 3 is somewhere in the middle but it's the one that seems to make sense to most users.

Here's how to implement Option 3.
  1. Start with a blank presentation
  2. Make sure there is at least one slide in the presentation, otherwise, you will not be able to remove the Footers from the Layouts
  3. Go to the Master View (View > Slide Master)
  4. Delete all the Footer fields from the Slide Master and all its Layouts
  5. Select the Slide Master
  6. Go to Insert > Text Box
  7. Create a box and enter text for your Footer
image

  1. Go to Insert > Text Box
  2. Create a box but do not click outside of it
  3. Go to Insert > Slide Number
 image

The Footer text and Page number should now appear on all the Layouts.

To remove the Footer text and Page number from a Layout, like the Title Slide:
  1. Select the Layout you want to edit
  2. Go to Slide Master
  3. Select the "Hide Background Graphics" checkbox option. 
image

Now users can switch between Layouts and the "Footer" will always match the one you defined in the Slide Master.

What?  Now your users want to remove the "Footer" you created from just one of the Content Slides?  Well, at least now you've got this post you can point them to.

-Ann T. Ho
Senior Analyst

Excel headers and footers

There's something to be said about putting some polish and professionalism into your deliverables.  One of the ways of doing that is to make sure they have headers and footers with some basic information:
  • Title
  • File name
  • File save location
  • Page numbers
  • Date
It's also wise, especially for Excel documents for the pages to be formatted so when your client prints them, they print nicely without your client having to set the page margins and page breaks themselves.
These kinds of things can be relatively easy to set in Word but in Excel, if you have different worksheets in a single workbook, you have to set these on each worksheet.  Here's a quick and easy way to set the Headers, Footers, and page settings once and apply them to all your worksheets.
With Excel open to your workbook, select all the worksheets you wan to apply the settings to by selecting the tabs at the bottom of Excel.  To select multiple, contiguous sheets, hold down the {shift} key while selecting the first and last sheets with your mouse.  To select multiple, non-contiguous sheets, hold down the {ctrl} key while using your mouse to select the sheets.
image
(The selects tabs are shown in white.  The un-selected tab is in grey.)

Add your headers by going to "Insert" in the Ribbon, and selecting "Header & Footer."  Use the "Header & Footer Elements" to add things like the File Name, Sheet Name, and Page Numbers.
image
image
Now, your headers and footers will apply to all your selected sheets.

You can apply page settings, like page orientation, margins, and page scale in the same way by going to "Page Layout" in the Ribbon.
For the Title, I don't usually use Headers but instead, use the first few rows of each sheet.  I like the way this looks better, especially because the Headers and Footers don't appear on the sheet when its opened so your client at least knows what's he's looking at when he opens the file.
image

This applies to all the selected sheets, too, so be careful to leave these rows open so you don't overwrite any of your data.
Happy deliverable-creating,
-Ann

I'm not an Analyst but I play one on my project

I came across this article that discusses why having both a Project Manager (PM) and an Analyst is important on a project. It goes into great detail about differences and similarities between the two disciplines and it's a pretty good read.
It reminded me of the presentation I give at Ascentium Boot Camp (what we call New Hire Orientation) so I thought I'd share a somewhat lengthier and wordier version.

I am a Business Analyst (BA) and I think Analysis is the Center of the Universe. Analysts are generalists and because we are, there's often overlap between Analysis and nearly every other actor on a project.
Analysis_Universe

Business Analysts (BA) often follow a career path toward Project Management because of the overlap in skills and goals; managing customer expectations, being a big one. The line where PMs end and BAs start is blurred because it varies from one match-up to another. Despite the duality, there is one key difference between Project Management and Analysis_PMAnalysis: PMs are advocates of Budget, Timeline, and Scope whereas BAs are advocates of Business Requirements. When the two come together, we may disagree on the features of a product but the natural tension between us allows for healthy negotiations. We are only successful if we make our Clients successful. We can't deliver a great product late and over-budget and consider it a success! The same holds true if we are under-budget but have a product that doesn't do what it needs to do.

The overlap doesn't have to be redundant because each discipline serves to balance the other out. Managing to the overlap is what is important and that can only be accomplished with communication. When a project kicks-off, it's critical to project success to clearly define the responsibilities of the PM and the BA. This identifies the overlap and the gaps so each can fulfill their roles effectively and efficiently.
The same holds true for BAs and Information Architects (IA). I sometimes hear, "We don't need a IA on the project because we already have an BA." While many of our skills are the same, it is critical not to confuse similarities with being substitutes for each other. We have similar deliverables from workflow diagrams to annotated wireframes but while a BA may define a workflow, an IA may consume it and translate it into a user experience. An IA may create a wireframe but a BA may annotate and extend it.

We may both participate in user interviews but we are listening for different things. This article distinguishes the two disciplines by saying, "Business analysis provides the who, what, and why. Information architecture explains the how." BAs have the same kind of relationship with IAs and BAs have with PMs; BAs are still advocates of the Business Requirements but IAs are User advocates.
Analysis_IA

BAs push for things the Client needs through Business Requirements but our Clients aren't always End Users of a system. IAs concentrate on user-centered design and must speak on behalf of the End User to ensure his needs are met. The Client may not realize it, but User needs are Requirements, too, because without User Adoption, the solution we build will not be successful. And when the product is not successful (everybody now), the Client is not successful and, therefore, we are not successful.
Analysis_Dev
The relationship between Analysis and Development is less confusing than the the other relationships I have described. Analysts don't write code. It's pretty simple; except when we do actually write code. I've been known to crank out some HTML and CSS in a pinch but anything beyond a little ASP.old and VBA and I'm lost. Some of our Ascentium Analysts used to be Developers and they may no longer break open Visual Studio (except for TFS), but they use their historical experience to talk with Developers. Even the Analysts who were not Developers are often technically savvy and can hold our own in a technical discussion.

And holding our own is pretty important when it comes to working with 733+ Developers. There is a push and pull between Requirements and how (or IF) Technology will satisfy those requirements. In these Analysis_Clientnegotiations, Analysts are still advocating for the Business Requirements but Developers are advocating Technical Feasibility and Best Practices in Technical Architecture and it is only in this collaboration that we can find the happy medium.

Armed with knowledge of Technical constraints, trade-offs, and alternative options, analysts often translate between the Client and Developers.

Sometimes, Analysts serve as Customer Proxies and make decisions on behalf of the Client because both Clients and Analysts have the goal of solving business problems. The business problem to solve, however, can differ between us. Clients may understand the business problem one way or may understand a piece of the problem but not how it fits into the overall strategy of the roadmap or the business. They may envision a solution but not consider its impact. Sometimes, Clients are just too busy; they just know they have a problem and they need Analysts to figure it out.

In many ways, Analysts are just playing devil's advocates so we can bridge the gap between a long-term strategy and meeting immediate needs. Who is arguing which side will vary but we work together to distinguish the difference and prioritize features.

Requirements can get hairy. Technical Requirements may conflict with Business Requirements or User Requirements; and User Requirements may push the bounds of Budget Requirements. It's the sorting through the tangles that Analysts really shine. Anyone can do it. Analysts are just GREAT at it.
Analysis_SDLC

Analysis is about problem-solving. It is about understanding, communication, and facilitation. We analyze to understand the project, the business problem, the users, and the technology solution. We grease the wheels between the cogs in the project machine by collaborating and communications with our colleagues. Most importantly, we facilitate the conversations and negotiations between disciplines to manage expectations.

Managing expectations isn't just about what the end product will be. Project health is dependent on clear expectation among team members. Define roles and responsibilities between disciplines on a project. Bridge the gaps. And embrace the overlap.
-Ann
Senior Business Analyst

Monday, March 7, 2011

File Inventory


There have been times in my life as an analyst when I have needed a list of all the files in a folder.  I don’t mean copy/paste.  I mean a list of the file names that windows explorer can’t offer.  The list is often used in content inventories and I’ve even had occasion to use it for data entry.
Using snippets of code I ripped from the internet and came up with this Excel macro in VBA. It prompts you for a folder path and you can specify whether you’d like to include files in subfolders or just those at the top level.  You can even use a UNC path or a web folder as the path to create inventories of the files in document libraries (although a datasheet view would provide the same value).
Note: The macro does not have error handling so if you cancel out of the dialogs, you will get an error window and will need to exit the debugging.
Enable developer tools
  1. Open Excel, right-click in the Ribbon, and select Customize the Ribbon…
  2. Check the Developer checkbox in the right pane for Main Tabs
  3. Click OK

Enable macros
  1. Go to the Developer tab
  2. Click on Macro Security
  3. Ensure in Macros Settings you have Disable all macros with notification or Enable all macros... selected
  4. Click OK

Create the macro
  1. On the Developer tab
  2. Click the Visual Basic button
  3. Paste the code below into the Visual Studio window
  4. Save the Workbook as an Macro-enabled workbook
  5. HINT: I save the macro in its own file so I can open it on-demand

Run the macro
  1. From the Developer tab, click on the Macros button
  2. Double-click on the GetListFilesInFolder macro
  3. If no macros are listed in the box, make sure you’ve selected the right workbook in the Macros in drop-down box

Sub GetListFilesInFolder()         Workbooks.Add ' create a new workbook for the file list     ' add headers         Dim FilePath As String     Dim ListSubfolders As Integer     Dim IncludeSubfolders As Boolean     Dim HandleBlankPath As Integer         'Create the headers for the list     With Range("A1")         .Formula = "Folder contents:"         .Font.Bold = True         .Font.Size = 12     End With     Range("A3").Formula = "File Name"     Range("B3").Formula = "File Size"     Range("C3").Formula = "File Type"     Range("D3").Formula = "Date Created"     Range("E3").Formula = "Date Last Accessed"     Range("F3").Formula = "Date Last Modified"     Range("G3").Formula = "Attributes"     Range("H3").Formula = "FilePath"     Range("A3:H3").Font.Bold = True         FilePath = InputBox("Enter the path to list files.")    'Prompt user for the folder to inventory             ListSubfolders = MsgBox("Do you want to include files in subfolders?", vbYesNo, "Subfolders")   'Prompt user to select to include subfolder files or not     Select Case ListSubfolders     Case 6  'Yes button         IncludeSubfolders = True     Case 7  'No button         IncludeSubfolders = False     Case Else   'Assumes Yes as default         IncludeSubfolders = True     End Select             ListFilesInFolder FilePath, IncludeSubfolders    ' list all files included subfolders
End Sub
Sub ListFilesInFolder(SourceFolderName As String, IncludeSubfolders As Boolean) ' lists information about the files in SourceFolder ' example: ListFilesInFolder "C:\FolderName\", True     Dim FSO As Scripting.FileSystemObject     Dim SourceFolder As Scripting.Folder, SubFolder As Scripting.Folder     Dim FileItem As Scripting.File     Dim r As Long         Set FSO = New Scripting.FileSystemObject     Set SourceFolder = FSO.GetFolder(SourceFolderName)     r = Range("A65536").End(xlUp).Row + 1     For Each FileItem In SourceFolder.Files         ' display file properties         Cells(r, 1).Formula = FileItem.Name         Cells(r, 2).Formula = FileItem.Size         Cells(r, 3).Formula = FileItem.Type         Cells(r, 4).Formula = FileItem.DateCreated         Cells(r, 5).Formula = FileItem.DateLastAccessed         Cells(r, 6).Formula = FileItem.DateLastModified         Cells(r, 7).Formula = FileItem.Attributes         Cells(r, 8).Formula = FileItem.Path         r = r + 1 ' next row number     Next FileItem         If IncludeSubfolders Then         For Each SubFolder In SourceFolder.SubFolders             ListFilesInFolder SubFolder.Path, True         Next SubFolder     End If     Columns("A:H").AutoFit         Set FileItem = Nothing     Set SourceFolder = Nothing     Set FSO = Nothing         ActiveWorkbook.Saved = True
End Sub

Thursday, March 3, 2011

Ascentium

One of our recruiting coordinators said that he gets asked by analyst candidates, "What does Ascentium offer over other firms?" Here's my response:

Here at Ascentium, you make your own career.  You do what makes you happy.  At other firms, it’s an up-or-out philosophy.  Analysts are typically expected to become PMs.  Some people just like being analysts and here, you get to be whatever you want.  We don’t care if you want to be a PM.  We just care that you do what you do better than anyone else. We expect you to grow and learn and continue to build out your toolkit—whatever that means to you.

We are a company of relationships.  Our best recruits are referrals from employees.  Our best clients are referrals from other clients.  We don’t depend on knowledge management systems or resource coordinators to do our work.  We get to know our people and we find the best fit for projects based on knowing them, knowing what they can do, and knowing what they want to do.

We were finalists for Washington’s Best Workplaces (Large Companies, 2007) but none of our competitors were.

Realistically, I don’t know what we can offer much else that’s truly different than what other firms offer.  I work here because I like the people.  I work here because all the people I would want to work with are already here.  I work here because when I came in for my interview, it was like coming home.

I continue to work here because we are a company that listens to our people and our clients (Peer360, NPS).  We are a company that believes in self-organization and empowers its people to initiate change.  We are a company of brutal honesty and integrity.  We are a company of passionate people who are passionate about this company.

We can’t guarantee that kind of experience or feeling for others because we are looking for people who want to be here and can thrive in our environment; not everyone can.  It’s in the intangibles and the intangibles are difficult to not only convey but also to measure.

Intangibles are the kinds of things that you cannot appreciate without ever having experienced them.  It's like needing glasses your whole life then finally putting on a pair of glasses and saying, "I never knew it could be like this."  Well, it can.  Here.

-Ann T. Ho
Senior Business Analyst

Tuesday, March 1, 2011

DateDiff in SharePoint Data View

How many consultants does it take to figure out how to calculate Date Differences in SharePoint 2010 xPath 1.0?
3.
And guess who figured it out?  The BA.
(ddwrt:DateTimeTick(ddwrt:FormatDate(ddwrt:GenDisplayName(string($thisNode/@DueDate)), 1033, 1)) - ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($Today)))) div 864000000000
The Formula Deconstructed
Get the Ticks for the “Due Date” assuming DueDate is the SharePoint List column you want to use and EN-US is the locale you want to use (LCID 1033):
(ddwrt:DateTimeTick(ddwrt:FormatDate(ddwrt:GenDisplayName(string($thisNode/@DueDate)), 1033, 1))

Get the Ticks for the Current Date but you can replace $Today with another SharePoint List column:
ddwrt:DateTimeTick(ddwrt:GenDisplayName(string($Today)))

Subtract the two.

Then Divide by the number of Ticks in a day, 864000000000.

Ann:  1.  SharePoint Designer: 0.