Friday, 8 May 2015

Project Manager, Servant Of The Team

One fair day, one of our clients asked me over a coffee, what is your competitive advantage? Several answers started in my mind as a slideshow; Project Management, Requirement Analysis, bla bla bla… All jargons! But none of them could delight me, so I asked myself “Really???” and I got “Absolutely Not!” as a kickback. Then after self-examination, it finally alarmed in my mind that “It’s your team moron!”
Yes it’s my team, and without them I can’t succeed and as a project manager, it’s my duty to serve them. Every PM must understand that your team is human at last; they have emotions, aspirations, weaknesses, strengths, attitudes and so on. So while managing project, understand that you need to manage people too. 

More than a project manager perform like facilitator! Try to diagnose and expel all obstacles for your team e.g. Understanding requirements, explaining flows, any infrastructural issues that is hampering productivity of your team, avoiding unwanted long meetings where people are struggling to be concentrated. Do all possible things which will increase velocity of your team and automatically of your project. Serve their all valid demands or problems because your project’s success is built upon them rather than any Gantt Chart!
As people’s manager one should:
  • Understand team very closely. Ask them for their ideas, issues etc. Note their inputs and operate on them
  •  Understand their career aspirations. Become mentor rather than boss!
  • Always give them unclouded views about entire project, vision behind the same
  • Motivate them by providing proper appreciations. Performance of people increased when we started performer of the week awards!
  • Always be keen about what is affecting productivity of the team
  • Handle egos in team well

Nowadays, Agile project management approach gives you more resultant tools and techniques to handle your project, learn them! One of the KRA for project manager is to increase team’s efficiency and create healthy team environment in organization


"The strength of the team is each individual member. The strength of each member is the team" --Phil Jackson


Sunday, 19 April 2015

Let Your Software Development Happen With Minimum Meetings

How many of you have ever faced situation like you are doing something productive and manager calls for meeting. “Let’s have a meeting” is an often response for any situation in many organizations. Although scheduling meeting may be a right solution in many cases but not best fit always!

It has been observed that person takes about 15-20 minutes to get back from interruption and focus again. This means unnecessary meeting for 15 minutes will waste developer’s 30 minutes actually and this may create stress and frustration. As a project manager it’s your duty to avoid unnecessary meetings if possible & for that you need to decide whether the meeting is really necessary or not. I generally use following simple flow chart to decide whether meeting is needed or not.




Following should be quick pointers for meetings
  • Check Availability: Always check availability of people, room etc. well in advance before meeting to avoid wastage of time.
  • Avoid Informal Communications: Generally try to avoid informal communications during the meeting period. You can have them prior or after meeting. 
  • Don’t discuss solutions: Even though meeting is the place to point out problems and issues, generally don’t spend time in finding and discussing solutions in meeting. Let concern people sit together and create solutions later. 
  • Don’t go off the topic: Many times it happens the people start diverting meeting topics to something else (knowingly or unknowingly), as a facilitator it’s your job to avoid such scenarios and get back on the road
  • Time: Don’t let your meetings run out of time! We all have fixed deadlines for all tasks and hence don’t let your meeting hamper them.

Understand, many times people may not want to attend meeting, just because they might be really deep into something really important e.g. some piece of code, some architectural flow design, some analysis etc. Keep in mind meetings never write code!
As explained in Agile Methodology of software development, try to conduct daily SCRUMs. 15 minutes stand-up meeting is usually enough for planning a day. You should ask 3 questions to team:
  1. What happened from last daily SCRUM?
  2. Are there any impediments?
  3. What the team is going to handle till next daily SCRUM?

So if you are meeting oriented software project manager, it’s not bad but try to limit your meetings where they are really necessary


Wednesday, 15 April 2015

Improve Your Software Development: Involve Client ASAP

Historical software development methodology was typically as 
  1. Get Requirements
  2. Code It
  3. Test It
  4. Deploy It
In this typical approach (AKA Big Bang Approach or Waterfall model of software development methodology), once requirement gathering is done, coders used to disappear for coding, and clients wouldn't understand what they are actually doing! After lots of sleepless nights coder might think “Whoa! That was hard work! I was working like crazy!” and hence expecting that while showing working piece of software, we will get “WOW! Amazing!” from audience (Clients). However too frequently the reaction was “Yeah this is fine, you did lot of work but what I really expecting or wanted was…..” and from this point all disappointments and project delays start. All rework (Recode, Retest, and Reintegrate!) then starts hampering your timelines and those cost of changes become increasingly high.
Big bang approach usually ends up with big mess. There is an unwritten rule that “If your customer is unhappy, you have built wrong software!” (No matter how great you think it is) and in such cases don’t waste your time in trying to tell them how they are wrong. But then how to find out what customer really wants from you…….simple, “Involve them ASAP”
Secret of great software development is iteration; hence involve client/user during all iterations (Agile Methodology for Software Development) So once you make significant progress you can check it with them and then refine if required or move ahead. As you are getting customer feedback frequently, he is also well aware of the current stage of the software.
Iteration is a frequent check-up of your software! In big bang approach, probably your software gets ready at the end and its utterly wrong time to realize that something went tremendously wrong. With iteration you can immediately come to know that probably you are going wrong.
Consider your each iteration as project in itself or rather a mini project which should involve requirement, design, code, test and feedback. But while doing iterations you should meticulously follow these things  
  1. Estimate the new features
  2.  Let your customer decide priority for new features
  3. Revisit your iteration plan
  4. Check timelines
I’m sure that involving customers early into project really helps a lot! Try it! (If you are still following big bang approach)


Good Software Development Delivers What Is Needed On Time and On Budget