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

Friday, August 8, 2008

Mobile Enabling an Enterprise

There is a lot of talk about mobile applications nowadays. Everyone feels that 2009 will be the year of the mobile. The success of the IPhone and the App Store concept from Apple may be fuelling these predictions. All enterprises want to be mobile enabled. No one wants to be left out of the race.

As you can see from examples Banks are offering mobile banking in a big way - Bank of America, Wachovia, Citibank, Wells Fargo , ING etc. to name a few. Airlines are adopting it and see it as the next big opportunity to communicate with passengers about on-board services, rebooking options, baggage pickup and ticket purchases etc. Mobile boarding passes are in (completely paper less like Continental Airlines). Back home our very own ICICI Bank (my favourite whipping boy) is offering mobile banking.

We all know how fractured the mobile market is. This is exactly opposite to the scenario in the PC world. For us software developers, Microsoft has done a huge favour by creating a monopoly and almost standardizing the PC world. We do not have the headache of creating applications to run on more than 2-3 platforms (Windows / Linux / Unix and rarely Mac). In the case of web applications we can dictate that the application will run only on IE browser and get away with it!

Once the action shifts to the mobile world things are not so rosy! First thing you do not have a market leader. You do not have a standard platform. You do not have a standard browser. You have a wide array of small players successful in their own niches. And to add to this you have geography specific usage patterns.

Then, there are the regular phones and the so called smart phones. Gartner defines a smart phone as "a large-screen, voice-centric handheld device designed to offer complete phone functions while simultaneously functioning as a personal digital assistant." How different is it from a PDA? Seems like both are converging, with PDA’s offering phone capability. (Check this out)

Symbian is the number 1 in the Smart phone market while Microsoft leads in the PDA world. Symbian is hugely successful in Europe and the rest of the world. But let us not forget US where they are almost nowhere. In the US smart phones are dominated by Blackberry, IPhone, Microsoft. But these are smart phone market numbers which were incidentally only 10% of the total mobile market in 2007. Mobile Web is big in Japan, in fact bigger than PC Web. Last but not the least is China where Linux based phones are hugely popular. Please remember, I have not mentioned Android despite all the hype as there is yet no single phone which is running that platform. Apart from this there are the regular phones (which are not so smart!). As per IDC 334 million handsets were shipped in the last quarter of 2007. Our own India is the 2nd largest mobile market in the world with around 250+ million connections at the end of March and SMS dominates our lives!

So what are the choices to develop mobile applications?
  • Browser Based
  • Downloadable applications
  • SMS Based

Wrt the choices of mobile application development platforms: Read this blog from my colleague Deepesh to understand the various mobile technologies.

The biggest problem in mobile application development is fragmentation due to differing device capabilities and a lack of standard platform supporting 90% of the devices. This is applicable to downloadable as well as web applications. (Read this blog by Simon Judge)

And given a mobile phone what are its limitations? Screen size definitely. No matter how big the screen is the device still has to fit into our pocket. Then is the battery, processing power, bandwidth availability, reliability of connection just to name a few.

Standard platforms like J2ME are very popular for creating games on mobile phones. While JAVA was projected as a common platform for creating applications across mobile phones, the reality is that there are still implementation differences across devices, which lead to severe maintainability issues.

However Mobile as a market is very attractive. Just look at the market numbers. Recent statistics suggest that the number of mobile phones in the world is higher that the total of PC’s, printers, monitors etc. Staggering!! And a mobile today is almost an extension of a person. Everybody you see is on a mobile. Also the spend on mobile advertising is far less compared to web advertising. So it is clear that there is a huge opportunity here. The question is how does an enterprise tap this?

If an enterprise wants to go mobile, it wants to cater to the maximum number of users. Given the size of the device it is not practical to offer a mobile version of the entire business application. Enterprises need to consider the following aspects:

1) Identify which parts of its applications it wants to mobile enable
2) Will mobile enabling mean ease of use for a consumer?
3) Which technology to use?
4) Which geographies to target?
5) Is mobile web a viable approach?
6) What are the types of handsets in the geography of choice?
7) Who are the major operators? (May need tie ups with key operators)
8) What proportion of mobile users are expected to use the application?

A clear requirement is that an enterprise’s application should be ubiquitous (means easily available I believe). Given the variations in technologies, devices etc., it makes sense for an enterprise to either focus on the lowest common denominator of technology availability or make applications available across the entire spectrum of technologies!!

