Monday, 13 June 2011

USB: A Technological Revolution

In present we just can’t imagine computer world without USB (Universal Serial Bus).
USB Technology was biggest revolution in computer technology as it helps us to connect various devices to your computer machine without spending essential time for installation of specific devices.USB uses plug and play technology so we don’t have to spend time on installation process. In early 90’s it was difficult and inconvenient to move large amounts of data from place to place. CD-writing technology was almost unavailable on personal computers. The largest commonly-available portable storage media were floppy disks that could at best hold 1.44 megabytes. Large files (over 1.44 MB) had to be split up across many floppy disks, or put on expensive and rarely-compatible high-density disks, such as Zip disks. Those required special, expensive hardware, which limited their popularity.
USB 1.0 was introduced in 1995 by a working group of computer companies including Intel, Compaq, Microsoft and IBM. The intention behind invention of USB was to regulate device connection protocol. In couple of years after invention, standard USB had been widely adopted and USB 2.0 standardize version which we are using today was published in late 90’s.
It’s my privilege to write about Indian-American computer architect Mr. Ajay Bhatt who is co-creator of USB. Every Indian should be proud of him as at present we cannot event imagine computer without USB connector. Just give a thought how would be computer without USB, it becomes tedious to transfer data every time on CD’s as it’s a time consuming process.USB acts like normal hard disk partition and it becomes very easy to maintain, insert, modify data on USB.

Mobile Phone a curse or boon ….?????


The explosion of mobile phone use in last decade has been astounding in India. At present mobile phones in more than basic necessity. Today all of us use mobile phones as it improves communication and main thing it’s portable so we can remain in touch with our friends and family independent of the location. I have read a lot of stuff on internet and in newspapers that usage of mobile phone has some drastic effect on human health. Since I Started researching about health consequences I have reduced usage of mobile phone, am I overreacting???? But to be frank, I seriously think that the radiations emitted by mobile phones have some adverse effect on human neurological system.
Consequently, safety standards have been established to limit the microwave radiation exposure from mobile phones and base stations. Today the RF energy absorbed by human head is measured and from that specific value SAR (Specific Absorption rate) is calculated. However, the safety standards only protect from the heating effect of the microwave radiation, also called the ‘thermal effect’. If the microwave radiation does not cause a temperature increase in your head of more than one degree, the microwave exposure is deemed to be safe.
It’s a proven fact now that the mobile transmission towers located on the residential buildings has lot of adverse effects on the people living in the specific distance. The radiations in emitted by mobile towers proven to be carcinogenic (Cancer causing) and it also affects your neurological system and there is absolutely no justification for claiming that Mobile Telecommunication Technology is safe and does not constitute a risk (both directly and indirectly) to public health.
So guy’s I agree that Mobile technology is a gift of science and it’s very useful in our day to day life, but it has limitations. So give a thought on this and reduced your mobile usages as low as possible. Always remember that It is easier to prevent bad habits than to break them.

DNA Computing

Can you imagine DNA being used as logic gates…..YES!!! You got that right ‘LOGIC GATES’ and yes not only that imagine DNA used for performing complex calculations improving computational speed…..Well let me tell you THIS IS ALL HAPPENING!!!
DNA Computing is developed by Leonard Adleman of the University of Southen California, in 1994.Since then DNA Computing has been successfully tested and used to solve various problems of which one being the Hamiltonian path problem known to most.
DNA computing is a form of computing which uses DNA molecules instead of logic circuits i.e. DNA can be used to built the basic logic gates which include AND, OR, NOT. The main benefit of using DNA computers to solve complex problems is that different possible solutions are created all at once. This is known as parallel processing.DNA computing is used instead of the traditional silicon-based computer technologies. It will have a far reaching effect on the computers and the computing speed as computers will then be smaller and faster than they have ever been.
Talking about the computing speed and to give you a brief idea about the power of DNA Computing I would like you to know that more than 10 trillion DNA molecules can fit into an area no larger than 1 cubic centimeter. With this, a DNA computer could hold 10 terabytes of data and perform 10 trillion calculations at a time.
The biological cell is regarded as an entity that resembles a sophisticated computer. DNA consists of two strands. There are four amino acid bases that are constituents of DNA, traditionally represented by the letters A, T, C, and G.
The two strands act as the input: each represents a 1 when present or a 0 when absent. The response to their presence or absence represents the output, which can also be a 1 or 0.

