Archive for the Category ◊ General ◊

Monday, September 12th, 2016
“Burning Tyres On Karnataka Highway In Cauvery Protests”, read one of the news headlines. And, I thought to myself, “How could one fight for something by disrespecting that same ‘thing’, at the same time?”. On one hand, people are trying to convince the government of the importance that every ‘cusec’ of water has in their lives, but on the other hand, the same set of people are totally oblivious to the fact that the items that they are burning so recklessly, and destroying voluntarily, had only existed after several gallons of water was exhausted in their production. Rubber tyres, wooden objects, paper and clothes are being burnt; glasses are being shattered; people are being hurt; but, all that one cares for is to ‘stop the flow of a natural resource from one piece of land to another piece of the same land’. Today, the fight is between Karnataka and Tamilnadu over Cauvery water. However, this is not the only fight for water. As I browsed through different news sources, I found some interesting details on “Inter-state River Water Disputes in India”. If you could think about it with a hope to bring in a positive change, the below list of persisting water disputes would definitely daunt your imagination:
  1. Cauvery water dispute between Tamil Nadu, Karnataka and Kerala.
  2. The Krishna water dispute between Maharashtra, Karnataka and Andhra Pradesh.
  3. The Tungabhadra water dispute between Andhra Pradesh and Karnataka.
  4. The Aliyar and Bhivani river water dispute between Tamil Nadu and Kerala.
  5. The Godavari river water dispute between Andhra Pradesh, Madhya Pradesh, Chhattisgarh, Orissa and Karnataka.
  6. The Narmada water dispute between Gujarat, Maharashtra, Madhya Pradesh and Rajasthan.
  7. The Mahi river dispute between Gujarat, Rajasthan and Madhya Pradesh.
  8. The Ravi and Beas river water dispute between Punjab, Haryana, Himachal Pradesh, Rajasthan, Jammu and Kashmir and Delhi.
  9. The Satluj-Yamuna Link canal dispute between Punjab, Haryana and Rajasthan.
  10. The Yamuna river water dispute between Uttar Pradesh, Haryana, Himachal Pradesh, Punjab, Rajasthan, Madhya Pradesh and Delhi.
  11. The Karmanasa river water dispute between Uttar Pradesh and Bihar.
  12. The Barak river water dispute between Assam and Manipur.

Starting from country, state, religion, economic status, caste, gender, and of course opinions; somehow, we are turning into a set of divided individuals at every possible level. Countries are fighting for control over a piece of land; states are fighting for control over a water body; politics is flourishing in the name of religion; poor wants to get rich, but without working as hard as is needed; rich wants to develop better communities, but by ignoring the beggars; honour of men and women is put at stake in the name of caste, gender and opinions. What are we losing in all these fights? We are losing humanity. Aren’t we?!

While I was living in one of the shared apartments, there was a small incident that had happened. And, I’m sure many of us could relate to this incident closely. As I had walked into the common hall, I heard a disturbing sound. The sound of the gushing water had caught my attention. I saw a young lady brushing her teeth at the washbasin. The tap was left open and water was flowing out at its full speed. I kept quiet. I went inside my room and returned to the hall after a while. The same gushing sound was heard again. I stopped and waited for a while. I could see the young lady in the same position, with brush held into her mouth and undisturbed by the wastage of water right in front of her eyes. I was scared to interrupt her brash behaviour, however, I was growing restless within and felt an urge to talk to her. I gathered courage and asked her to close the tap. The reaction was quite close to what I had expected. She ignored my request and said instead, with threatening eyes, “I take more time to brush thoroughly”. I was in no mood to fight. I knew that if it doesn’t come from within ourself, no external force could make us change our mind. I distracted my thoughts and left for work, hoping someday she would realize that wasting water unnecessarily is not a cool thing to do. more…

Category: General, Others  | Leave a Comment
Tuesday, July 05th, 2016

What is a Deadlock?

You would have encountered deadlock in the real life situation like

  • It takes money to make money or,
  • You can’t get a job without experience and you can’t get experience without a job. 

Similarly, in concurrency, when two or more competing actions wait for each other to finish and if neither ever does, then it leads to a deadlock.

Generally, we have a myth about deadlock that it is an an issue which sometimes occurs in multiprocessing systems, parallel computing and distributed systems which involves more than one process and resources. But in actual, deadlock is a condition which occurs when one process holds a resource (e.g. R1) and waits for another (e.g. R2) to finish the task wherein the other process holds the same resource (R2) and wait for resource (R1) and so on.



