Anatomy of Thoughts

Have you ever thought how human brain generates a thought or an idea?

How brain works:
When we come across something new, like learning a new subject, learning a new skill etc. our conscious mind works, where we have to pay attention to understand the details.
Our sub conscious mind is responsible for thinking on actions related to our day to day activities, like reading, driving car or bike etc. All these general thinking happens in our sub-conscious, and our sub-conscious mind is very well equipped for handling these day to day activities.
But when we continually practice the new skill, we will become proficient in that skill and the thinking for this new action or learning will subsequently shift from conscious mind to sub conscious mind.
Remember the days when you have started to learn driving, it probably would have taken every ounce of your concentration to keep the car on the road, to drive within speed limit and to remember to use the turn signals. But as you have practiced for few months than all of these actions becomes automatic. Now you can talk or listen to the radio while driving and still you drive far well than what you use to when you were learning. This is because now you don’t use you conscious mind to drive and the entire your action of driving is now taken over by your sub conscious mind. And the sub conscious mind is far more efficient than your conscious mind.

Creative Thinking Type:
Every human mind have a specific type of thinking and the thinking type which generates new thoughts or ideas is called creative thinking or innovative thinking.
All the creative thinking happens in the sub conscious mind.
So is it like, as we are not having control on our sub conscious mind we can’t generate new ideas.
Yes it’s true that creative or innovative thoughts comes from our sub conscious mind and we are not having control on our sub conscious mind. But we can definitely ask our sub conscious mind to think creative or even we can ask our sub conscious mind to think creative on particular subject.

Train brain to think creative:
If you want to think creative on a particular subject, you have to read lots of books, articles, papers, discuss the topic with your friends and relatives, follow the topic on the twitter, read the thoughts of other people on various discussion forums, which will give you the different perspective. When you gather some new information a dot will get created in one’s mind and when you come across the same information from different sources with different way presentation that dot start becoming a circle and when that circle is big enough it will get pushed in our sub conscious mind. So when you read or discuss a lot about particular subject you are moving toward the pushing of those information in our sub conscious mind and later your sub conscious mind start connecting those circles, sometimes those circle are become enough to get joined. And this connection between information circles which no body would have done earlier we can call them as innovative ideas.
So the ease or comfort feeling on any particular topic or subject pertains to how much information of that particular subject is there in your sub conscious mind.

Platformonomics: A new trend of business

What do Uber, Airbnb, Vine all have in common?

  1. All of these are considered as startups.
  2. Having multibillion dollar valuation.
  3. And the most important, none of these companies directly create the value that end user consumes.

They all have created a platform for a kind of product or services, which they doesn’t produce.

Uber doesn’t own any of the cabs its rider uses. Airbnb doesn’t own the vacation homes or apartments. Vine doesn’t create any video content. Pinterest doesn’t post any pins.

These is an enormous shift from the traditional business models, where a company creates a product or a service and then sell it to its consumers.

This type of business model can be called as sharing business model, collaborative business model, business on network. But overall it is about a platform for product or a service.

And this new business model will continue to rule for next decade, where everybody will be in win-win situation – producers, consumers, platformers.

Does Hollywood is shadowed by DRAGON

What movies like “Doctor Strange”, “James Bond Skyfall”, “Star Trek Beyond” are having common apart from they are high budget Hollywood movies.

These movies are changed or self censored by the production houses to appease Chinese viewers.

Recently Hollywood movies are seems more biased towards China. Hollywood film-makers are not only accused to self censor the movies in favor of china, but also change the cast and the plot line to appease the Chinese government and audience.

So the question over here is why the Hollywood movie makers want to appease the Chinese viewers.

The answers to this question lies in the returns the production houses gets from the Chinese market. China’s market for movies has grown at unprecedented rate. Roughly over the course of a decade the country’s box office sale has grown twice as fast as the entire country economy and it is expected, the sales of some of the movies can even out-number the sales in US. So Hollywood is definitely having some monetary interest in China.

Hollywood production houses has to consider whether or not their movies can make it to Chinese movie theaters as the country’s government has capped the number of foreign films to be released in China to 34 movies a year (2016) to protect the benefits of Chinese movie makers. Although there is no such rules to outline what kind of movies can make it to Chinese theaters but it is pretty much assumed, anything that appeases Chinese government and viewers can get the green signal. So it is having a profound effect on how the Hollywood movies are made.

