Skip to content

Category: Uncategorized

How to Pass Professional Scrum Product Owner (PSPO I) Certification?

Alright, so another long due certification (and more importantly post on this topic) done!

I wrote an extensive article on Passing Professional Scrum Master article a few years back. And this time, the reason for giving the PSPO exam on the first place to refresh the content of the Scrum Guide but also to have a perspective from the other side of Scrum Master and/or Development Team. Thus, Professional Scrum Product Owner.

Well, so preparation and approach for examination by every individual is different and please use the path which works for you. However, I followed the approach below and you might want to use this as a reference to go ahead when preparing for Professional Scrum Product Owner certification-

  1. Go through the official Scrum Guide multiple times till you are able to understand the rationale behind the Scrum Guide. What I like about the Scrum Guide is the way it has been written in a concise way. However, this also reflects to the fact that when I meet Developers, Product Owners and/or Scrum Masters; they some times interpret it completely different (or in a way they want to)
  2. I would strongly advise to try the Professional Scrum Product Owner “Open Assessment” exam till the time you are able to 100% score multiple times in a row.
  3. The Scrum Master Training Manual from Frank Turley and Nader K. Rad is another resource guide which compliments the original Scrum Guide. It has a lot of practical examples which are important from the exam point of view. One thing which I liked in the manual is the explanation of burn-down charts which is not explicit in the Scrum Guide. And of course, it’s FREE!
  4. Although the exam is focused towards the Product Owners, it is important that the candidates understand different roles and framework for the complete development process. Thus, it might becomes handy to give a try on PSM Open Assessment as well. For those, who are interested to read further can refer to my earlier post on preparing and getting certified for Professional Scrum Master Exam. The benefit of giving both exams is that you get access to a bigger question set which might end up repeating in your final exam.
  5. Team at Management Plaza have done a good job of creating the simulation exam for both PSPO as well PSM exam among others which might be very handy in preparation.
  6. Remember that the exam passing score is “high”. You need to score at-least 85% passing score to get certified and every single wrong answer can do some damage. So, take your time before you finalize the answer.
  7. Also note that you don’t have a lot of time to finish the exam. My approach was to quickly read the question and answer it straight away if I am confident. In case of a doubt, mark the question to review later and move on.
  8. You can give the exam from anywhere but ensure that you have a good internet connection and quiet place to focus on the exam. Once you buy the certificate credential, you can use the password for 7 days to give the exam. Once the exam is finished, you immediately get the result with your score and detailed report of sections where you scored respectively. See below, the different topics which are covered during the exam.

If you have reached out till this section of this post then it’s a good chance that you are writing your PSPO certification very soon. If that is the case, good luck for the certification!

Also, you might want to read my related posts of Scrum and other software development techniques –

  1. How to pass Professional Scrum Master (PSM I) Certification?
  2. The curious case of Scrum Master’s role
  3. A beginner’s guide to Scrum
  4. An introduction to Agile Methodology

Benefits of adopting agile in a Distributed Software Development Team

(Shrivastava & Date, 2010, p. 10) observed on various topics which are beneficial for the software development projects when the distributed teams are using agile methodologies. Sprint reviews could be an efficient method to enhance exterior communiqué while they assist to share data about the needs and feature dependencies amongst stakeholders.  (Nilsson & Karlsson, 2014) also reiterated that agile practices such as sprint review and retrospectives are also team ceremonies, which, if performed properly, could address some of the challenges in communication. In the sprint review the project team will have an opportunity to gather feedback from the customer and other stakeholders on a regular basis and at short intervals. Customer requests for changes in requirements and priorities for the next iteration can also be communicated to the team.

(Shrivastava & Date, 2010, p. 10) also studied the impact on trust and confirms that use of agile frameworks can also help in generating trust between people of different cultures involved in the process by regular communication and delivery of software.

(Paasivaara & Lassenius, 2006, p. 4) further analyzed the impact on customers, business when using agile in distributed teams and stated that from customer’s point of view this way of software development and implementation provides extra flexibility when the customer is able to ask for changes during the development phase without having a lot of time-consuming discussions with subcontractors. Further, the customer establishment gets empowered to introduce subcontractors into the assignment already in the initial stages of growth, when the customer is not yet able to define the requirements in a detailed manner but can only rely on early correction of direction when needed.

Embracing Agile in Organization

When implementating agile within the organizations and especially in context of Distributed Teams; it is vital to look at the possible theories and literature available on the topics.

Software development methodologies are constantly evolving due to changing technologies and new demands from users (Nerur, et al., 2005, p. 73). Current vibrant business atmosphere has produced evolving establishments that constantly acclimates their arrangements, approaches, and rules to suit the fresh atmosphere.