Example of Deadlock

  • Deadlock in SQL Server

Sometimes we have observed it takes lot of time for transactions to complete if there are large number of records in the database.

For example, let’s assume that the transaction B is in the process of modifying a row in a table T which causes Intent-Exclusive lock on both the table and the page that contains the row.

Simultaneously a process A needs to read a few pages on the same table. However, Process B already holds a lock on one of the pages that contains some of the rows which Process A needs. This situation causes both the processes to be in waiting queue resulting in a deadlock. 


Necessary Condition for a deadlock

Coffman identified 4 conditions that hold simultaneously to have a deadlock in a system.

  •     Mutual Exclusion

It means if one process is holding on to one or more than one resource, it cannot be shared by another process

e.g.: if one process acquires a memory, no other process can acquire it before the process is finished

  •       Hold and wait

It means one process is holding a resource and is waiting for another one.

  •       No-Preemptive Condition

It means if a process locks a resource, it cannot be taken away by a different process by any means until and unless it is finished.

  •         Circular wait

Suppose we have a set of processes such as {P0, P1, P2, P3…. Pn} and P1 is waiting for Resource X, P2 is waiting for Resource Y, and Pn is waiting for Resource X.

The above situation creates circular wait where in every process in the list is waiting for a process held by the next process in the list.


Referring to the diagram which appears earlier in the passage

  • Mutual Exclusion

R1 and R2 are non-sharable

  • No Preemptive               

                       Cannot force the processes to release the lock for Resource R1 and R2.

  • Hold and wait

Process T1 is holding R1 and waiting for R2. The process T2 is holding R2 and waiting for the Resource R1.

  • Circular wait

Third situation creates circular wait.


Handling Deadlock

There are 3 ways with which we can handle the deadlock

  • Deadlock Detection

In this approach we allow the system to enter deadlock state and then recover. There are different ways to detect deadlock. One of ways is through trace flag.

Below is the deadlock information once the trace flag was on


When the deadlock is detected, the database engine ends the deadlock by choosing one of thread as deadlock victim.

  •   Deadlock Prevention

Ensure that the system will never enter a deadlock state. This can be ensured if we can prevent any of the conditions which is required for deadlock.

For example:

Hold and Wait:

            We should guarantee that whenever a process request for resources, it should not be holding any other resources.

No Preemption:

It means process should release the resources being held if it can’t get additional resource. Preempted resources will be added to the list of resources for which the process is waiting and a process can be restarted only if it regains its old resource as well as the new one which it is requesting.

Circular Wait

It means impose an order for all the resource type in a system and then process can request a resource based on order of its resource type.

E.g. provide an order to the resource type of hardware in a computer system

            1 – Card Reader

2 – Printer

3 – Plotter

4 – Tape Drive

Now the process may request for printer and then Tape drive but it cannot request for Tape drive and then Printer.        

  • Deadlock avoidance

                                    The deadlock avoidance approach handles deadlock before they occur.

There are methods like ‘Wait-for graph’ which can can be used to detect deadlock in advance.

Wait-for graph:


In this method, a node is created for each transaction starting in the system. Suppose Transaction T1 request for a resource e.g. X to acquire a lock which is acquired by some other transaction say T2 a direct edge is created from T2 to T1. If T2 release the resource, the edge is dropped.


The system maintains the wait-for graph for every transaction waiting for resource and keeps checking whether there is cycle in the graph.

We can use following approaches to avoid deadlock:

  • Do not allow any transaction which request for resource which is already acquired by some other transactions. One way to accomplish this is to make sure the sequence of the transactions is in such a way that it does not allow transaction to go in waiting state.
  • Other way is to rollback one of the transaction. It is always feasible to rollback younger transaction. It is generally done by the database engine when the deadlock is detected.
Category: .Net, General  | 2 Comments
Wednesday, June 01st, 2016

First impressions matter when you want to build a lasting trust

If you’re going after new business, you have to be able to gain your client’s trust. Giving off a great first impression is one of the first steps to do that. Why are first impressions so important? says Robert Lount, an assistant professor at Ohio State University. “If you get off on the wrong foot, the relationship may never be completely right again. It’s easier to build trust after a breach if you already have a strong relationship”

creating positive first impressions helps you in below mentioned aspects, hence FIRST SPRINT is always important to gain such good impression

  • Control what others see/perceive
  • Enhance others’ perception of you
  • Project trustworthiness

Here are few tips and tops for those who starts fresh collaboration/new project with new clients who has trusted you and signed the contract!