Adelman's example (Hamiltonian path problem) that provided the very first development in this field is regarded as the first example of true nanotechnology.

Looking at the research enhancements in the field of DNA computing I would like to say that it would just a matter of time that we see tiny drop of solution containing this molecules solve complex problems that mankind faces today.

Sunday, 5 June 2011

Day without search engines……………………….

Just imagine a day without search engines like Google, if you want to write homework assignment and you need a reference as in every case we always do :) for searching the topic and there is nothing except a library what you will do?? Just imagine there are no online articles or any other reference or papers, it’s very hard and tedious job to look for a particular book in whole big library and search for requisite topic, a time consuming job. Search engines made our life so effortless and speedy.
My life is impossible without parents, my friends and relationships, most of the people will tell you that but if you ask me what is so necessary to make your work life convenient I will probably say search engines that’s a fact. To be frank most of us will never admit that which is true :) ,but come on guys working a day without search engines is like computer machine without operating system. Search engines are gathering lot of importance in our day to day life. The discovery of internet and especially search engines made life pretty and simple.
Internet without search engines is a mess as unlimited content is posted on the internet .Search for the specific content is impossible without keywords, whole process of searching the right content for you is done by search engines you just have to give them brief idea about what you exactly want. The process is like finding a specific piece of rock on this whole planet, when I thought of this it becomes impossible to do things on the internet as it’s so immense like our planet.
Search engine is the gift that helps us to arrange the world which we haven’t experienced. +it. So just give a thought about work without search engines I am sure you will go crazy :) as we are so much dependent on them but only make sure that don’t get so much information all day along that you will lose your common sense as its only a artificial intelligence which stands no chance against natural stupidity, jokes apart give a thought on what a software king Bill Gates said “The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency”.
Have a happy searching ……………… :)

Google… My personal search engine !

The day before yesterday I was searching the content on the internet using Google and I was really amused that Google gave me clues about my topic itself instead asking me for input. How do search engines do it??????? As years passed this man made technology is really gaining artificial intelligence which is making end users life so easy that now a days we just have to enter the word and search engines like Google gives instant reaction or I can say information which we are looking…………….As per my knowledge in last two years Google started a service which provides end user a very unique way of search ,it gives only specific information quotes depending upon his interests and search patterns, the big question is how Google do it ? I read on the internet that the phenomenon is called as ‘filter bubble’. It has a simple definition
“The new generation of Internet filters looks at things you seem to like-the actual things you’ve done, or the things people like you like-and tries to extrapolate. They are prediction engines, constantly creating and refining a theory of who you are and what you’ll do and want next.
Together these engines create a unique universe of information for each of us-what I’ve come to call a filter bubble-which fundamentally alters the way we encounter ideas and information.”
The main reason behind Google’s success is it keeps the track of what is clicked by you on the search results. If you often click on same site Google keep track of it and that site will get a ranking boost. Keeping history is browser centric, Google keeps track of everything your searches, search result selections etc and if the user get recognized by the Google everything gets tracked.
When you’re not signed in, Google customizes your search experience based on past search information linked to your browser, using a cookie. Google stores up to 180 days of signed-out search activity linked to your browser’s cookie, including queries and results you click. Google provides you the personalized results.
Personalize your data, personalize your thoughts and personalize your search………..

Skype shining through the open windows……………


