Technology trends in software industry

  • Angular – Front end user interface framework and much more
  • React – Interactive way of programming
  • React Native – New mobile app framework
  • BlockChain – Distributed non modifiable database of BitCoin which is being used majorly in BFSI
  • Spark – Cluster computing framework
  • ChatBots – Intelligent conversational messengers
  • IoT – Internet of things enabled by beacons, Arduino, Rasberry Pi and others
  • RPA – Robotic process automation
  • NoSQL – NoSQL databases like Graph, XML, Columnar
  • Mobile Apps – Android / iOS / Ionic
  • Analytics – Building predictive and other analytics based solutions using products like SAS / SPSS / BigData / Cloud / R / Talend / Tableau / MongoDB / etc.
  • Functional programming – New way of programming evolving ahead of Structured / OOPS – works like mathematical functions
  • Machine Learning – Supervised / Unsupervised and reinforced learning like we have in Android phones using Google Now. Next step deep learning
  • Languages that compile into Java Byte Code – Kotlin, Scala, Groovy
  • GitHub – New way of code management and much more
  • Node.js – Javascript based runtime
  • Cloud – AWS, Rackspace
  • Spring Boot – Opinionated spring framework with auto configuration
  • Security – Penetration testing, OWASP, Firewalls/UTM/IPS, Cryptography
  • DevOps – Integrated AGILE and Operations
  • API Platforms – Apigee, Swagger
  • NLP – Wit.ai API.ai
  • Micro-Services – Docker, REST, loosely coupled, fine grained
  • Integration – MuleSoft, Talend
  • Design thinking – Thinking focused on solutions and actions rather than problems

Framework for reviving old software projects

We are now decades into ERP, Internet and Enterprise software. Multiple years into social media. So many sites, apps and softwares come and go. So many sites and apps are now in decline. There should be a framework & programming language just like we have Hibernate, Spring, Dot Net, Swift and others to revive old projects – enter database, configurations, code and it should revive a skeleton plus load/create data.

Old things still hold value !!

Being practical and employable in IT industry

Here are some tips on being practical and employable in IT industry:

  • Motivation, attitude, emotional quotient are key. Many studies have shown that earlier model of only IQ has its pitfalls. You need to have the right emotional quotient with IQ to succeed
  • Your habits make you succeed. Surf news sites like www.economictimes.com, www.zdnet.com, www.moneycontrol.com, go to Wikipedia, MSDN, Oracle Java site, IBM Redbooks and your specific product sites daily rather than only your one programming site
  • Read about domains / functional topics daily
    Be an analyst / consultant who codes not the other way round. You have to see a problem and solve it via code. You don’t have to be super coder, you have to be super problem solver, logical thinker, analyst, domain person who is a super coder
  • Talk to your family daily, go for short walks everyday during office hours of 5 minutes each. Talk to people, socialize, make your small groups, collaborate, bounce ideas. Use WhatsApp, Facebook, Google+, LinkedIn not just for gossip but also for knowledge. Enjoy nature. Attend trainings other than your domain / technology too
  • Collaboration, mindset, attitude will solve your problem not just technology. Be a human being not a robot. Build relationships and friendships not work process
  • Keep your ego in check
  • Read about various cultures across the world and at least travel to one or two countries before age 30 or so. See various states of India
  • Listen to spiritual and motivational speakers, leaders in life with your daily knowledge dose
  • Learn various forms of communication – talking, writing, emailing and so on
  • Remember all leaders and successful people failed multiple times before they succeeded so try and refine, improve
  • People have differing view-points. Diversity brings various view-points, learn to integrate with them. You may not agree but you can listen and think about it. There are contexts, reasons, behaviors, thoughts that all people have. Not all are similar. Group of 100 people is a mob if all think in the same way, they become a team when they work together in-spite of differences. Differences bring new way of life and solutions in business and personal life
  • Buy gadgets and test them, see new trends but sleep 6 to 7 hours daily, drink 8 to 10 glasses of water
    Go to your competitor’s sites, see demos on YouTube. Focus on bigger picture and then see the details. Think like JAVA, OOPS. See the real world and map it to interacting objects, solve a problem and code. Learn from people who are better than you rather than just the ones who know less than you
  • Architectural thought. Be a consultant, analyst and architect who codes not vice versa. Learn architectural and design patterns, project management, testing, explore various certifications like TOGAF and so on. Remember a bike/cycle’s wheels have many spokes. You should appreciate all roles in a company
  • Now coming to coding:
    a. Business and solution first
    b. Architecture and patterns next
    c. Algorithm and pseudo code follows
    d. Write the code like it’s your last day in life but learn as if you will be here till eternity
    e. Document, comment, email milestone – Javadoc. There is no code without documentation and collaboration
    f. Don’t forget the database, NoSQL, cloud, SAAS, bigdata and so on. There is a big world out there even in technology. Have a hobby website which you build and update, write a blog
    g. Learn the latest and code one step behind. All the latest product, technology may not be bug free. Learn it but deploy in production when you understand it well
  • Be a well-rounded human being and you will succeed more rather than a super coder. A person with 120/125 out of 150 who is persistent, has good EQ and keeps learning is likely to succeed rather than person with 140 out of 150 IQ without EQ. You can’t win alone, you need a team

Balanced software architecture

Humanity is facing unprecedented challenges of climate change, violence, wars, diseases, etc. One of the reasons is development not in unison with universal rules and facts.