1. Ground work (pre-requisite)

  • Know your customer’s company, business, history, significance of the name and their hierarchy structure
  • Know the technology and tools and be prepared with list of suggestions we can make in terms of technical front or process improvements
  • Sample test frame work with sample code and CI setup for same technology is a plus point anytime

2. Kick-On ( Prowareness way of starting collaboration…it all starts here )

  • Be well groomed because it matters 🙂 (Be in your best business attire , like your are attending most important business meeting of your life)
  • Focus on knowing people, company culture, attitude, hobbies, their interests in life. Plan a activity to break the ice and have fun at end of day/meeting.
  • Don’t miss a chance talk about our company culture and important events & practices @Prowareness which pulls everyone together
  • Avoid grouping yourselves leaving out clients alone, try to mingle with them while having food or during casual conversation or in breaks
  • Verivox-Kaiser-Kick-off-e1447674717114Diner-Verivox-Kaiser-Kick-off-e1438956944790Dancing-Raet-RVM-Team-2

3. Your first 1-week Sprint

  • Choose your sprint goals smartly with mix of technical and functional stories. let there be story/Spike to show some sample screen or one partial feature of the software which you going to build in future
  • Do effective acceptance show case/pre-review/retro because these are the events which tell how efficiently we work and follow scrum
  • Understand all the important problems customer has, this makes the person think I’m speaking with aware that I am more focused on listening rather than talking.
  • Keeping communication smooth is major key during first few days, be open and approachable
  • Solve some existing bugs in case of legacy project/code which is tangible to show results and outcome

4. First awesome sprint-review (Demo)

  • Choose your best person in team for presenting demo, be aware of presentation template and make sure you include clients logo in it(just a wow factor)
  • Plan some pleasant surprises in demo for stakeholders and product owner which you have not shown in pre-review(example: extra story  or sample/mock screen of project or tool tip, multilingual option etc.. )
  • Projecting our understanding of overall project and scope in an slide at end of ppt to show them what we know and how things are in our radar to deal it
  • Explain our culture regarding feedback loop, demo rating and happiness index and how important it is for us to improve day by day
  • last but not least, check all hardware, tools, communicators for the review, try to maintain appropriate volume in tone with immense confidence

these are few tips and tops from my experience with first German clients! Hope this helps!

  • IMG_20160104_190308
Tuesday, May 31st, 2016

Effective tips on how to ensure quality from your offshore teams

“Quality is never an accident , it is always the result of intelligent effort” – John Ruskin 

Offshoring always comes with the fear of quality, the first thought which hits stakeholder when they decide on outsourcing a project is quality hence here we try to give some tips and tops to ensure quality. This tips can be followed in any way of software development process because these are practices which make sense anytime in any environment/backdrop.

Why quality is important we all know, so let me quickly jump into ways to ensure it and create good impact for business, customers and end users.

Forming right team with right skill & mindset

Its even starts here, demanding quality starts right from taking cautious effort on forming team with suitable skills and balancing team. So the process of hiring should be strong for this, @Prowareness the hiring model is very unique and more scrutinized. Below is model for recruitment which carries out various rounds of interview to check candidate’s technical, functional, domain knowledge and also focusing on attitude, aspiration , objective of life , mindset to learn new things and if open to feedback etc..



Tip#1 : Test Driven Development ( TDD )

‘Test-driven development (TDD) is an advanced technique of using automated unit tests to drive the design of software. The result of using this practice is a comprehensive suite of unit tests that can be run at any time to provide feedback that the software is still working”. More than act of testing, act of designing the tests is one the best bug prevention because defect prevention is better than defect detection.

TDD has three simple rule: 1. Write all possible test cases which fails initially 2. Write the code for given functionality in which test starts passing 3. try to refactor and eliminate redundancy



Tip#2: Effective Pair Programming

We all do pair programming but making it effective is what all matters, but how? there are ways to it like for example 1. coding until you make mistake and other person take over 2. driver-navigator type programming on one machine and many more. the advantage of this effective pair programming is as follows

  • Identifying defects at earlier stage
  • Improvement in quality of Design
  • Better problem solving and productivity
  • Better team building and communication
  • pp

Tip#3: Code Review

Code review’s are always helpful because there are other 2 eyes with different perception during this, its a time where knowledge exchange happens and lots of learning form each other. It is advised that technical architect or a senior developer does a code review to bring in his experience and skills. The common outcomes of code review are:

  • Code improvements
  • Understanding of system or software
  • Social communication
  • most importantly defect detection
  • Picture2