After a huge deal with cell phone giant Nokia in beginning of this year Microsoft is ready with shocking takeover of Skype, this deal is warning for Microsoft competitors. Microsoft has proved that they are rocking software giant’s with astounding history of take over’s. This deal is likely to close at the end of this year and according to news it cost around $8.5 billion.
Skype is among one of my favorites applications as we can chat, voice chat freely on it. I use Skype for social communication and it rocks…The only thing I am worried about is as Microsoft already has its own free messenger service (windows live messenger) so what they are going to plan about Skype ,are they going to serve paid service or it’s still going to  be free service. I read on internet that Microsoft is likely to save origin of Skype but with an additional features and minimal changes in it, hope they are planning for the same so it’s boon for social network addicts like me. As like me lot of people are so busy in arranging and managing their hectic life schedule as they will not get enough time for their friends so instant messengers like Skype acts as a thread of communication between them as it helps real time and instant communication so we can easily stay connected with our friends, family, and colleagues located anywhere in this globe.
The most important thing is Microsoft is planning to build business communications platform on which they are planning to provide services to corporate world, that’s a great and thoughtful strategy of Microsoft. So I think now Skype going to be default messenger service in windows7 Nokia phones and hope it will be as I am planning to buy windows7 phoneJ.
The quote by Steve Ballmer CEO of Microsoft in Skype press conference made me smile which is “We dream about experiences that are not limited by distance or device”. Microsoft is still going to provide Skype support to non windows platforms. I hope the company will further integrate Skype into the social networking site as it integrated its Office Live into Face book’s messaging platform so it becomes more convenient for me to stay connected with my friends. It’s great and rocking news for social networking addicts like me who thinks only a company Microsoft is able to handle this risk which reflects a gigantic growth in social networking market.
So stay connected across the globe no matters where you are Sky(pe) is the limit, continual and huge coming with a great look and features.

Monday, 30 May 2011

Kanban


Kanban is a Japanese word that loosely translated means “signal card.”  Kanban’s underlying thesis is that by using signal cards at various points in the production process to indicate the amount of work completed, you can limit the amount of work in progress (WIP) and thus keep the system very “lean” and agile. Work in Progress (WIP) represents inventory and inventory is expensive to keep.
Kanban was originally developed at Toyota as part of the Lean manufacturing movement to facilitate pull systems in a just in time (JIT) production manufacturing process. Work is pulled through the system in single units by demand, instead of pushed in batches. Think Dell computer’s JIT assembly of your laptop as you order it; Dell is pulling a single unit through its production process on demand as opposed to pushing through a batch of computers and selling them pre-configured.
What is Best, Scrum or Kanban?
I have been thinking from some time now that what is best, Kanban or Scrum?. I can't make up my mind so I decided to write an article in two parts, one where I wear the "I love Kanban" hat and one where I'm wearing an "I love Scrum" T-shirt.


SCRUM
Scrum is about getting back to the time when the company was small, everything seems easy and run smoothly. Back then projects were small, teams were small, releases were small and communication was easy. Best of all, we were efficient.

In Scrum we split our big project into small projects as we work on time boxed iterations called sprints. We split our big team into small teams (still with all the skills we need) and launch often. If we are more than 20 employees we probably have a problem knowing what the other departments and customers are needing so let's bring someone into the team that can represent them. To help communications from the team to the rest of the company we have our plan and current status visible. The plan is called the sprint backlog and the status is shown on the scrum board. Here is an example:

The person we brought in to represent all stakeholders is called product owner and is responsible for prioritizing a list with features that will be developed for the product in the future. This list is called the product backlog.
To make Scrum a process we add some small but necessary meetings: a planning meeting, daily synchronizing meeting and meetings to improve product and process.  We decide the length of our iterations and aim to deliver something valuable after each iteration.


KANBAN
Scrum is simple but Kanban is even simpler. Just visualizing your workflow and limiting demand to capacity is enough to call it Kanban.

