Friday, December 04, 2009

Technology should touch lives

This has been the base of my thought process for quiet sometime or since when I started to progress along this technology path. But my time seems to be running like trying to learn and follow some technology just for the sake of it. I still don't feel that I have created or even tried to create something that touches lives.

Thinking deep it feels as if how can that happen with software development, but I still feel that it can happen. When a mobile phone can reach even a kid at no time, why can't a technology, an invention with software reach people. We see a lot of softwares that are a part of life, but how many of then claim that, it has touched their lives.

All the terms, "technology", "architecture", "software development", "enterprise", "portal", "SaaS", etc.. all should be just shelved off! I had always liked the term KISS that we use in the design world. "Keep It Simple and Stupid"!. But designers and architects seems to have their own style or way of "KISS", like how our heroes have in movies and thus KISS is not effective.

We should have our end-users, in the front of our mind, to whom this piece of software that we design / architect or develop would be a part of their day to day life. The moment we drive all our decisions towards that goal, we can slowly start to realize how our decisions affect the lives of people. We should never be pre-occupied that we are giving them something much better than what they have now, but we should always be inclined to give them the BEST we can out of all our abilities. The moment we start working towards that goal, the reality comes very near and by the time we think of retiring from this career, we can see ourselves into lives of many.

Cheers

Tuesday, December 01, 2009

TEDxChennai - Talks that made me think...






I wanted to share the good talks in TEDxChennai that made me think of what I am doing now...

Overall experience of TEDx in Chennai was very good. We need a lot of these good events to come to our city and we get a real experience. There is/was a lot of difference in watching a TED video on your computer and being live there. The next TEDx event in Chennai would be happening on 10-10-10. Note this somewhere and get a ticket for yourself the next time.

TEDxChennai talks-

Kavita Baliga:- A very cute and beautiful little girl. But she is a TED fellow. All these she achieved in 4-5 years. What inspired her was her cancer! Yes, that is what made her think that she had nothing to leave her mark and then she fought her cancer, she is fine now and she now lives a life of thinking that today would be her last day. It was a very good talk that made me think in the lines of "what am I doing here?". I got remembered of my doctor saying it to me a few months ago and I can be active like this only till my 40, then I would be a full time patient. It is actually not the disease, but something that make you inactive, then you have a lot of things to do and you don't have time and energy. So, it high time that I stand up and write down things that I wished to do and start working on that. Thanks Kavita, you reminded me of a lot of things....

Satyabrata Dam:- A very simple person. He was seen wandering here and there during the session post lunch. He was like a TEDx Chennai volunteer. But he is a great and god blessed mountaineer. A really inspiring person. After climbing all the world's top peaks, he was there as if he just started. I was really moved by the way he presented himself. There was definitely a lot to learn from him. Passion is word that I have heard many say, but I saw a person who was living it just like that risking his life all the time. I am not able to express what Satya taught me that made and impact, but it is many, not one. He was always feeling proud of what he did and is doing, but he never presented like that. A great session to inspire to live a life with passion. Every time I wanted to do that, there are so many think that drift me away, but this till, I have decided to resist the drift and see whether I get over that. Thanks Satya, it was really an eye opener.

These were the two talks that inspired me a lot and made me think. But all the other talk were really good. It was interesting to know how people have/had shaped their lives and made a great life of it. They were all real people who can smile when death comes in front of them. They really have something very good to feel about of their life. All of us are also determined to live a life that, but how many of us do that?

Wednesday, October 28, 2009

Agile Scrum – A brief overview

Scrum is one of the methodologies used for iterative software development within the available set of agile methodologies. SCRUM is not an acronym and it has been derived from the game rugby. Scrum is a project / product development methodology which fits to the current changing paradigm and also gives more importance to project governance.

Unlike the current development team structure, scrum has only 3 roles to play within a team,

  1. Scrum Master – one who maintains the process and works to ensure the realization of goals of the Sprint.
  2. Product Owner – the primary stakeholder of the product. Basically the customer who is responsible for prioritizing the backlog.
  3. Scrum Team – a self organized group who do the analysis, design, implementation and testing.

