Monday, February 20, 2012

Sprint Demos - A skill..

With Scrum becoming extremely popular, sprint planning , sprint demos are every day words. We all know that every iteration, we create potentially shippable product increment and gather together to give a demo to the stakeholders. But there is more to a demo than meets the eye..

A sprint demo - is literally a demonstration of the work we have done in the last 2 or 3 or 4 weeks (or as long as an iteration is). Demos need to be planned. Else there is a good chance they will fall flat and cause a lot of embarrassment. A demo is a place where we are proudly show casing our work, so everything has to be as perfect as possible. Here are some guidelines for making demos better.

1. Who is giving the demo: A team member with good communication skills

2. A script for the demo. - Assigned member needs to know what they are talking about, cover all the developed features in a logical coherent way.

3. Hosted or deployed code: Code has to be deployed and at least bug free during the demo. (we do not want any crashes in the demo)

4. Test Data is to be set up: We do not want data like 'Test ' address with garbled characters etc. It should look consistent and preferably have names / addresses and other items with which the customer can identify with. For example: International names / address from the city where the customer is located etc. etc. Proper translated data in case we are showing multi language implementation etc.

5. A demo rehearsal: this is preferred, so that the entire team can give feedback on the script / data the communication etc, this can be used to improve the demo. This can also be used to check if all the infra is working fine.

6. Logistics : Using a service like webex / conference bridge with dial in phone numbers / time of the demo / duration of the demo / email to all the stake holders on both sides

7. Other softer aspects like the vendor team (i.e. us) being logged in and ready at least 10 mts before actual start. All other members except the person talking being on mute, no background noise etc. etc..

Needless to say this is a time consuming job. So in a 2 week iteration almost 1 day may go in activities around a demo. This means that code has to be built tested and deployed a day prior. This definitely influences the number of stories that can be committed. This has to be done again and again every iteration..

But the advantages are that we are showing working code as project progress. Demos are a time for applause. To get appreciated for the hard work. Also this is a good chance for the team get over stage fright and talk confidently to customers. And when the customer sees the final deliverable there is no surprise element. They have seen almost all of it before..

One of the customers that we worked with recorded the demos and replayed it to their customers to show project progress. Cool right!!

Tuesday, August 24, 2010

Natural Synergy between Cloud Computing and the new Mobile Web

I was recently trying to write a document on how mobile applications will impact the hospitality industry in the coming years. Naturally one of the key technology areas that I talked about was HTML5 and its impact in the coming years. This implied that mobile web applications were likely to dominate n the coming years with the advancement of technology and the browsers, bandwidth (3g, 4g) etc. etc.

We already know that the number of smart phones is exceeding or about to exceed the number of PC’s and this is growing by the day. With the increase in mobile usage predicted by almost every analyst in town, we can easily conclude that mobile web applications which are to be created in the coming years will be accessed by a far higher number of users than the regular web ever had.

This means we are back to the era of the server side development taking dominance with the expectation that the web application will be scalable, able to take on load and yet deliver the agreed upon performance. There was a brief lull in this when people were busily developing native mobile apps. This is because in a native app most of the processing happens on the client and the application connects to the server only for data fetches. So people were busy creating beautiful looking native apps, taking advantage of the device’s features. But we can safely predict that this lull is over and server side architecting is back in fashion and how!!

With the number of smart phones increasing by the day, it is expected that the number of mobile users accessing a web site is a huge, increasing and variable load. During peak hours or periods this load is likely to increase further. Assuming that the application design is optimized, scale is achieved by procuring the required hardware. In the case of traditional hardware design we always followed the maxim of procuring hardware for peak usage. In this case predicting peak usage will be tough as it is apparent that the load is going to increase on a daily basis for a reasonably popular web site. Also this is bound to be a costly affair and introduce tremendous maintenance overheads.

Now comes cloud computing into the picture. Cloud computing as we all know has the capability of providing users with computing resources servers, storage, networks etc. and it is expected that they can be rapidly provisioned and released with minimal effort from the service user or the service provider, at a cost of course. The mantra is the cost savings that cloud computing provides without the need for upfront infrastructure procurement and maintenance. I.e. in the cloud way of managing infrastructure, an enterprise needs to rent only that much resource as needed for immediate use. Resources can be provisioned just in time and immediately released when no longer required.