Tip#4: Usage of SONAR

  • SONAR is widely used tool for code quality analysis(static code), so enabling it to reflect our code quality helps us to know where do we stand in terms of quality, how much technical debt we have in terms of days or budget and test coverage, it also helps in giving us idea on complexity of code, number of blocker, critical, major and minor issues.

Tip#5: Strong Definition of done( DOD )

DOD is document which comes into picture in agile/scrum methodologies. It’s a checklist document to say if a deliverable is done or eligible to go on production. More strong DOD directly implies to quality of software. This document is crafted along with product owner and team. All we need to do is to create software which satisfies all points in DOD document as a exist point checklist.

Few important points to consider in DOD (sample DOD points)


Tip#6: Having Continuous Delivery ( CD ) in place

This approach helps in producing reliable software in short cycle, with more emphasis on Repeatable, automated loops make up a continuous deployment pipeline for software development at maximum velocity. Release faster, improve code quality, reduce risk of failure and recover quicker (reference –  and )


If we mange to successfully implement few of these top tips , we can see the change and keep improving on our software quality, giving smooth experience/time to our stakeholders and users.

Thursday, December 03rd, 2015

I had been to test drive newly launched automobile, two guys in front of me (believe me, the queue was a long one 🙂 ) were discussing how important it is for a new model to prove itself in various aspects!! (Well, “Kitna deti hai” is one of those).

I was wondering why is it so?? Why people are skeptical in buying new products?? lot of unanswered questions lingering in my mind. Does trust play a major role or is it people want to avoid risk and wait for the product to become commonplace..

Let’s analyze how this works.

There is a saying “Everything that has a beginning must have an end”, holds good for any product as well.

In MBA terms, it’s called “Product diffusion curve”.


The guy in the queue definitely falls in either “Late Majority” or “Laggards” category. That’s because “Late Majority” are skeptical customers, play safe kind of people. Survey shows they constitute 34%.

Let me explain in brief the categories.

Innovators : Risk-takers, willing to try new products, probably fanboys as well !! ( 2.5% is their ratio)

Early adopters : They follow Innovators, based on the reviews/positive response, begin to purchase products. ( They constitute 13.5 % )

Early majority : Careful and mitigate risks, they wait for the product to be proven by early adopters, they rely on recommendations/good experience of the product. ( 34% ratio )

Late majority : They buy product is only if the product is a hit and becomes commonplace. (34% )

Laggards : Only if they run out of alternatives, buys the new product, they avoid change. (16%)

The above categories hold good to individuals as well as organizations.

Let’s discuss : Where does “Scrum” belong in the product diffusion curve in my next blog.

Keep waiting …


Category: General  | Leave a Comment
Thursday, April 23rd, 2015

Phonetic algorithm:

Phonetic algorithm is an algorithm which searches for the word with similar sound. In other words, it matches the words with same\similar pronunciation. When we search for names in database, it is difficult to find same names with different spellings. For example, “John -Jhon” , “Thomas – Tomas”, “Steven – Stephen”, “Rakesh – Rakhesh”This problem can be solved using phonetic algorithm.


Some of the phonetic algorithms are as below:

Soundex: This creates a four character string with three numbers preceded by a character.
Daitch-Mokotoff Soundex: Extended version of above algorithm; creates six numbers as the output code.
Beider-Morse Phonetic Matching: Unlike above two algorithms, it does not check the “sound” test by spelling, but by the linguistic properties of the language.
Kölner Phonetik: Focussed for German words with the same Soundex logic.

In this article, I will talk about Soundex algorithm which is popular among all other phonetic algorithms.


This algorithm was developed by Robert C Russell and Margaret K. Odell and was patented in 1918. This algorithm breaks down the name to a four characters (single letter followed by three numbers) code.
Let us try to create code for the below word with this algorithm


Algorithm is as follows:

1. Keep first letter of the word as is.
                backscratcher -> B

2. Ignore all the vowels (A,E,I,O,U) and H,W,Y. Replace these characters with number ‘0’.
                backscratcher -> B0CKSCR0TC00R

3. Replace following letters with corresponding number (as mentioned below)
                1 – B, F, P, V
                2 – C, G, J, K, Q, S, X, Z
                3 – D, T
                4 – L
                5 – M, N
6 – R

B0CKSCR0TC00R -> B02226032006

4. Remove consequently repeated numbers
                B02226032006 -> B02603206

5. Remove all zero and truncate the characters to four digits. If the output is less than three characters, then fill the rest of the characters with zeros.
                B02603206 -> B26326 -> B263