The other terminologies used by scrum are:-

  • Sprint – a 2 to 4 week cycle where the scrum team works to accomplish a set of tasks. The duration of the sprint can be decided by the team. The output of each sprint must be a working piece of software.
  • Product Backlog – is a high level document of the entire set of requirements for the project / product. This is prepared by the Product Owner and would be the input for arriving with the sprint backlog. Each item in product backlog would be prioritized.
  • Sprint Backlog – is the detailed document of the items that would be performed for the current sprint to accomplish either a set of or a single item in the product backlog. The selected item(s) from the product backlog are broken down into granular tasks which can be accomplished within 8hrs of effort. These tasks would constitute the sprint backlog. This is done by the team.
  • Sprint Burn Down Chart – is a line chart showing the remaining hours available to be burnt for completing the sprint. This chart is owned by the Scrum Master and has to be updated on a daily basis.

The Methodology

The product owner comes up with the story for the scrum. The story meant here is a one liner of the requirement that would be accomplished to meet the specific business need. This requirement is further broken down into detail requirement points called the product backlog.

Now once the product backlog is ready is when the scrum starts. There happens a scrum planning meeting where the product owner meets with the entire scrum team and discusses on the priority of the items in the product backlog. In this meeting it is also decided on the during of the sprint. Once the product backlog is completely created a Sprint Planning Meeting is initialized.

The duration of the Sprint planning meeting is 8 hours. During the first half, the product owner describes the goal of the product and the details of the product backlog to the team. The second half of the meeting, the team selects specific requirements from the product backlog that can be accomplished per sprint based on the priority. The selected requirements are broken down into tasks which are called the sprint backlog. It is to be kept in mind that each sprint is expected a deliver a shippable product / feature.

The Sprint begins and lasts of the agreed duration. There is no change allowed or entertained to be added / modified to the sprint backlog.

Daily scrum meeting happens among the stake holders of the sprint, i.e., the product owner, scrum master and the scrum team. The during of the daily scrum meeting (also called as the stand up meeting) should not be more than 15 minutes. There is no excuse for any of the stake holders to skip the meeting. This is MANDATORY. The scrum master is required to initiate this meeting and also update the burn down chart based on the outcome of the meeting. The three questions that needs to be answered by each team member are:-

1. What did I do since yesterday?

2. What have I planned to do today?

3. Is there any issue that is obstructing my task?

Each sprint team member is expected to answer this question.

At the end of each sprint a Sprint Review Meeting happens where each discusses their accomplishments during the sprint and also a demo of the product/feature is planned to the product owner and the other business stakeholders.

· A scrum cycle can have multiple sprints. But the duration of each sprint should remain the same.

· There is nothing called schedule variance or effort variance for a sprint. It is only the Sprint Burndown chart.

Tuesday, October 13, 2009

Be real

I got this mail from one of my good friend. I felt that I should definitely share this, since this is something each one of us feel at times when we are/were real.

The world will often discourage you from giving love. Give love anyway.

Many times, despite your best efforts, you will not be understood. Keep giving it your best anyway.

The treasures in life are not what you get back. Those things are only shadows of life's true value.

The real treasures are what you're able to give of yourself. And as long as you give authentically, from the heart, with the best you have, it doesn't really matter what comes of it.

It's nice to be acknowledged and respected and understood. Yet even when you're not acknowledged or understood, there is still great value in doing what you know is right, what you know is best.

Smile a peaceful smile to the depth of your being. Be real, and know that all is well.

Tuesday, September 29, 2009

PayPal Innovate 09 - The intersection of Ideas & Money


PayPal X Innovate 2009 is PayPal’s first dedicated developer conference, November 3 & 4, 2009. For two days, you’ll have the absolute inside track on how to capitalize on all of PayPal’s products. You'll be in the mix with hundreds of other passionate developers - front and center as the possibilities of innovation are explored in over 35 interactive, technical sessions and Code & Build Labs. You’ll see how some of the most innovative developers in the world are building business on the PayPal platform.