Studies indicate that if a web application always has a uniform load there is no cost benefit in moving it to the cloud. Cost savings are achieved only in cases of dynamic load, by acquiring and releasing resources. So applications which have uneven load patterns become candidate applications which can derive cost saving from cloud deployment. More uneven load patterns will imply more scope for cost saving.

Thus it is a no brainer to conclude that mobile web applications or business services expected to cater to mobile usage are ideal candidates for being deployed on the cloud as it gives them cost savings as well as helps them cater to dynamically varying loads smoothly.

Another thought which comes into my mind is the security worry that enterprises have about deploying applications on public clouds. With mobile applications, it is likely that they may not be very critical applications and hence can be deployed safely onto the cloud.

Hence my conclusion.. What do you think??

Tuesday, February 16, 2010

It is Math after all !!!

Continuing on the post by Eshu about what are the typical activities of a software professional.  Some more observations..

I have noticed that the higher a manager is in the hierarchy the more removed they are from a developer's perception of software technology (as in JAVA , .Net , Ruby, AJAX, Perl , etc. etc..)

A typical manager / senior manager / senior- senior manager's ..work day

  • Mail

  • Phone Calls

  • Excel Sheet

  • Meetings

  • More Excel Sheet

  • a bit of power point

  • More mail and more phone calls

  • More meetings

  • Blackberry extensively thrown in..

  • A bit of SAP

  • and more of the above


Almost entirely the work consists of number crunching in some form or the other. Whether it is calculating profitability or resource efficiency or productivity or defect density and so on..

I was talking to my husband this morning who is part of senior management in another Level 5 company and his work day and  his peer's work days  are more or less as above.. Today he in fact has a marathon 3 hour excel sheet scheduled the task being 'Resource Forecasting'...

So it is Math after all !!!.

PS: My apologies if I unintentionally hurt someone's feelings..

Tuesday, February 9, 2010

School Teachers vs Software Engineers

I was in my daughter's school last week on account of a sports day function in her school. I was suddenly  struck by this fact (all of us including me notice this every day,  but think is commonplace) that the entire event was organized by teachers. This got me thinking to what would be the skill set of a teacher if I were to articulate it in words and how it would compare wrt a software engineer. It may be something like this...

Skill Set

Have the right balance between people / process and technology

People

  • People management Skills (students / fellow teachers / principal / parents)

  • Excellent communication skills + English speaking skills (obvious)

  • Customer Facing (face numerous parents!!)

  • Stakeholder Management (negotiate between the principal / parent / student)


Process

  • Highly process driven

  • Adhere to all prescribed rules / standards / formats (remember School timings / test papers / marks / attendance etc.

  • Innovate on processes every time (No matter what they do there will be suggestions from parents to improve processes)

  • Documentation

  • Planning : Home works / Tests / Assignments / School functions / Sprts Functions / Projects etc. etc..




Technology

  • Subject Matter Expert (eg: Science / Maths / English etc.)

  • Computer Literate (all schools have some version of school management software)

  • Art / Drawing

  • Dancing and Choreography (Singing optional)

  • Programming Skills (you dont know when a nerdy student may pop up)

  • Current Affairs

  • Knowledge of the local language / customs etc.

  • In short be one up on the student  especially some over smart ones !! :)


Soft Skills

  • Self Motivated : Definitely Yes!!

  • Time Management Skills

  • Logical thinking

  • Innovation and Creativity / Think out of the box (remember they have to organize dances / drams / school projects every term)

  • Patience / Conflict Resolution / Decision making / Humour (we dont want anyone yelling at us or our kids!!)

  • Work weekends / overtime (remember all PTA meetings are on week ends / all projects / functions mean they have to stay at work till late night!!)


Job Responsibility

  • Groom future citizens

  • Help them choose the right career and excel in their life

  • Inculcate values and culture without any bias

  • etc. etc...


In contrast see the skill requirement of a software engineer

Technology : Programming Skills in any one language (in no way will a JAVA guy learn .Net and vice versa)

People

  • Communication Skills : optional / not required at all :)

  • Interpersonal skills : optional (nerds are not meant to be social beings !!)

  • Logical thinking : Is it used anymore ??

  • Time Management ( what does it mean ? you ask any developer he says that the PM gives him the schedule so his PM manages his or her time!!  . starts work only after 6:00 PM and declares that he/she is working hard.... )


Process


  • Documentation : highly optional

  • Innovation / Self Motivated / Creativity ???? knows JAVA or .Net isn't that enough :)

  • Process Quality : every developer's hate topic..