(Rigby, et al., May 2016, p. 49) also argued that agile is efficient, effective and easiest to implement under circumstances generally originating in software innovation. The problem to be solved is significantly complex; solutions are primarily unidentified, and product requirements will most probably change; the work can be modularized; close partnership with end users (and swift response from them) is achievable; and creative teams would typically outperform command-and-control groups.

The Right Conditions for Agile


(Rigby, et al., May 2016, p. 50) called out the reason for failure in organizations and argued that large companies typically launch change programs as massive efforts. However, the smaller introductions of agile are normally the more successful ones. These introductions frequently start in IT as here the software developers are conversant in the principles. Later agile could move on to different functions, with the original users act like coach. On the other hand (Rigby, et al., May 2016) summarized the key issues when migrating to agile in an organization. Keeping these high-level key issues not only will help organizations to implement agile within their teams but also enlists the wide array of expertise, topics involved in such an execution.

(Boehm, 2002) specified that IT inclinations are shifting us nearer to agile approaches’ evolving needs and speedy alteration home-ground features, growing reliability issues require methods which could be established with plan-focused resolutions. Hence, the organizations should cautiously move towards the optimum balance of plan-focused methods and agile methods that fit their circumstances and fulfill their disparate requirements.

Key issues when migration to agile

How to the fix the iCloud Backup (Never) problem in iPhone?

I am not one of the biggest Apple fan boy, but speaking truth I have been using their iPhone (thus iOS) for more than 5 years now. My first iPhone was iPhone 4.

Having said that, I am usually one of the consumers who would upgrade their devices on the very first day of it’s release of the newest iOS. To be honest, I have also been brave enough to run my iPhone with one of their BETA builds of iOS 5. Wasn’t a bad experience I should say.

Coming back to the iOS9, I was once again done with my first day upgrade and no issue noticed for the first 2 weeks untill one fine day my iPhone says that I haven’t backedup my iPhone for 2 weeks.

Strange. I use iCloud backup and it is supposed to auto-back up whenever I am Wi-Fi and charging.

I tried to manually press the “Back up Now” button but it would just not do anything. Another weird thing was that it also indicated my iPhone has NEVER been backed up but within “Manage Storage”, indicated that only 3 GB was left. I was like where is the other 2 GB gone.

Anyway, after numerous tries and going through suggestion on various forums I called up the Apple Support Customer number. Must say, I liked the call back option. The first executive was not very supportive and friendly. Was not able to help me and just ended up giving me the case ID and asked to call later.

Tried again after a week. This time, the fellow tried his best and even went to discuss the case with a “Senior Expert” (not sure what that means). Eventually, asked me to use the iTunes backup and sold the idea of purchasing more iCloud space. Good salesman skills :).

However, I was like I am not using much data to be backed up and quite sure that it’s way less than the free 5 GB.

Getting help from no official Apple support, I tried the following and am so glad that it worked like charm.

  1. Create a backup of iPhone manually on your computer using iTunes. See instructions here at:
  2. Reset your iPhone to factory settings.
  3. Setup you iPhone as a new Phone and DO NOT USE the backup option.
  4. AGAIN, Reset your iPhone to factory settings (Step 2).
  5. This time, use the backup from computer instead. See here:

If everything goes well, you should have the backup working with iCloud.

How to use Spire.PDF to generate Word document from a PDF


Earlier last year, I wrote multiple articles with my review and comments on the Spire.Doc product suite from E-iceblue.

First thoughts on Spire.Doc for .NET

Using Spire.Doc to convert documents

E-iceblue Co., Ltd. is a vendor of .NET, Silverlight and WPF development components. The goal of e-iceblue is always to offer high-quality components for reading and writing different formats of office files.

Our components have been widely-used by most of the Fortune 500 corporations. The key developers of e-iceblue have over 10 years of combined experience developing high-performance, high-quality .NET, Silverlight and WPF component technology.

Everyday, e-iceblue products help a large number of developers from large/small companies in more than sixty countries to easier, better, faster and to be more productive develop and deliver reliable applications to their customers.

Using Spire.PDF for .NET to generate word document from PDF

A common use case over the years has been to convert the word documents in PDF documents for various obvious reasons. However, the opposite scenario has been relatively complex to implement.

Thanks to the new Spire.PDF for .Net, this can be really accomplished with relatively ease.

In this article, I will give a small walk-though on my thoughts and usage of this component.

To start with, you can download the Spire.PDF installation package from the link below. The installation is quite simple and professionally wrapped in a MSI. However, note that you don’t need to install this package on every server where you install your app using Spire.PDF.

Spre.PDF Installation

Also, note that apart from the installer or a reference the Spire.PDF DLL, a valid license file is required.

At the time of writing this post, the price of various license is as follows. From the cost perspective, the return on investment is very high and this also provides you a support from the vendor. A win-win in my opinion.

Spre.PDF Price

Document Conversion

Let’s start with a demo project. The first step is to include the reference to the Spire.PDF and License assemblies.

Spre.PDF Project_1