Why people should attend innovate:

  • 1. Get exclusive access through 2009 to PayPal payment technology for developers that is above and beyond Adaptive Payments
  • 2. Hear Tim O’Reilly deliver the keynote address
  • 3. Preview PayPal’s roadmap for 2010
  • 4. See profitable early-adopter applications build on PayPal technology
  • 5. Network with hundreds of other developers, VCs and PayPal engineering staff
  • 6. Learn how to grow your business with PayPal’s payment solutions. Whether you are new to PayPal or an existing developer, the conference has tracks dedicated to helping you drive the most business with your products
Where: The PayPal X Innovate 2009 conference will be held on Nov. 3-4 at the design center in San Francisco. Full conference information can be found at www.paypal.com/innovate2009

I can get you promotional codes which makes your registeration fee of this conference $0. Contact me if you are interested.

Ciao

Tuesday, September 08, 2009

My LWD with CSS Corp

By today I had served 2 years 5 months and 8 days with CSS Corp on their payrolls. I would be joining my new job tomorrow.

It has really been an exciting journey with CSS Labs. Each day was a very new learning experience for me. It took initially few months for me to de-learn my delivery oriented experience and wear the shoes of being in a lab. But then, it was a very great journey to cherish. Being with labs gave me an entire new paradigm to look at any technology and envision a solution. Envisioning a solution with lab was limitless. I was free to propose any solutions and what we look primarily were the NFRs, because we were very confident that any technology can be used to meet the functional requirements of a system. Actually the customer is worried about the functionality until the UAT phase is successfully completed, but then on it is only the NFR that pop's up. But then by that time we would have a system that would not be in a state to accept any NFR!

This is where a solution architecture needs to be done in the first hand. And to do that successfully you need experience in all the prominent and niche tools. And CSS Labs gave me that free hand to goahead and explore these prominent and niche tools.

Life is full of experiences and world is full of suprises. There is an old saying "Courage conquers, boldness pays and timidity fails". With my heart full of courage I am looking forward for tomorrow to join my new job and have an experience filled with suprises!

Cheers

Thursday, July 23, 2009

Interesting Amazon S3 tools

I have been wanting to write on this topic for quiet a long time by now. I feel good to say that I was also one of the early adapters of the cloud technology. I have been using Amazon S3 for alomst close to 2 years by now.

I initally started off with the S3Fox plug-in for Firefox. I tried BucketExplorer, but then it was too slow. By then we had completed a small web based product by name SmartS3 which we floated for our internal usage. This was not just an tool for Amazon s3, but we were having User Management integrated and we were able to server multiple users with the same s3 account!

S3Fish, a bucket explorer tool for Amazon S3 started off and we decided to do it on Microsoft platform. Detailed study made us decide to do it on MS.NET Framework v3.0. We successfully completed S3Fish, a tool that would help you to perform all the available functionality in Amazon S3 and hosted it via Code Google as open source. It was welcome by more users across the globe. We crossed more than 250 downloads in a week and we forwarded that tool to Amazon. Amazon gave us a good review, but suggested us to change the name to be propetiary and thus CloudBuddy was born.

By the time CloudBuddy was born, we had a hand full of tools for Amazon S3. A lot of tools. I decided to try CloudBerry since was more popular than any other tool. I really like the looks of the tool when I started off. But it was not very intresting on regular usage, it gave me a feel that it was another FTP / S3 explorer.

The biggest problem with technologists like us is that we always keep looking for more and new. I started convincing me that I am expecting too much, but my team came back saying that, only a user who is well aware of technology would use Amazon S3 and there is nothing wrong in the way you feel. I was so impressed with the answer from my team and I was then and till now sure that CloudBuddy would definetly be a great tool!

It was and is true. CloudBuddy has been having the MS Office plugin for alomst an year by now and there are several tools which sell Outlook plugin for cloud itself as a priced product. CloudBuddy is now coming up with a lot of new looks and more advanced features. We have taken care of Data Security as a major feature in the forth comming release. We have used the RCA/SHA1 algorithm for encrypting the files while uploading them to the cloud. I am sure that this would be a good feature to have. Even one of our CB user in our forum had asked for this.

I have not tried or used all the tools available in the market, but I have definetly tried atleast the popluar ones. One thing I see that the CB team needs to do it, have more campaign's to feature the product.