Some of these profound effects are as follow:

  1. Movies are shot at Chinese locations.
  2. Casting Chinese stars to attract the Chinese audience.
  3. Dialogues are written in such a way that it can be easily translated.
  4. Many times even the scripts are modified to please chinease viewers. Like in Skyfall, production company cut a scenes where bond killed a Chinese security guard and change the plot line showing a Chinese character in custody.
  5. Managing the release dates of the movies to coincide with Chinese holidays or Chinese new year.
  6. Movie’s plot-line should gratify the Chinese government.

But China’s influence on Hollywood has even rung the alarm bell among some officials in Washington, who worried the relationship could eventually lead to pro Chinese propaganda films. Some of the congress members has request to investigate the China’s investment in American Film Industry. Even one of the former government’s representative has said:

By controlling the financing and distribution of American movies and subjecting them to censorship to gain access to Chinese market, Beijing could effectively dictate what is and isn’t made. -Frank Wolf

Although industry is far from full blown Chinese takeover, but the influence of China on Hollywood can’t be ignored.

Quantifying Programmer’s Productivity

What is productivity?

A measure of the efficiency of a person, machine or a system to convert inputs into a useful output.

So can we quantify the productivity of a programmer?

I think it’s really hard to measure the productivity of a programmer. Let’s see what we can consider as a criteria to judge the productivity.

1. Number of lines of Code

Programmers are getting paid to write code. So why not we can consider the lines of code written by a programmer as the criteria to judge the productivity.

A programmer writing the code in two different language can vary in the number of lines of code, as some of the programming languages are more verbose than other.

Even the programmers working on same programming language, but on different framework can vary in the number of lines of code they write.

Apart from that lots of other things which can distort the picture like white spaces, programming style, comments, coding standards etc. So all these coding aspects will lead to, two programmer writing the code for a common problem in same programming language and on same framework can vary in number of lines of code.

Assume one programmer achieve X-functionality by writing 3K lines of code in a month. And some other programmer achieve the same X-functionality by writing 2K lines of code in a month, than this won’t make the first programmer as more productive. Instead the productivity of both the programmers are same, but the design of first programmer is poor.

Someone can easily achieve more lines of code by copy-paste mechanism but this will lead to a poor design.

Even if someone writes more lines of code, but the code quality or design is not good, than he/she can’t be considered as a good programmer.

In fact the bigger code is prompt to more bugs.

2. Better code, better programmer

So can we consider the better code as the standards of productivity?

Not really.

Can we say a programmer writes 10 lines of code with awesome quality in a day is a better programmer than someone writing 50 lines of code with mediocre quality?

It’s really hard to say yes, because even defining the “awesome code quality” is dicey by itself.

Can we call a piece of code as awesome, if that piece of code is bug free or having less bugs?

Again, really hard to say a code as good which is having only one bug (or few bugs), but which takes whole week of effort to fix.

3. Number of bugs fixes

So can we consider the number of bug fixes in a given time as a criteria of productivity?

Again not really.

I can’t be a war hero by fixing trivial or label change bugs.

So can we consider fixing bugs of same severity as a criteria of judging productivity?

Even this can also have a twist, as a critical crash may take less time to get fixed than a major data polluting bug, which may take a day of debugging effort.

And many programmers not directly fall in this category, so we can’t consider this as a silver bullet.

4. Faster better

We are going faster, we are productive.

Yes going fast is good, but many times fast ride goes bumpy or may end at pitfall.

This happen because as due to pace, we miss some details, some complexity which later act as pitfall.

In going fast there is just need of, to be ensured that the ride will remain smooth.

5. More function point, better

Function Point is a big buzz word in the arena of developer’s productivity.

So shall we consider as more function point, more productive?

Not sure, as there is no proven mechanism to find the accurate function point.

Even if, we have one but again it can be dicey to rely totally on that.

Suppose in a year first developer delivered 50 function point and another developer only delivered 30 function point. But out of 50 function point of first developer only 20 are useful to the end user. So we can’t say first developer is more productive than second. Because may be number proves first developer as more productive, but the true productivity of second developer is higher.

But, I think the usable functionality function point again might not be a true criteria to judge the productivity.

For example, suppose first developer delivers 50 usable functionality function point in a year and during the same time second developer delivers 20 usable functionality function point. But second developer’s deliverables generates $5 million value to the customer and first developer’s deliverables only able to generate $2 million value to the customer. So in this respect I think second developer is more productive than the first as second developer delivers more business value to the customer than the first one.

So let’s consider more business value as the criteria of productivity in the next point.

6. Making/Saving more money, better

Sometime this criteria may be correct from monetary point of view, but not always.