The interface of the component is very clear is self explanatory. Even without looking at any sort of documentation, I was able to write “3 line” program which can convert the PDF document to a word document. (or any other support format such as HTML, Image etc.)

Spre.PDF Project_2

Ok, now when we are ready with the program; let’s create a document with different elements such as Heading, Table and a paragraph.

Spre.PDF Project_3

The good news is that Spire.PDF does the 100% conversion keeping the output Word document same as the initial PDF document. 🙂


Overall, I was impressed by the power and ease provided by this product. While it didn’t always do everything in the way that I thought it should, it is probably due more to my lack of understanding of how the Word document model works rather than a flaw in this library. From a license and pricing overview, it’s not very expensive compared to other products in the markets which are offering the same functionality. Thus, a real value for money in my opinion.

How to quickly setup your Azure Development Environment?

More than a post, this is note to self.

Honestly, over the years it has been so easier to set-up the development environment time and again. I use Azure Virtual Machines as my personal development environment. And of course, this being a personal development environment is ought to be not as clean as you would like it to be and there are chances that you want to recreate it from scratch. Here are the steps which I use to re-create by development environment:

Create Azure Virtual Machine

Of course, you can create a new machine via the portal. I just prefer to create it via the following script:

Change basic settings and Windows Features

Such as:

  • Install IIS
  • Disable Loopbackcheck
  • Enable PS Remoting
  • Disable IE Security Check
  • Set Execution Policy for PowerShell
  • Install Chocolatey (used later for installation of packages)

Chocolatey comes to picture

Chocolatey NuGet is a Machine Package Manager, somewhat like apt-get, but built with Windows in mind. Lately, I am a lot dependent on this and why not, I don’t have to keep a links of software, packages which I want to install. Chocolatey makes sure every-time I install the packages, I have the latest version and that too with just a single command. Isn’t it cool!

The essentials which I always install are as:

  • Visual Studio
  • Fiddler
  • Chrome
  • Firefox
  • NotePad++
  • WinMerge
  • Visual Studio Code

Passing –Yes to the choco command makes sure that it runs in the silent mode.

Of course, this is not the actual configuration of my development environment but this is how I usually start and my environment evolves based on need. Also, I deliberately skipped installation of SQL Server from this post and in scripts as it gives me a reason to make use of Azure SQL Servers.

How to call a RESTful web API using PowerShell?

Needless to say that my love for PowerShell grows every time I make use of it. I had a good discussion with one of my fellow colleagues some time back on whether PowerShell should be considered a scripting language or a programming language. It’s for sure that it is NOT a programming language. Having said that, just to classify it as scripting language (remember VB script?) will not be justice with it’s capabilities.

“PowerShell is a true DevOps language.”

It has the right tools in it’s kitty which not only helps the core developers but also the day-to-day Administrators. And I am still talking about the OLD WORLD where we had those distinctions. Now, let’s come back to 2015 where even Microsoft promotes to deploy right from your Visual Studio.

Anyway, I should come back to the intention of this post before I drift further. It’s about using PowerShell to call RESTful APIs using PowerShell.

Let’s take an example where I want to call a service which sends an email accepting a JSON object with To address, From address, Subject, Body etc. for creating a mail message object. Thanks to Postman, testing your APIs are more easier than ever as you’t have to write the calling part anymore.


Having, my API ready I wanted to schedule this API to called at a certain interval. Yes, I miss those Azure Web Jobs when running on IIS.

However, the good old Task Scheduler is still handy to create a task which calls a PowerShell script. The script looks something like this:

It uses Invoke-RestMethod. The Invoke-RestMethod cmdlet sends HTTP and HTTPS requests to Representational State Transfer (REST) web services that returns richly structured data. However, the additional parameters such as Body, ContentType etc. really make it powerful to use it. If you look at the script, I defined a normal PowerShell Hash Table with a mapping of key and values. And later using ConvertTo-Json to convert hash table as a JSON object.

How to get TFS changesets including workitem details using PowerShell?

Visual Studio Online provides a convenient way to access the data and combine it to provide the users with useful information. This is done via a set of REST APIs for Visual Studio Online.

Although, there are several out-of-the-box queries available which can be used to gather information but there are cases when you want to take it to next level to suit your own needs.

Note that these APIs are also available to on premise Team Foundation Server

This post demonstrates an example of accessing REST API using PowerShell to get the details of all change-sets in a particular project collection.
Further, this change-set data is enhanced with information about the WorkItems linked to the change-sets.

Copy pictures to folder by Year and Date using PowerShell

Yet another attempt to sort out the pictures I have taken over the years.

I decided to have a simple PowerShell script to arrange by files by Year and Month.

The Year and Month of the file is determined by the “DateTaken” property of the file. If this property is missing, the script falls back to the CreationTime of the file.

P.S.: I am yet to make mind weather or not to use Google Photos.