Again let us look at my favourite example, ICICI bank. As I mentioned above they have launched a mobile banking service. They have chosen to go through route (2): make it available across the spectrum of technologies as much as possible. Just take a look at their mobile banking page. They offer services through downloadable applications (J2ME based), web, and SMS. And their downloaded application has the ability to connect to their services through GPRS or SMS depending on what the user has subscribed for! If you look at the download options on their site your will find numerous versions of the applications which are manufacturer and device specific even though they have used J2ME to develop the application.

Yet they have not covered the spectrum of service providers in India. For example they clearly say that: 1) a non JAVA enabled phone user cannot use the application, 2) If a user changes device, he should download a new version of the application, 3) the application will not look identical on all phones (depending on the visual interface of the phone) and last but not the least this will not work on CDMA mobile connections. Even their SMS version is only available to GSM users.

Given the number of versions to be maintained this clearly looks like a maintenance nightmare! And we have not answered the million dollar question yet, which is how many people actually use this service after all this trouble.

So for an enterprise what is the strategy? Do they wait and watch? Or do they jump in so that they have a presence ahead of their competition.

Mobile web seems to be the next big thing. There seems to be emerging standardization in the mobile browser world. There is also a reduction in the cost of data rate plans for mobile internet. IPhone with its full function Safari browser, is an example of how mobile web is becoming popular . But we are back to the question of, will it be supported in more than 90% of the devices belonging to the potential user base. With the price of smart phones falling and technology constantly improving maybe in 1-2 years browsers will become standardized, in which case first movers will definitely have an advantage. There are also some encouraging statistics for enterprises. Bank of America (which offers a mobile web solution) says that it has more than one million mobile banking customers.

As a parting note, let us also not forget that Apple has provided the SDK in this version of IPhone and the App Store has been extremely successful even though it is only a month since its launch. Nokia has open sourced Symbian and Android based phones are just round the corner. So wishing you all the very best in mobile enabling your application !

Wednesday, August 6, 2008

Enterprises and Consumers

Continuing on my thoughts on web 2.0, I wish to focus on what enterprises are doing in the web today and whether they are reaching out to those that they wish to target i.e. their consumers

Web 2.0 has changed the way an enterprise reaches out to a consumer. Earlier the focus was more on what the enterprise offered i.e. Consumer used a specific service because it was there. He could not demand for a feature or an offering. Enterprises only thought of what they could offer and not of whether the consumer would actually benefit from such an offering. Their offerings were the latest and state of the art in technology. Alas! Usually the usability of the offering left a lot to be desired.

For example: Bill Payment is offered by ICICI bank. They have extensive options like ‘Presentment Mode Biller’, ‘Payment Mode Biller’ and ‘Shopping Mode’ on their site. ‘Payment Mode Biller’ means that a consumer can only pay bills but a ‘Presentment Mode Biller’ means that a consumer has the added facility of viewing and paying a bill. Sounds great! Doesn't it.

The sum and substance of this is that, if for example you have a BSNL (Bangalore Telephone Bill) Bill that you urgently want to pay since due date is approaching (I had this problem 2 days back) and hence you log in to ICICI bank web site you will be told that this is a ‘Presentment Mode Biller’ and you can register for and pay this bill only from the next billing cycle! Same is the case with a few other banks as well. So as a consumer I have no choice but to rush to the nearest billing counter for making a payment. – Consumer Focus or Enterprise Offering?

Coming back to web 2.0: the new mantra seems to be consumer focus. Get the consumer (actual end user not middle men) to participate, contribute and give feedback to help applications evolve. The term ‘Prosumer’ has been coined. We have huge companies like Amex , Fidelity now running beta labs (earlier beta programs were the bastion of Microsoft and of course with Google everything is a perpetual Beta ) which give the consumer an opportunity to try out new ideas and revert. Amex even lists ideas which have graduated to mainstream and those that are discontinued. We even have airlines websites on the verge of starting beta programs.

Maybe if someone from ICICI Bank had done a beta program and sought feedback on whether offerings like ‘Presentment Mode Biller’, ‘Payment Mode Biller’ are acceptable to a simple user like me they might a got a different response.

More on this in my next post. Meanwhile, here is an interesting post from Dion Hinchcliffe about beta programs, which is still relevant.