Sunday, October 25, 2015

HOW TO IMPROVE YOUR PROJECTS IN AN HOUR by

http://www.girlsguidetopm.com/2015/10/how-to-improve-your-projects-in-an-hour/

Improve your projects in an hour
This article is sponsored by Quire.
The clocks go back this weekend and we get one extra hour! I used to be able to spend it in bed but now I expect it will be whiled away watching CBeebies – the boys won’t understand that it means a lie in and will take a few days to adjust to the new later morning routine.
It got me thinking about what else I could do with that hour. File all my payslips, for example, instead of letting them pile up on the bookcase in the bedroom. Or clean the fridge. Or do something productive on my projects to make them better.
Here are 5 tasks that take an hour (give or take) that would fundamentally improve your chance of project success.

1. Write some success criteria

If you skipped over the part where your project should have success criteria, now is the time to write some.
You can only claim project success if you know what success should look like. You need something to compare back to at the end of the project, so work that out now.
Within an hour you should be able to extract the relevant business objectives from the business case or project charter and turn these into success criteria. You may have to wait for the project sponsor to ratify them or for the project board to meet for final agreement. But you can get them drafted and submitted for sponsor approval in your hour.
Not sure where to start? Read this: The Definitive Guide to Project Success Criteria

2. Read your issues log

And then do something about it.
Issues are all too often added the list and then expected to somehow disappear. Or we get sucked into doing the day-to-day project work and forget about them.
Use your hour to transfer the tasks related to handling issues to your project schedule or task list. Allocate each task an owner if it doesn’t have one already. Update your log with what you’ve already done. Aim to close one issue by the end of next week (or make up a bigger target that’s appropriate for you).

3. Chase up your colleagues

I bet that you have a note of work that your team and stakeholders are supposed to be doing for you that they have not completed.
Use your hour to chase them up. Go through your action log or inbox or wherever you store this kind of thing and contact everyone who owes you a response. If the deadline has passed, chase with stompy boots. If the deadline has not yet passed, remind them that it is coming.
This might take less than an hour but in my experience if you start talking to people on the phone it always takes longer than you expect as you go on to discuss other topics related to the project. I would recommend the phone rather than email or IM. They will find it harder to wriggle out of their responsibilities!
This might help if you feel that you are not getting anywhere: The Ultimate Guide to Getting Your Colleagues to Take Responsibility at Work.

4. Review your To Do list

If what you show your team doesn’t shout ‘success’ to them, wouldn’t you rather find out about it now instead of at the end?
My To Do list is on paper (and while there are plenty of task management apps out there, and Quire is one the best I’ve seen, I can’t bring myself to move away from my notebook just yet). It’s not a project schedule or project task list. A To Do list is my personal work to do outside of my projects, although sometimes project tasks find their way on to the list as well.
The problem is that some of the tasks are massive like ‘Write ebook’. Some are tiny like ‘Change my username’ and some just don’t mean anything any more like ‘KDP Select’. What’s that about? Am I supposed to research what it is, register the ebook I haven’t written yet or something else?
Use your hour to get to grips with your tasks. If you are electronically minded, transfer all your paper notes into a task management app. Break down the big tasks so you can see what is realistically involved. Prioritise. Add dates and deadlines, then set reminders. If you need to manage other people’s work as well, stick their tasks on your list too. (Quire does all this, by the way.)
Then do one small thing and mark it as complete.
Believe me when I say that in an hour of focused time you can do all this. It will make you feel really great about your workload.

5. Take some photos

Feeling creative? Take some photos or shoot some video of your project. That could be anything including:
  • screenshots of your new software
  • an interview with your project sponsor
  • a team photo celebrating completing a milestone or even just of your team working in the office
  • a snap of your latest project artefact or someone using your prototype
  • a photo of your Kanban board or the output from the latest facilitated workshop.
Why? Because pictures are great for communication. Pictures and video help your stakeholders understand what they are getting and what is involved with getting there. When they understand that they can support you better and they will be more engaged. And they are more likely to consider the project a success.
Equally, if what they see doesn’t shout ‘success’ to them, wouldn’t you rather find out about it now instead of at the end?
Snap your pics, give them a quick crop and polish in Picmonkey (or even PowerPoint, which has lots of basic features of editing images including some nice frames). Then create a task around sharing them and attach the pictures to the task so you know where to find them again.
What will you be doing with your extra hour? Let us know in the comments below.
Quire is a new-generation task management app that lets you accomplish your big goals or dreams by breaking them down into small doable steps. 