Below are some sample outputs when we search for names with different spellings:

Names Code
John – Jhon J500
Marie – Mary M600
Raghu – Ragu R200
Prabu – Prabhu P610
Marc – Mark M620


Many databases like Oracle, SQL, MySQL etc.. has implemented this algorithm as a built-in function.

Syntax for soundex in SQL:



Query to search the people with name pronounced as ‘Stephen’

Select name from PeopleTable where soundex(name) = soundex(‘Stephen’)

Category: Databases, General  | One Comment
Monday, December 15th, 2014

I wanted to invest a thought on how Marketers have a lot of product/content on their website but don’t really see if it appeals to the user’s readability or usability. Leaving all the important aspects such as readability, content positioning and page layout, I prefer to get to the basics of electing persuasive colors.

According to, “Colors greatly influence human emotion and behavior”. Now, though there things we do on our daily lives, whether personal or in the hour of need for the Business, it all boils to the details of the look and feel and color which is appealing to help those decisions more indulging, as I’d like to say.

I happened to come across a view of how ’The Logo Company’ has shared the colors used in the Logos to identify how customers perceive to see a Brand as.

logo guide

I guess now you have an essence of how customers visualizes their brands. Is it with the brand name, the logo or the color used? We are actually having an expectation to fit the brand into a particular segment of the mind block with just a color.

Ever heard of a scenario when someone walks into a room and they get a headache? The color of the walls can actually change how a person perceives the temperature, according to Psychologists. Warm colors such as orange, red and yellow can cause people to think the temperature in the room is warmer than it actually is. Cool colors such as blue, green and light purple cause people to estimate the temperature is colder.

Now looking at this from the Business eye; Business owners can use these tips to their advantage by saving on heating and cooling costs. For example, if you live in a cold environment, painting an entryway a warm color may cause people to think the Organization location is slightly warmer than it actually is. This may allow you to keep the temperature at a slightly lower setting.

A few additional tips without getting into the details and how they can be used to a Business Advantage:

  • Green Sparks Creativity– Innovation rooms generally have Green to enlighten productivity and Succession.
  • Red Reduces Analytical Thinking–  Have you considered riding a red car without the need to go fast? It me not even necessarily be a Sports car, their reactions become faster and more forceful. However, that energy boost is likely to be short-lived and ultimately, red reduces analytical thinking. There’s a reason why red sports cars cost more to insure.
  • Blue is Most Accepted – When asked in a room what their favorite color is, the most common answer around the globe is blue. This came as a view right from our Ancestors when the depicted to have a good day seeing how clear and blue the sky was.
  • Yellow isn’t always a Hit – Yellow remains the least likely favorite color for most people, so pick a different color if you want to appeal to the masses. It is generally used to Caution or highlight a point. Yellow light in the Traffic Signal.
  • Orange is Associated with Good Value – The public associate the color orange with a noble value. Home Depot logo for example, helps customers view them as a low cost provider of valuable goods. Some high-end retailers have been able to overcome this association with orange and they’ve successfully incorporated orange into their brand.
  • Pink Calms People Down – In big games, people who see the color back once they hit the locker rooms tend to loose their drive which they should have when they are about half-time in the game. Once people have remained calm for that time frame, they’re often able to remain in a calm state.
  • White May Lead to Boredom – A customer shopping in a white colored store may become distracted from their shopping list, when their mind begins to wander because of the lack of stimulation.

I hope you realize that the examples given here have in some way moved to take decisions otherwise from what you may tend to do. These are ways how Brands market themselves in the customer’s mind unknowingly to create what their all-about.

Tuesday, December 09th, 2014

This post may appear very regular for those in the Software Dev world, but has a lot to do emphasizing how we perceive things that one finds it so insightful that it pops into your head and never leaves. That’s how amazing the human brain works!

In my growing years, daytime Tele was basically programmes for schools (through cartoons, virtual edu-channels such as POGO), so if you wanted to watch the tele you had little choice but to get a bit educated and my memory grew more apart from only being in school. That way, it could relate in school to those events which I came across. It’s possibly how the message is conveyed-more interactively, more visually rather than just learning things for the sake of learning.

A prose program discussed how the meaning of a sentence could utterly change just by emphasising on each single word. A sentence discussed was ‘I didn’t steal Mummy’s pocket watch’. It may seem to be a simple straight-forward sentence, but if you emphasise any single word, the meaning of the sentence changes. Lets take for example, emphasising the ‘I’ implies that the pocket watch was stolen, but not by the speaker. Take the word ‘pocket’ and it implies that the speaker did not indeed steal a pocket-watch but could be an actual watch. Every word emphasised gives a different meaning. Give it a try and you will see what I mean. Interesting?!

