Portfolio – Project Selection and Prioritisation

Featured#TBT: U.S. Microgravity Laboratory Launches -- June 25, 1992

Portfolio – Project Selection and Prioritisation

As Portfolio / Program Manager, you will have lot of projects in your project backlog. As an effective Portfolio/Program Manager, you should prioritise the right project and select it for further planning and execution.

You need to prioritise projects by scoring/ranking projects on different prioritisation criteria. Some of prioritisation criterias that I recommend portfolio/program managers to prioritise projects are listed below :

  1. Strategic Alignment – You need to see if your projects is aligned to your organisation/department strategic goals and score it accordingly
  2. Financial Criteria – You need to see your projects ROI , Savings and Cost vs Benefit. Based on this , you can score the projects
  3. Risk Criteria – You need to also check how much risk is involved.

You can give different weightage and score for each of the above criteria and then prioritise your projects based on final scores.

This exercise will help convert your project list to prioritised project list. You can start planning and executing projects based on projects ranking in prioritised project list

Also, it is important to revisit the prioritised project backlog on monthly or quarterly basis to make sure you are working right projects which are high value to your organisation at that point of time

Author : Santosh Kumar Singh – Program & Product Management Professional

What is Load Balancing ?

Load balancing is the process of distributing network traffic across multiple servers. This ensures no single server bears too much demand. By spreading the work evenly, load balancing improves application responsiveness. It also increases availability of applications and websites for users. Modern applications cannot run without load balancers. Over time, software load balancers have added additional capabilities including security and application.

Algorithms : Given two strings , write a method to decide if one is permutation of other

Algorithms : Given two strings , write a method to decide if one is permutation of other 

// C# program to check whether two strings are permutations of each other
using System;

class AllTechnicalFAQs
{

/* function to check whether two strings are permutation of each other */
public bool isPermutation(String str1, String str2)
{
// Get lenghts of both strings
int n1 = str1.Length;
int n2 = str2.Length;

// If length of both strings is not same,
// then they cannot be Permutation
if (n1 != n2)
return false;
char [] ch1 = str1.ToCharArray();
char [] ch2 = str2.ToCharArray();

// Sort both strings
Array.Sort(ch1);
Array.Sort(ch2);

// Compare sorted strings
for (int i = 0; i < n1; i++)
if (ch1[i] != ch2[i])
return false;

return true;
}

/* Main Block*/
public static void Main(String[] args)
{
String str1 = Console.Readline();
String str2 = Console.Readline();
if (isPermutation(str1, str2))
Console.WriteLine(“Yes”);
else
Console.WriteLine(“No”);
}
}

// This code contributed by Rajput-Ji

Implement an algorithm to determine if a string has all unique characters. What if you cannot use additional data structures?

Implement an algorithm to determine if a string has all unique characters. What if you cannot use additional data structures?

// C# program to demonstrate
// ToCharArray() method
using System;
class AllTechnicalFAQs {

// Main Method
public static void Main()
{

String str = Console.ReadLine();

// copy the string str to chars
// character array & it will start
// copy from ‘G’ to ‘s’, i.e.
// beginning to ending of string
char[] chars = str.ToCharArray();

bool isFound = false;

// to display the resulted character array
for (int i = 0; i < chars.Length; i++)
        {
                          for (int j = i+1; i < chars.Length; i++)
                          {
                               if ( chars[I] ==chars[j] )
                                   isFound = true
                          }
                }
              if ( isFound == true )
                       Console.Writeline(“Not Unique”);
             else
                      Console.Writeline(“Unique”);
}
}

Database Capacity Estimation for Technical Program Manager or Technical Product Manager

To determine a database Capacity Estimation , we will consider BookmyShow.com as example

Requirements of BookmyShow.Com

Functional Requirements:
  1. Our ticket booking service should be able to list different cities where its affiliate cinemas are located.
  2. Once the user selects the city, the service should display the movies released in that particular city.
  3. Once the user selects a movie, the service should display the cinemas running that movie and its available show times.
  4. The user should be able to choose a show at a particular cinema and book their tickets.
  5. The service should be able to show the user the seating arrangement of the cinema hall. The user should be able to select multiple seats according to their preference.
  6. The user should be able to distinguish available seats from booked ones.
  7. Users should be able to put a hold on the seats for five minutes before they make a payment to finalize the booking.

Capacity Estimation