Job Responsibility

  • Produce software

  • Software can be buggy

  • Need not have documentation

  • Need not meet stake holder expectations as long as it confirms to a signed off RA document created way back..


Now let us see the salary comparison

  • Starting Salary of a developer : 3 lakh per year (fresh from campus)

  • Salary of a senior teacher in one of the high -fi international schools - Rs. 3.5 lakhs per annum


Now let us see the percieved position in society.

  • Software engineer : Highly sought after. Respected . Very good in the marriage market

  • Teacher : Last option after all career choices are exhausted. Definitely no father would want his daughter married to a teacher ..


Isn't this food for thought .. :)

Thursday, February 4, 2010

Software Quality shouldn't it be a way of life ?

I was reading this post by Vijay Ghei which talks about humanizing the IT industry. This post while being thought proving brings me to have the courage to write about my favorite topic on whether it is time to totally revamp our software quality processes . This is controversial and bound to get a few raised eyebrows, but I thought I should go ahead and write it..

Essentially as we know our software processes closely follow the manufacturing industry. We sort of rely on extreme documentation with the idea that when we interact with customers or replace our "resources" our documentation comes handy and acts as the final word.. Which is fine but this goes with the underlying principle that one "resource" is the same as another and is inherently interchangeable.So as per our processes if we have the documentation in place then we can replace one JAVA programmer with another JAVA programmer of same experience  and get the same results. In a manufacturing industry this logic is perfect as one machine can be replaced by another.

But we are not cloned machines yet and each of us brings in our individuality to the project. The success or failure of any project completely depends on whether all these individual minds are harnessed productively for the benefit of the project. A successful project naturally has to have a high quality deliverable , because it is not possible for any customer to accept a working software if it has quality issues. If I were a customer I would definitely reject software which does not meet my needs no matter how matured the process used to produce such software

So we have projects which are declared as totally without process but highly successful from the customer perspective and vice versa. We also have members who request to be kept out of quality processes and left to concentrate on development :-) We have a organizations  who decide that they have to start following agile processes to reduce turnaround time and so on...

Quality is a way of life and has to be the life's breath of every developer or team member. It has to be ingrained into all daily activities. I am all for making the best quality software possible and having in place whatever environment it takes to ensure that. One thing is sure  good software means good quality..

Do these thoughts make me anti process / an agilist or anti establishment ??? Most Probably..

I would like to sign off this post by pointing you all to article titled "Software Engineering : An Idea whose time has come and gone"   by Tom Demarco considered the father of software engineering and who is famous for this  book "Controlling Software Projects: Management,Measurement, and Estimation"The books opening statement is the famous line: “You can’t control what you can’t measure.”

BTW this is article is not freely available. Hence if you are interested pls write to me and I can send you the pdf. I tried to embed it . I don't know if  you will be able to access it..

SW_Engineering

Random Thoughts..

From a long time I have been meaning to write a post. But as with all these things never really got the time or idea. If I have the time then I dont have the idea or if I have an idea  (which is generally in the middle of the night), I don't have the time or energy to write.

I am really amazed at the way our blogosphere is growing. Since I am not able to come out with a original idea or thought, I though I would share what I am doing these days. Am quite tied down with trying to integrate with  a Citrix product called Citrix Access Gateway. This comes pre-loaded in a router like device and we are supposed to integrate our Delfigo solution as a second factor authentication to this device! As part of this did some study on a protocol called RADIUS and came across a new term called hypervisor. The hypervisor is a virtualization environment that directly runs on top of the hardware and gives each virtual machine  a dedicated view of the hardware Microsoft's Hyper-V (comes with Windows 2008), VMWare's VSphere , Citrix's Xen Server are all hypervisors.

By the way am also evaluating free agile management tools : Pivotal Tracker , Scrum Wall , Agilo. Am slowly coming to the conclusion that there is nothing to beat pen and paper! Will keep you posted on my findings in my next post.

Tuesday, September 2, 2008

Media 2.0 at the grassroots

Last week my boss just dropped by and asked to do some research and study on Media 2.0! I was fairly baffled. Everywhere I looked around there was 2.0. Banking, Insurance of course Travel and now Media!! The word 2.0 seems to be the most used word today. I of course dutifully nodded and got down to work (i.e. search God knows what will happen if there is no Google...)