Let's start by looking at the roots of Kanban. It's a way, invented and used by Toyota, to get a good flow of parts to their plants. Kanban is just a card attached to the part and when the part is used the Kanban is sent as a request to the supplier for more parts. The physical card is actually sent to the supplier who is attaching it to the next pert sent. Since the cards are re-used and no new cards are entered in the circulation, Toyota limits the number of parts in stock and at the same time makes sure new parts are ordered as soon as they are needed.
In software development Kanban is a limited promise of work. A Kanban board is a number of placeholders for work to be done. A typical Kanban board can look like this. 
Each team has decided their limit and drawn as many squares as the limit allows them to. Whenever a task is done it will be moved to the next group if and only if they have free Kanban squares. Else the task is stuck. If there is nothing more to do we have a problem with the flow and we need to work together to solve what is stopping us.
While Scrum is focusing on delivering on commitment Kanban is focusing on getting a smooth flow.

In common for Scrum and Kanban
There are a lot of similarities between Scum and Kanban. Some examples are:
  • A strict prioritization (it's obvious what to do next)
  • Self-organizing teams (see below)
  • Transparency (show what you've done, your current status and what's next to do)
  • Inspect & adapt (improve your product and process based on facts)
  • Pull scheduling (see below)
  • Good communication and collaboration
Self-organizing teams is when the team themselves are supposed to figure out how to solve problems, remove impediments and optimize their process. They should base their decisions on facts to inspect and adapt accordingly.
Pull scheduling means the team is pulling work instead of having it pushed. This will limit work to capacity and lower stress, which is bad for both health and quality.

This is why I prefer Scrum
So, now that you know what Kanban and Scrum is, it's time to decide which is best. 

I start by putting the Scrum T-shirt on. Look further down if you like to read the part where I love Kanban.
I concentrate on some areas where Scrum and Kanban differ:
  • Iterations - In Scrum you work in iterations. Kanban sees development as a forever ongoing flow of things to do.
  • Commitment - In Scrum a team commits to what they will do during a sprint.
  • Estimations - In Scrum you need to estimate to be able to have a velocity. In Kanban it's optional since focus is on time-to-market.
  • Cross-functional teams - That's one of the pillars of Scrum. For Kanban it's optional.
Efficiency driven by commitment
By asking a team for a commitment they will get a positive stress knowing that people from outside will see if they can do what they committed to. It also gives an energy boost at the end of the sprint when the team has the goal within reachable distance. After the sprint, the team can feel relaxed and gather some new energy for the next sprint. It's psychologically nice to not feel you are in the middle of a never-ending stream of things to do. Instead Scrum concentrates on one sprint at a time and allows you to focus only on those things you have decided to take on in the sprint. By working in fixed length iteration you get a nice rhythm the whole company can feel and adapt to.

The value of estimating

Estimating is not a waste of time since valuable information is transferred from the product owner while the team asks what they need to know to be able to estimate. The same thing applies to commitment. To be able to commit team members need to know what they are committing to. They simply have more interest in getting information from the product owner so they listen more carefully. And they are just asking for the information they need which makes the meeting very efficient.

Even though you can predict when a project is done, just by counting stories left, it is more precise if each story is estimated as well. Prediction is important when more departments, like marketing, are dependent on your work. It gives a more serious feeling.

Slack at end of sprints
If there are some time at the end of a sprint that's valuable even if the time is not big enough to start developing new features. This is time developers can use to improve code quality or the development environment. Both will give better efficiency in the long run.

Build teams with cross-functionality

Working together in a cross-functional team is a psychological thing. You are able to go the whole way from concept to released product together as a team without dependencies. You are not just a cog in the machinery. It's also fun and helps you grow as a person. By helping each other, knowledge is spread which lessens dependencies on each person. It also helps prioritize since features can be built without considering which knowledge is available. To coordinate between people with the same skills who are sitting in different teams you can have virtual team meetings as often as needed.

Scrum is best for beginners

I know, you can do all those things even when doing Kanban but they are optional and since they are optional you might just not do them just because you are too lazy to challenge the usual procedures or structures of your company. If you are new to Agile development it's better to have a method guiding you to do the right things. Just read the book and implement it. Later when you get used to it you can start experimenting and eventually get better performance. If you start experimenting too early you might end up with waterfall or chaos but still calling it Agile. Kanban is more advanced because you need to make a lot of decisions without having many facts.

This is why I prefer Kanban
Now it's time to take off the Scrum-T-shirt and put on my "I love Kanban"-hat.

Kanban is based on Lean principles
Kanban is Lean and has been around for 50 years and has shown to be successful. Things are seen as a flow without iterations. Not many rules. It's just a focus on reducing work in progress, strict prioritization and limiting demand after capacity. Besides that you have the normal Lean principles of:
  • Quality
  • Just-in-time (decisions and facts just when they are needed)
  • Short lead-time (quickly from concept to cash),
  • Kaizen (continuous improvement)
  • Minimizing waste (everything that is not adding value to the customer)
No meetings if it's not adding value to the customer. Most of those things are fine with Scrum but I can sometimes think Scrum has some waste. Here I will mention some areas where Scrum practices might be waste.

Estimations might be waste
If a product owner knows what needs to be done and the only goal is to have it done as soon as possible, why spend time on estimating? In Scrum, estimations are needed for a team to know how much to commit, to calculate velocity and for the product owner to decide on prioritization. If none of this is needed, it's waste and we shouldn't do it. If you like to measure velocity you can instead count the number of stories done per week or month. While talking about measurement why not look at something the customers are interested in, lead-time. That is, the time it takes for the customer to get what he or she ordered.

Constant flow

If the team is done with a story and there is not enough time left in the sprint to complete the next, it's likely no one works hard the remaining time and that's waste. Kanban is trying to get a steady and non-stressed but high flow of work running through development.

Sitting with people that can help you
In Scrum a team is cross-functional and sits together with the people working with the same project and not with the ones with the same knowledge. Let's say you work with sound effects for a computer game. Then it's not much help to have a java-programmer beside you. It would be more valuable to sit with people doing the same things as you do who can help you with tools and practices.

No possibility to commit

In Scrum, the team commits which does not work very well for a team with support issues. They get a lot of disturbance and commitment is not worth anything since the ones disturbing them don't care about commitment. A commitment you can't control gives either frustration and stress or demotivation.

Kanban for support and operation teams

Support and operation teams are often interrupted. It's part of their job. Frustration comes when interruptions are happening just because there were no times for pre-emptive work. Just by having the pre-emptive work on the board gives focus to fix the hardest problems one-by-one, which gives less interruptions and more time to work pre-emptively. It becomes a good circle.

A Kanban board for an operation team can look like this:

Most important are the urgent problems that arise. Secondly, daily duties must be done. Then the team members can take care of other projects, usually to improve stability in the operation environment. The limitation on the number of parallel tasks gives focus to be done working on improvements, not just starting them.

Many options gives freedom
Kanban is simple with few constraints, which gives you freedom to change your process step by step. Either you go from waterfall or chaos, your first step is to visualize and limit your flow with a Kanban board. When you have your flow visualized you add whatever work is needed to thrill your customers. Your improvements might be decided during a monthly retrospective meeting or on a daily meeting.

The workflow

A direct consequence of this difference in rules is the way the work items are handled across time.
In Scrum, you select the work you'll be doing for the next sprint beforehand. You then lock the sprint, do all the work, and after a couple of weeks - the usual sprint duration - your queue is empty.
Typical flow of a Scrum process

In Kanban, all that's limited is the size of the queues, called the Work In Progress limit. This means that you can change the items in the queues at any time, and that there's no "sprint end". The work just keeps flowing.
Kanban flow, with a WIP limit of 3 for the Todo, and 2 for the Ongoing.