Tuesday, October 6, 2015

Sharepoint 2013 / O365 CSOM Code Snippets


1.  Adding Group to group collection


  using (ClientContext clientContext = new ClientContext(siteCollectionUrl))
                {
                    // SharePoint Online Credentials
                    clientContext.Credentials = credentials;
                    try
                    {
                        // Loading the site collection root web
                        Web web = clientContext.Site.RootWeb;
                        clientContext.Load(clientContext.Site.RootWeb);
                        clientContext.ExecuteQuery();

                        // Getting the SiteCollection groups
                        GroupCollection siteGroups = clientContext.Web.SiteGroups;

                        // Getting the group on basis of group name
                        Group group = siteGroups.GetByName(groupName);

                        // Getting User Creation Information
                        User user = web.EnsureUser(domainGroup);

                        // Adding the domain group to group
                        group.Users.AddUser(user);
                        clientContext.Load(user, t => t.Title);
                        clientContext.ExecuteQuery();

                        // Logging the success
                    }
                    catch (Exception exception)
                    {
                    }
}

2.  Page Check through CSOM


  using (ClientContext clientContext = new ClientContext(siteCollectionUrl))
                {
                    // SharePoint Online Credentials
                    clientContext.Credentials = credentials;
                    try
                    {

Web oWebsite = clientContext.Web;
clientContext.Load(oWebsite, website => website.Webs, website => website.Title);
clientContext.ExecuteQuery();
List pages = web.Lists.GetByTitle(libraryName);
clientContext.Load(pages);
clientContext.ExecuteQuery();
ListItemCollection existingPages = pages.GetItems(CamlQuery.CreateAllItemsQuery());
clientContext.Load(existingPages);
clientContext.ExecuteQuery();
foreach (ListItem page in existingPages)
{
       clientContext.Load(page.File);
              clientContext.ExecuteQuery();
              if (page.File.CheckOutType != CheckOutType.None)
              {
                     // Checkin and publish file
                     page.File.CheckIn("Check In Page", CheckinType.MajorCheckIn);
                     page.File.Publish("Publish Page");
                     clientContext.ExecuteQuery();
Console.WriteLine("Page is Published : " + page.File.Title);
              }
                    catch (Exception exception)
                    {
                    }
}

3.  Reset Master Page for Subsites  


   string masterPageUrl = string.Empty;
   string customPageUrl = string.Empty;
   string alternateCssUrl = string.Empty;
   string themeUrl = string.Empty;
   string fontSchemeUrl = string.Empty;
      
   using (ClientContext clientContext = new ClientContext(siteUrl))
   {
    ////Connecting to the site url
    clientContext.Credentials = credentials;
    if(isRootWeb)
    {
    Web web = clientContext.Site.RootWeb;
    ThemeInfo rootWebThemeInfo = web.ThemeInfo;
    clientContext.Load(web, t => t.MasterUrl, t=> t.CustomMasterUrl, t=> t.AlternateCssUrl, t=> t.ThemeInfo, t => t.ServerRelativeUrl);
 clientContext.Load(rootWebThemeInfo, t => t.ThemeBackgroundImageUri);
 clientContext.ExecuteQuery();

 masterPageUrl = web.MasterUrl.ToString();
 customPageUrl = web.CustomMasterUrl.ToString();
 alternateCssUrl = web.AlternateCssUrl.ToString();
 themeUrl = web.ServerRelativeUrl + "/_catalogs/theme/15/palette001ks.spcolor";
 fontSchemeUrl = web.ServerRelativeUrl + "/_catalogs/theme/15/fontscheme001ks.spfont";
                       
 }

 if (isAllWebs)
 {
       Web oWebsite = clientContext.Web;
       clientContext.Load(oWebsite, website => website.Webs, website => website.Title, website => website.Url);
       clientContext.ExecuteQuery();

       foreach (Web childWebsite in oWebsite.Webs)
       {
              try
              {
                     childWebsite.MasterUrl = masterPageUrl;
                     childWebsite.CustomMasterUrl = customPageUrl;
                     childWebsite.AlternateCssUrl = alternateCssUrl;
                     childWebsite.Update();
                     clientContext.ExecuteQuery();
childWebsite.ApplyTheme(themeUrl, fontSchemeUrl,null,false);
                     clientContext.ExecuteQuery();
              }
              catch (Exception exception)
                     {
                     }
                }
     }
     }

4.  Remove Default Site Collection Term Set


 using (ClientContext clientContext = new ClientContext(siteUrl))
{
clientContext.Credentials = sharePointOnlineCredentails;
       Site site = clientContext.Site;

// Getting the Taxonomy Session
       TaxonomySession taxonomySession = TaxonomySession.GetTaxonomySession(clientContext);

       // Getting the default site collection term store
       TermStore termStore = taxonomySession.GetDefaultSiteCollectionTermStore();

       // Getting the term group and getting all the termsets
       TermGroup termGroup = termStore.GetSiteCollectionGroup(site, false);
       clientContext.Load(termGroup.TermSets);
       clientContext.ExecuteQuery();

       // Iterate through all the termsets and delete the termsets
       foreach (TermSet termSet in termGroup.TermSets)
       {
              // Deleting the termset
              termSet.DeleteObject();
              clientContext.ExecuteQuery();
   
       // Deleting the term group
       termGroup.DeleteObject();
       clientContext.ExecuteQuery();
            
       // Setting the Navigation for publishing web
       clientContext.Load(clientContext.Web);
       clientContext.ExecuteQuery();

       try
       {
       WebNavigationSettings webNavigationSetting = new WebNavigationSettings(clientContext, clientContext.Web);
       PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(clientContext, clientContext.Web);
       var currentNavigation = webNavigationSetting.CurrentNavigation;
       var globalNavigation = webNavigationSetting.GlobalNavigation;
clientContext.ExecuteQuery();
currentNavigation.Source = Microsoft.SharePoint.Client.Publishing.Navigation.StandardNavigationSource.PortalProvider;
       globalNavigation.Source = Microsoft.SharePoint.Client.Publishing.Navigation.StandardNavigationSource.PortalProvider;
       webNavigationSetting.Update(taxonomySession);
       clientContext.ExecuteQuery();
       }
       catch (Exception ex)
       {
       }          

       }

Monday, October 5, 2015

Sending good emails by Evan Frank

Referred Link - https://www.linkedin.com/pulse/sending-good-emails-evan-frank?trk=pulse-det-nav_art

Sending good emails

Sending good emails can be the most effective way to communicate across an organization. But it can also be one of the most value-destructive & efficiency-killing activities when wrong. Modern methods of communicating - e.g. quick one-liner iPhone responses with autocorrecting - only make organizations more susceptible to bad emails. 
Sending good emails at its core is all about empathy, and will make your organization run more smoothly by not wasting time trying to interpret email meanings, not being unnecessarily overly looped in, and not spending time actioning the wrong thing due to poor word choice. 
Here are some email best practices to ensure we’re sending good rather than bad emails.
Email basics: use of to, cc, bcc, subject fields
  • to: who the email is being specifically sent to and you are expecting a reply from. This should then be reenforced in the body of the email - e.g. ‘Hi John, (Jane, Jim on cc)’
  • cc: people who need to be aware of the content of the email, but do not need to respond
  • bcc: people who need to be aware of the email, but for various reasons the sender doesn’t want to expose this to the group
  • subject: keep the subject a concise description of the topic at hand. If the topic morphs or changes over time, take the lead in changing the subject, too
  • Both the to and cc fields should be kept as short as possible. If you aren’t sure who to include, do some research beforehand to see who should be accountable
  • When adding people to an email string, include a (+ John); when subtracting, a (- John)
Body format and reply convention
Internal email communication is not prose - its technical communication designed to resolve an issue, inform others more efficiently than an in-person discussion, or recap what’s been agreed following a discussion or meeting. Spend as little time as possible trying to make your email ’sound good’, and reinvest that time in careful word choices to remove any ambiguity from the message. Organizations should set the expectation that terse or direct internal communication is acceptable, encouraged and free of judgment, as the goal for internal email is extreme clarity of intention. And less time composing internal emails frees up time for higher value activities.
The recipient of the email (e.g. who was in the ‘to’ field of the email) should formally acknowledge receipt and confirm actions - e.g.
‘Got it - I will call Joe’
And once the task is completed, a further email should be sent to recap, and put the issue to bed - e.g. 
‘Spoke to Joe. This issue is now resolved - thank you.’
If you as the sender haven’t received this confirmation, its still your problem - stay on top of it until its confirmed that the issue has been firmly picked up by someone else.
If in doubt on whether or not you should reply (if you are cc’ed / not directly referred to), really ask yourself:
‘Do I have something to say that is going to add value to this discussion?’
If not, best to sit on the sidelines.
After a decision on a specific issue has been made, have the self-discipline send around a recap email with what’s been decided. It always surprises me how much time is spent going back and forth over email or in-person about an issue, but the final step of solidifying a decision with a recap isn’t taken. Establishing a clear, final paper trail is important.
Some other tips that I use for effective emailing & communication
  • Try and keep one email per topic, with a clearly corresponding subject. Multiple topics embedded in the same email often leads to too many recipients on the email and unclear actions. I will often send successive emails to the same recipients with different topics and subjects to keep issues separate.  
  • Reread your email before hitting send and ask yourself: am I being as clear as I can be? If sending an email on the go, make sure your phone hasn’t autocorrected any words that the recipient is going to be confused by.
  • Email is an effective way of communicating - until it isn’t. If the email is escalating to an emotionally-charged place, or the issue at hand is becoming too intricate, take the communication offline (person or phone). Then send a email recap. And remember - emails live forever, so act accordingly!

50 Productivity Hacks to Boost Your Brainpower

50 Productivity Hacks to Boost Your Brainpower (Infographic)

The Five Types of Meetings by Eric Douglas

Referred Link - https://www.linkedin.com/pulse/managing-meetings-eric-douglas?trk=pulse-det-nav_art

The Five Types of Meetings

  • Is your goal to deal with a tough, multifaceted issue?
  • Or is to exchange information? Is it a “get to know you” meeting?
  • Or are you looking for creative input?
These different goals each require a different type of meeting, and a different style of communication.

Essentially, there are five types of meetings:

  • Informational – people exchange information
  • Problem-solving – people try to solve a specific problem
  • Brain-storming – people define objectives and generate ideas
  • Performance review – people review individual and group performance
  • Strategic – people wrestle with large issues cutting to the heart of the organization’s future, and set goals and priorities
As you might guess, different styles of communicating work best in each type of meeting. This point has an important corollary:
Each style prefers a certain type of meeting.
If a particular style prevails at a meeting, it can cause the meeting to shift suddenly. 
This causes a disconnect in people’s minds.
  • brain-storming meeting called by a Director becomes strategic.
  • An information-sharing meeting called by an Expresser begins generating ideas.
People come to a meeting thinking it’s one type, only to discover they’ve somehow stumbled into a different universe.
People can derail a meeting due to their style.
  • Directors’ meetings can be so short/sweet you’ve barely sat down before it’s time to go.
  • Expressers’ meetings can drift off into what is charitably referred to as “creative time.”
  • Thinkers follow an agenda, and will stick to it even if a million dollar idea comes up.
  • Harmonizers may keep things at such a comfortable pace that people start to snooze.
Protocols for Meetings
Skilled communicators know how to modify their style appropriately from meeting to meeting. They also know that a meeting needs preparation in order to be productive.

Preparation can include:

  • Giving participants at least two days advance notice (or as much as possible)
  • Preparing an agenda and distributing it in advance
  • Setting the standard that the meeting will begin on time
  • Maintaining a time limit for each item on the agenda
  • Agreeing to change the agenda only with participants’ consent
  • Agreeing to communicate what transpires at the meeting
  • Assigning a meeting coordinator. This person:
    • Sends out the agenda
    • Arranges the room
    • Starts the meeting on time
    • Monitors the clock
    • Keeps the minutes
    • Pushes the group toward action
    • Sees that minutes are distributed within 24 hours
    • Makes sure the group decides how to share the information from the meeting
By following these protocols, in conjunction with understanding the different types of meetings, your organization can use meetings in productive ways.
Conclusion
This post has illustrated the importance of distinguishing the five types of meetings – and the needs served by each. It has also shown how certain communication styles are more suitable for certain types of meetings. It also described how people try to shift a meeting into one that matches their style.
This underscores the need to be able to identify not only individual styles, but also group styles. The productivity of a meeting is directly related to how well managed it is. Meetings that ramble result from a failure to follow sound protocols and lay down ground rules.