Expectedly, the Web 2.0 Guru Dion Hinchcliffes has an opinion on this. He feels the online video industry is what comprises media 2.0. Some else felt social media (your Facebook, MySpace, Hi5 etc.) is also media 2.0 and should be considered as such. Elsewhere people felt that television companies making their online presence more aggressive, adopting RIA and ensuring availability of online digital content was what media 2.0 was all about.


One of the experts had recommended that since the web 2.0 is all about participation and user generated content, the first thing a media company should do is to enable a user to participate through blogs or comments or what not. Thus started the media 2.0 bandwagon. Of course the big warning by the gurus was that, to ignore this would be a great risk for an organization.


Media as I understand (I am a GenX’er) is television channels, newspapers, magazines. I believe this is called mass media. They have another term called ‘New Media’ to refer to digital or networked media. The web falls into the category New Media. The ever faithful wikipedia has a detailed description for ‘New Media’.


All top television channels worldwide have a strategy to handle New Media. Just check out BBC’s vision for handling New Media. This was way back in 2006. They even had a contest to redesign their web site. Their current website is complete IGoogle style filled with widgets and users can personalize and add and remove widgets of choice. They incidentally ran their new web site as a beta for several months before they brought it to mainstream. This seems to have paid off as BBC’s website has more than 15 million unique users per month far higher than its competition in UK.


New Media strategies also involve making available online videos. These are offered either as streaming or download. BBC has iPlayer and Channel 4 has a concept called 4oD (4 on Demand) catering to online video demand. In the case of BBC latest shows are available for download post the airing on television. BBC has on demand services for video, radio, and news delivered online and through digital TV. Archives of old TV shows which were very popular are another lot that are gaining popularity.


As per BBC’s director general Mark Thompson the definition of a broadcaster in the 2.0 world is someone who is able to deliver high quality content across multiple channels (web, moble, digital TV , etc.) , have a good web site apart from some traditional TV and radio !!!


Of course all this is backed by hard statistics. ComScore said that 73% of US Internet users are viewing video online and within that group, the average person is watching nearly four hours each month. We have seen evidences that the networked generation (especially the Gen Y) is moving away from television and newspapers in favour of online content through the internet and viewing the same through multiple devices like laptops, mobile devices or IPods. Another feature of this generation is that they switch devices and expect the content to transition seamlessly. Broadband connectivity has almost become standard in most homes and is one of the main reasons for the focus shift to online content.


Another interesting point is that all forays into new media are accompanied at the backend with SOA and agile development practices like SCRUM. Channel 4’s video on demand has SOA at the backend, while BBC has decided to invest in SOA to increase digital content distribution efficiency across multiple channels. ITV another top broadcaster in the UK has also adopted SOA for business flexibility and interoperability among its key divisions. SCRUM was adopted by BBC for its New Media division as they felt that needed to use agile development due to the change and uncertainty in this space.


Video-on Demand opens up amazing possibilities for us consumers. We can download and watch shows at leisure, we can skip ads, and we can watch archived programmes. The television of yore was catering to a mass audience but on demand video is targeted and can cater to a niche. (The Long Tail!!!). The biggest advantage of media 2.0 is its ability to make content available to far more people than the one who originally paid to watch it in the first place.


Now for the million dollar question: what are the returns from this spend. Will this mean increase in advertising revenue? One of the biggest advantages of the internet is contextual, targeted advertising and the ability to complete the sales cycle with a purchase. There have been enough evidences to support that TV advertising is losing its sheen. While experts agree that television is still the best means to reach a mass audience, they feel that digital video popularity is making the 30 second commercial spots less effective. The focus of all advertisers is to grab eyeballs as they call it. They are thinking of ways and means to position commercials on digital video and ensure consumer attention is retained. There have also been recent reports suggesting that online spends have surpassed TV advertising in the UK, but we need to examine them more realistically.


So this is Media 2.0. As a parting note: Let us not forget that YouTube is still way ahead of competition in online video viewing. Although we have the web only channels like Joost (from the creators of Skype), it does not seem to be very popular. The super success of YouTube may mean that consumers on the web have different viewing behaviours and sharing mechanisms as opposed to the traditional forms.


All said and done we, consumers are all set for a great time with channels and ads lining to woo us. Now it is left to the content creators to make this medium worthwhile through great and watch able content.


PS : My Boss has a great blog on advertising and media 2.0 , but mine is more at the humble grassroots level