My wishes and cheers to the CB Team, for the forthcomming release of CloudBuddy!

Monday, July 20, 2009

Interesting days...

Change is always interesting. This is a very subjective phrase. "Interesting" is again contextual and it differes from person to person.

From my day since joining CSS Labs (http://labs.csscorp.com) till date, life has changed a lot. It has made me a different person from what I was in Covansys. Similarly Covansys taught me a lot lot and made a different person of what I am today, that is a seperate story to tell :)

The journy of CSS Labs has quiet been iteresting. Doing something that you wish is different from doing something that you are asked too. Former is the case with CSS Labs. Being one of the charter member of labs and working with my current BOSS and team...

Two years have gone by and looking back at the difference that I have made to my organization with technology as an enabler is what I feel proud of.

Will keep writing more on this subject, again...

Friday, July 10, 2009

Thoughts On Architecture - What does it mean to be an architect?

Once again friends, the below is an interesting discussion that happened with one of the groups that I am associated in Linked-In. After my reply for this question, I got private replies from couple of people telling that this reply really motivated them...

When people say something is good, I immediately share that with the community.. So adding my 2 cents...

This was the question:-

Grady Booch: Thoughts On Architecture
"There are some things we are confident we know: every software-intensive system has an architecture (though most of them are accidental); multiple views are necessary to fully grok such an architecture (and what views one chooses is often a matter of taste, culture, history, and domain); while the code is the truth, it is never the whole truth (for a considerable amount of information lives in tribal memory).

There are also a number of things we know we don't know: what is the optimal way to represent an architecture? what is the role of architecture in the software development lifecycle? how should the as-designed architecture and the as-built architecture coevolve? and, what does it mean to be an architect?"

These are the questions Grady Booch will attempt to answer at the IT Architect Regional Conference this October. Before he gives his answers, what are yours?

And my reply was:-

"what does it mean to be an architect?"
To be an architect, first means to be the user of the system:- The end user is the one who is going to be day-in/day-out with the system. He is one who is going to be the happiest person in the world if his problem would be addressed by the system. He is one who wishes / expects that the proposed system would ease his life and give him more time and mental peace to concentrate on other things. So first an architect should wear the shoes of an end-user.

Second, the customer who give you the money :- This is a very challenging shoe to wear! Customer expects to get a Discovery Space Ship by paying for a Mercedez! In real life too, all of expect the same in each and every penny we spend. So this is the shoe that an architect needs to wear next. This shoe would help the architect to identify the tool and technologies that he/she needs to adapt to convince the customer that he has a Discovery for the price of a Mercedez. Thus I meant this to be a challenging shoe.

Third the implementor shoe:- Whatever an architect proposes and convinces his customer as state-of-the-art, would always be executed (developed) by a group who would be far below that what an solution expert is. There are always day-in/day-out issues. So this is the shoe that he/she needs to wear to understand what would be a feasible solution to achieve with the give group and get to a win-win situation.

Here it is win-win-win situation.

When an architect starts wearing these shoes and seriously spend some time before deriving at the final one, that is what it takes to get not the so called state-of-the-art but the "this-is-what-i-want" solution.

So is always the future (your end user), the present (your customer) and the past (your developers) who make things a win-win-win situation for you.

Apart from this I definitely would not like to discuss about code, patterns, design and all. If you look at it, as an architect, tech lead, project manager, you would be able to define and specify things only till the 100th feet, but from the 100th till 0, it is only the style of the individual developer. An architect is also a developer, even when is an architect. So as an architect, the solution what I propose should be making my end user happy, but which that translates as appreciated and applauds to my developers and thus I achieve a W-W-W situation!

It is always a matter of referenceability and always I ask myself "where in the referenceability curve are you?".

Monday, June 29, 2009

Cloud computing - the recent BUZZ

Cloud computing is the most recent BUZZ word next to SOA amongst IT folks. Any old, robust, proven technology in a very new flavor is always a BUZZ. Belive me, Cloud computing is nothing very new, very recently invented. It has been with us for a long period and there are several enterprises who maintain their private cloud from times, and most of them I know are still silent.

Cloud computing is now gettings exposed as public and private cloud and now the new flavour interests people. That's it. Let me share few extracts of the discussion that I had with a friend in LinkedIn:-
Discussion topic:- CloudComputing, XaaS! What are the disadvantages?

Reply 1:- Cloud computing can be broken down into 3 basic categories.
  • SaaS - software as a service (using a hosted product such as SalesForce.com or CRM Online)
  • PaaS - creating an application that is then deployed into a hosted environment (Windows Azure, Google App Enging)
  • IaaS - a virtualized infrastructure hosted in the cloud (Amazon EC2, GoGrid and to an extent Windows Azure)

Based on the above three categories is what we need to talk about advantages / dis-advantages. But one thing we need to keep in mind is that when we talk about Cloud Based solution it-self, we are talking about a low-cost, PAYG model. Thus know that we are talking about a PAYG model, we will definitely need to understand that there are going to be more challenges that roses. But there are also paid models available with Amazon and Google where they ensure a well defined SLA.

Question again:-
We are an ISV, we develop software in the tradional way. We install some desktop apps and a server. What would be the disadvantages if we would implement all three layers of cloud computing? Build our own Iaas, develop our SaaS on our PaaS. The user would access our apps through the browser. Why should we switch to the cloud(proprietary or from a vendor)? Why not? What speaks against it?

Reply 2:-
Question 1. When you say you would install some desktop apps and a server, then you are now under the IaaS category. Personally, I am not able to say that by working in IaaS you implement PaaS and SaaS, because they are three different categories. But essentially the provider would also have built a PaaS on top of IaaS and similarly SaaS on top of a PaaS, but there the provider has the entire control and knowledge of the underlying hardware. But in our case, though we get into IaaS, we do have limitations. Though you are said that you would be allocated a processor with X Ghz speed with XGB HDD and XGB RAM, it is only in a Virtualized environment. We would not be able to do any virtualization on top of the HW that we get to host VIA cloud. (This is equal to the Shared Hosting concept) Data security is something that you need to take into account since on a cloud based environment, you need to make sure that you don't share any of your data with others. This can be achieved only by encrypting your data when you load it to the cloud and your app only knows to de-crypt it. But this is going to kill your application response time. Also be aware of the SLA that the provider gives. If there is NO SLA, and your's is a critical business app, better to not chose cloud. Hence for the first question, there is no big disadvantage, but there are certainly a lot of limitations when trying to implement all the three layers by getting initially into a IaaS.

Question 2: For cost and scalability. Cloud is currently in the PAYG model. Let's assume that you have a site hosted in your own physical box at your site. Now you want to publish voting results of your place and you expect more people to use your site for that period of time. What would you do conventionally? Add HW. Right? But with cloud, we can host the result publish site alone as a seperate with a very high HW and BW to support the user volume of the one or two days and channelize it via our own site. Now after two days you can bring the site down. With Amazon EC2 kind of environment (Linux) it would cost you less that $5 for two days! Another example would be for a test bed. If you wish you test your SW to see it's performance you can very well do it from the Cloud by running multiple EC2 instances at the same time and kill all once your testing is done. To conclude on Q2, switching from vendor to cloud is a very high level decision that you need to make. The entire Cloud Computing space is not yet very mature except of one or two vendors in IaaS and SaaS space. So if your's is a mission critical application, it is better to be with the known devil as of now.:)

Question 3: Having spoken a lot in Q1 and Q2, I think it answers Q3 by itself.

Friday, February 27, 2009

Make your world sparkle

What can you do to give life substance and meaning? How can you express the unique miracle of your existence? 

The deepest purpose you feel, drives every other purpose in your life. Allow that ever-abiding, timeless purpose to be fully nourished by your actions. See the beautiful reality that is hidden by nothing more than the shallow distractions of your mind. Feel the energy of life as it flows through your every experience. 

Welcome each moment as it arises. Live the treasure that comes with every day. 
Celebrate this day for the one-of-a-kind miracle that it is. Grab the possibilities and make the world sparkle with your special light. 

Let go of your inhibitions and allow your purpose to make its beautiful and powerful presence known. Breathe in the sweet air of true fulfillment.

Thanks to my friend Nags for sharing this with me..