Many time a group of extraordinary developers working on some awesome piece of work (coding), does not lead to immediate financial benefit or even worse may not be a profitable business at all. Because sometimes product takes time to get matured or take time to make its own place in the market.

So during this bad financial time we can’t say the programmers working on it are not good or not productive.

Conclusion

So then, what’s the best way to quantify the productivity or judge someone on his/her programming capability?

Actually judging someone’s productivity should be a very judicious call and there should be a strong rational behind the result.

I think, we should consider all the above mentioned point to judge the productivity. May be all the points won’t be applicable for everyone as it is. But each of these points will give a different direction to think.

And for judging, a decent thought should be given on each point. As directly we won’t be getting a magical number but these point can lead us to find out a rough number which can be considered as index for a group of the people working on similar type of job, similar type of framework, similar working environment.

References

Similar type of analysis was also done by Mr. Martin Fowler in his blog http://martinfowler.com/bliki/CannotMeasureProductivity.html. I have added some more points which can be considered while judging someone’s productivity.

As per Mr. Nitin Bhide it’s difficult to judge a programmer’s productivity. As per him, trying to measure the productivity of an individual programmer is like trying to measure the productivity of an ‘artist/painter’ based on number of brush strokes in his masterpiece. All the metrics like LoC/per day, bugs/kLoC etc. works well as ‘rough measure’ at the team level and these metrics can’t be used to measure individual developer productivity. Most importantly these metrics should not be used to programmer’s ‘pay or performance appraisals’.

Are We Prepared for IoT (Internet of Things)

Are We Prepared for IoT

If futurists are right, we are going to enter in an era where all the physical objects we interact with on our daily basis, will gather the data through sensors, connect to internet and communicate with each other through the buzzword and sci-fi movie worth concept Internet of Things (IoT).

Optimist believes soon these daily usable object will become intelligent and will make our life easy. Tomorrow a refrigerator may suggest you a recipe by looking at the content in it. A light may get dim when you are feeling sleepy. Your shoes may monitor your health and suggest how much calorie you should burn or even may be your shoes will tell, how much calorie your friend has burned. Your dress will monitor your health. Our highways will be safer. Our house will be more efficient. And may be every single idea will become true with IoT tomorrow.

With IoT the devices will be connected to various sensors. Through these sensors they collect lot of data, analyze these data and provide suggestion or take some action based on the conclusion of data analysis.

But there might be the chances that the data captured by these intelligent devices or data flowing across the internet are highly sensitive and private and by considering privacy and security as stand these devices provide a highly vulnerable point to hackers. Instead of making our life easy as supposed to be by these IoT devices, it can create security havoc.

Few years back an incident came in notice, where a malware worm named “Stuxnet”, which was designed to attack industrial programmable logic controller (PLC). PLCs allow the automation of electromechanical processes such as those used to control machinery on factory assembly lines, amusement rides, or centrifuges for separating nuclear material. Exploiting four zero-day flaws, Stuxnet functions by targeting machines using the Microsoft Windows operating system and networks, then seeking out Siemens Step7 software. Stuxnet reportedly compromised Iranian PLCs, collecting information on industrial systems and causing the fast-spinning centrifuges to tear themselves apart. Stuxnet’s design and architecture are not domain-specific and it could be tailored as a platform for attacking modern SCADA and PLC systems.

Stuxnet reportedly ruined almost one-fifth of Iran’s nuclear centrifuges.

You can find more information on stuxnet at http://en.wikipedia.org/wiki/Stuxnet.

Although this example is not directly portraying the vulnerability of IoT data. But with this example we can imagine how badly a malware can hurt any program.

Take another example where an intelligent cooking range is supposed to do some basic pre-processing before I reach home. And a malware in my intelligent device can even influence my house’s fire safety and can burn my house.

We can anticipate an attack of the things, when new connected devices cause problems on networks in a variety of ways including increasing network attack surface (every new “thing” is a potential hackable weak point), using up precious bandwidth, generating mountains of sensitive data that needs to be stored and secured, and usable IP addresses as billions of new things connect to networks worldwide.

Capturing the data from our intelligent device’s sensors will be ok, until I am not providing the intelligence to the controllers as well or our data security system for these IoT devices should be sound enough that I can rely on the actions of my controller as well.

May be tomorrow I will be flooded with suggestions from my IoT devices, but preferably I would like to own the actions rather than these intelligent devices do it for me (at least for now).

I don’t want to be very pessimist and we can choose to ignore the impending onslaught of ubiquitous connected devices. While this might be OK for now, we can’t keep our head in the sand for much longer by just thinking of a TRAP!

Create a free website or blog at WordPress.com.

Up ↑