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