So, a sentence with six words has possibly six different interpretations based on how it has been said. As a written piece, you cannot imply how it is to be spoken and here you have a classic ambiguous statement. We do have a mechanism used to write unambiguous text and that’s the system used by lawyers. But that is almost impossible to understand unless you are trained to interpret it, in other words another lawyer. Writing a line of code that only experts have any chance of understanding isn’t a great solution in my opinion. The written word can be quite poor at creating mutual understanding, especially when complex concepts are being communicated. However when said, with the ability to question or challenge, that ambiguity fades away.

Don’t worry! I’m going somewhere with this 🙂 Of course the same is true with written user stories. Making them unambiguous is both challenging, effort intensive and with risk. From the Product Owner, getting the message over to the developer just using written words simply doesn’t work. Writing a few conversation points and then discussing it in a two way question and answer type environment, now that’s proven to be effective!

So next time you are writing a story, remember if you write too much you are increasing risk. If the developer thinks they have everything they need in the story, they may start development without feeling a need to talk and they will probably write the wrong thing. Highly realistic scenario.. Writing short stories and relying on conversation is low in effort and low in risk.

Interesting isn’t it, how we indeed intend to work to the same goal but sometimes need to correct and question ourselves if everyone is actually on the same page of the requirement-at a hand. Worth a thought!

Category: General | Tags: ,  | One Comment
Sunday, November 09th, 2014

Few days ago I was looking at some cool new features that would be introduced in C# 6.0. Although mentioning about all the features in a single blog would be difficult, I would like to share the improvisations made to the most commonly used functionalities that we as developers use very frequently.

Initializing Auto Properties:

C# 6.0 allows developers to declare and initialize auto properties just like fields.

public class Employee


public string Id { get; } = “PROXXX”;

public string Name  { get; set; } = “XXXXXX”;



Primary Constructors

This is a very useful feature for developers since it helps us overcome the difficulty of assigning values of constructor parameters to fields in a class. The primary constructors makes the initialization process much simpler. The below code snippet explains how to declare primary constructors.


public class Employee(int id, string name)    // Primary Constructor declaration


public int Id { get; } = id;

public string Name  { get; set; } = name;



Accessing static methods:

The general way of accessing a static method is <StaticClassName>.<MethodName>. This is made even simpler in C# 6.0. All we need to do is declare the type in a using statement and all the static members of that type will be accessible.


using System.Console;

namespace ExploreCSharpSix


class Program


static void Main(string[] args)


WriteLine(“Welcome to Prowareness”);





Declaration Expressions:

This feature allows to declare local variables in the middle of an expression


Before C# 6.0:

public void ConvertStringToDatetime(string strDate)


strDate = “09/11/2014”;

DateTime result;

bool isParsed = DateTime.TryParse(strDate, out result);



C# 6.0:


public void ConvertStringToDatetime(string strDate)


strDate = “09/11/2014”;

bool isParsed = DateTime.TryParse(strDate, out Datetime result);



Category: .Net, General  | 5 Comments
Wednesday, October 22nd, 2014

There is a little known feature in Powerpoint 2013 that can be very handy for Microsoft developers.
You can make UI wireframes (storyboards) like the one below within Powerpoint!


I said “Microsoft developers” because this feature is only available in Powerpoint if you have Visual Studio 2012 (premium or above) installed.
You can make storyboards for websites, mobile apps and winform apps. You can use from hundreds of common ui shapes and download more from visual studio gallery.
It’s quite straightforward too. Just Open Powerpoint, click the Storyboarding tab and click the “Storyboard shapes” button on the ribbon:


You can start by double clicking a background in “Storyboard shapes” pane. There are backgrounds for mobile, desktop, sharepoint and web applications.
If you scroll on the “Storyboard shapes” pane, you will notice several common UI elements/shapes. Just drag drop the one you need to your slide.





There are even icons, charts, maps, Windows App and phone shapes:



You can also find more shapes online by clicking the link at the bottom of Storyboard Shapes pane:



It takes you to the Microsoft’s Visual Studio gallery page. I’ve marked some of my favourite free shapes in the screenshot below:



You can click and preview any of these before downlading. The instructions to download and adding shapes to powerpoint will also be on that page:



Have fun storyboarding!