Storage estimates: Let’s assume that we have 10 cities and, on average each city has 10 cinemas. If there are 500 seats in each cinema and on average, there are 3 shows every day.
Let’s assume each seat booking needs 50 bytes (IDs, NumberOfSeats, ShowID, MovieID, SeatNumbers, SeatStatus, Timestamp, etc.) to store in the database. We would also need to store information about movies and cinemas; let’s assume it’ll take 50 bytes. So, to store all the data about all shows of all cinemas of all cities for a day:

10 cities * 10 cinemas * 500 seats * 3 shows * (50+50) bytes = 15 MB/ day

To store five years of this data, we would need around = 15 * 365 * 5 = 28 GB
For help bytes conversion , please refer below grid :
1 KB = 1000 bytes
1 MB = 1000 KB
1 GB = 1000 MB
1 TB = 1000 GB
1 PB = 1000 TB

Software Architecture – Web Application Technical Terminologies for Technical Product Manager and Program Manager

Software Architecture – Web Application Technical Terminologies for Technical Product Manager and Program Manager

1. Scalability

Scalability means the ability of the application to handle increased workload without sacrificing the latency.
For instance, if your application/website takes 5 seconds to respond to a user request. It should take the same 5 seconds to respond to each of the million concurrent user requests on your application/website.
Application’s backend infrastructure should not fail and crumble under a load of a million concurrent requests. Backend infrastructure should scale well when subjected to a heavy traffic load & should maintain the latency of the system.
2. Latency
Latency is the amount of time a system takes to respond to a user request. Assume a user sends a request to an application/website to view an image & application/website takes 5 seconds to respond to your request. The latency of the system is 5 seconds.
If the latency remains the same, then we say that the application/website scaled well for the increased load.

3. High Availability

High availability is the ability of the system to stay online despite having failures at the infrastructural level in real-time.

4. Redundancy – Active-Passive HA Mode 

Redundancy is duplicating the components or instances & keeping them on standby to take over in case the active instances go down. It’s the fail-safe, backup mechanism.

5. Replication – Active-Active HA Mode 

Replication means having a number of similar nodes running the workload together. There are no standby or passive instances. When a single or a few nodes go down, the remaining nodes bear the load of the service. Think of this as load balancing.

Difference between Program and Project

Difference between Program and Project

Criteria Program Project
Time Program can span over a number of years Project’s timeline is shorter
Outcome Outcomes of program may take years to show like process changes etc. Projects are meant to produce output which can be used immediately
Aim Program focuses on organization’s strategic objective Project focuses on management and coordination

What is Business Analysis

Business Analysis is skill to speak to people or stakeholders or business and finding out what they want. Then capturing these as requirement and verify the requirements and make sure we actually achieve it. Also use the captured requirement to come up with different solutions using various tool and techniques. Business analysis helps organization to make better decision .It also involves improving business process and removing business process ineffieciencies

Knowledge Area and Process Group Grid

Initiating Planning Executing Controlling Closing
0
Integration 1 Develop Project Charter Develop Project Management Plan Direct and Manage Project Execution Monitor and Control Project Work Close Project or Phase
1 Perform Integrated Change Control
1
Scope 2 Collect Requirements Verify Scope
2 Define Scope Control Scope
2 Create WBS
2
Time 3 Define Activities Control Schedule
3 Sequence Activities
3 Estimate Activity Resources
3 Estimate Activity Durations
3 Develop Schedule
3
Cost 4 Estimate Costs Control Costs
4 Determine Budget
4
Quality 5 Plan Quality Perform Quality Assurance Perform Quality Control
5
Human Resources 6 Develop Human Resource Plan Acquire Project Team
6 Develop Project Team
6 Manage Project Team
6
Communications 7 Identify Stakeholders Plan Communications Distribute Information Report Performance
7 Manage Stakeholder Expectations
7
Risk 8 Plan Risk Management Monitor and Control Risks
8 Identify Risks
8 Perform Qualitative Risk Analysis
8 Perform Quantitative Risk Analysis
8 Plan Risk Responses
8
Procurement 9 Plan Procurements Conduct Procurements Administer Procurements Close Procurements
9

Difference Between Risk and Issue

Difference Between Risk and Issue

1. Risk is uncertain event that has no effect at the present time and it has not happened. Issue is uncertain event that has happened.
2. A risk has no effect in its current state, while an issue may be problematic.
3. A risk may be absorbed into a project with no effect at all, while an issue usually has effects, mainly negative.