In physics there are fundamental forces around gravity, atom, electricity, fusion/fission, energy, thermodynamics, quantum, etc. All physical things are quantified using mathematics. If our development is in unison with these mathematical quantities they will last longer due to less friction with forces around us. Article here also proposes two numbers of physics: Two numbers that could end physics which keep the balance in universe.

Rather than doing inventions to beat these numbers, let’s develop with them. Rather than finding ways to build bigger than cosmic force things let’s go with them. E.g. solar sail to travel in space.

Same way while building software and technology based systems build things in unison with its surroundings using mathematics. Adjust, don’t fight and prove you are stronger. Most likely you will last longer. It’s about adaptability and working in unison with the higher forces. Merge, adapt, use mathematical models to work in sync with surroundings not against them.

Reasonably right decisions – Humanoid framework for AI

I have a perplexing philosophical question. Currently by using our intelligence and common sense we are able to reach reasonable security. Buy authentic, check promoters/owners, check architecture, feedback, surf, read, sites, notes, work, code, etc, this gets us to a reasonably right decision.

But technology is exploding. Beyond a point of complexity we won’t be able to manage, understand and take reasonably right decisions. In enterprise architecture this new area has to come of keeping complexity manageable so that humans are under control. Otherwise we will not be able to manage the complexity.

Artificial intelligence is now going to catchup. We have Google Now everywhere. New rules, framework, architecture, code, etc integrating with internet are needed. Just like old time network and operating system security.

New framework for and from the values of humans. Hypothesis, laws, framework, rules, architecture and code seems to be the right order. It has to cater to emotions, intellect, biology, philosophy. We have been talking AI for long but now AI is on the cloud and in the internet connecting to everything.

Humanoid framework for AI. This sounds and feels better.

Software memories

Many people around us work in tough situations and professions like defense, police, offshore oil rigs, etc. We should have a project where we download their thoughts onto a computer like backup of computer. If they pass away their family will miss them, we cant bring them back but we can definitely give them a computer with the persons’ thoughts, memories, life events, etc and it will give them company just like we have autobiographies.  Something to think about.
Its like an autobiography but with nice virtual reality type feel. One level above a book and pictures.

Integrate and evolve with digital, not resist and disrupt

We hear lot of thoughts by people worrying about integrating with digital world like cloud, internet and so on with respect to privacy. Humanity is all about evolution and not about resist and disrupt.

What we need to do is embrace the digital world and find best practices and standards to move forward. Digital is not going anywhere. Its only going to be more and more around us. Rather than fight and disrupt, lets embrace it and integrate with it. Its just not about data and cyber security, its about what to store where, how much access, when, governance, what to do incase of data breach, backups, best practices, standards and so on.

Lets evolve with digital. 🙂

 

One version of truth

With so many systems, sub systems across the world in web, dark web and internal networks we have various versions of truth in each system. Truth in these systems may or may not be exactly the same version or even be fully/partially right in all/few/one system. We have search across systems but we don’t have a refined framework to find the right version of truth relative to time. With the proliferation of multiple systems, more and more systems going online, more sensors and mobile devices what we need is truth finder search.

It should be able to search across systems, create various states of truth across time and finally give via differential the truth w.r.t. given time.

Encryption

We all have seen passwords, SSL, HTTPS, public private keys, hashing, salting, digital signature, biometrics, honeypots, vpn key generating token, etc. which are ways of achieving authentication, security and encryption. But what if we use our surroundings and few other parameters as a private key/password.

You store profiles for your home, your office, garden you go to. Profile is a mix of your personal attributes (could be biometrics), surroundings like structures, sun light direction/strength/etc. which together form your unique private key.

Rather than generating and storing your private key on pedrive/device, etc why not build a private key as a mix of surrounding, sunlight, physical parameters like wind/structures/etc along with personal physical attributes. You could create multiple profiles for various places. This though works for limited number of places only. But to take it to multiple locations mix these personal attributes with Google maps building an equation together by digitizing both – that’s our private key that works everywhere.

You would say what’s the advantage over just using personal attributes as a private key. Well this varying key made of Google maps data plus physical parameters plus personal parameters is varying. Its like our VPN key generating token which generates a new key as you move, just that this can’t be stolen. 🙂 There are lot of sensors and lot of computing power to help us in this.

Race to be leaner, lighter, faster – limits will hit us

Whether jet engines, aircrafts, IT outsourcing, manufacturing or services there is a race to be leaner, faster, better, higher quality, etc with lesser resources – humans or machines or steel or fibre. In itself its an oxymoron or irony though not always. It actually stops innovation at times.

Let us look how:
Innovation and peak performance happens when a system/entity (human or machine) works at optimum load. Pressure equals force divided by area. If you decrease the area, pressure increases. It causes more stress per unit area. Whether new entity can tolerate it now due to advances is a different stream of research but definitely stress per unit area is increasing. For aircrafts its pressure or stress per unit weight, for humans its stress per person as its assumed people will work with higher efficiency in lean/agile mode.

A fundamental rule which we ignore here is that systems/entities/people will work optimally within evolutionary biology/theoretical physics limits only. We can’t change them. Like if you want to occupy an area you need specific number of people/police/army/robots, this rule doesn’t change. You can augment this by technology but can’t change rules 100%. Extrapolate to innovation/optimum peak performance, its not possible always to be more and more lean, lighter, faster and get better quality and innovation. We need to follow nature’s limits, nothing goes faster than light in this universe.

Ideas on Innovation around Software. We Thrive On Ideas. We are Learner Centered, Open Source & Digital Focused.