What do Presales Consultants / Solution Architects do ? – Part 1

All software projects and software product development goes through a cycle whether in AGILE / WATERFALL / ITERATIVE / HYBRID AGILE / DEVOPS / etc. where requirements are discussed, finalized or atleast finalized at a high level with prospects / customers – internal or external, post which project Statement of Work is created / signed or product backlog is created, agreed and work on software / product development starts.

Presales Consultants OR Solution Architects typically work on below items:

  • Responding to Request for Proposals / Request for Information / Request for Quote by building proposals which cater to various sections like compliance, terms and conditions, pricing, milestones, requirements, architecture, etc.
  • Finding the fitment of the prospect’s work in terms of organizational / technology / domain / process / quality / etc. with company and providing input for continuing the work of the prospect or not
  • Finalize or participate in high level solution and architecture design
  • Take decisions or participate in the same for areas like open source vs. proprietary or mixed
  • Conduct demos of earlier projects done / products built / solutions
  • Build pricing models for the project and milestones
  • Estimate or participate in estimation discussions
  • Conduct user / customer interviews as a business analyst or tester
  • Build proof of concepts / technology or functional demostrators
  • Participate in consulting assignments as a facilitator for architects and / or build the high level direction of the assignment or solution
  • Participate in or present the solutions / products to clients
  • Stay updated with trends in technology / domain, news, happenings in IT industry and overall in the organization which they represent so as to right fit the solution to the customer’s needs based on what’s available and possible
  • Build case studies, proposal and estimation repository, create white papers / presentations, processes for responding to client requests, list of standard questionnaires and their answers, etc.
  • Understand and study competitors, document the same
  • Build or participate in building best practices across technology, domain, process and quality
  • Create statement of work, proposals, quotes, approach documents, presentations, minutes of meetings and other artifacts that act as base documents for a sales discussion from back-end sales support side
  • Provide inputs to sales, marketing, delivery, testing, finance, HR, etc. and others as required based on the trends and customer knowledge that they acquire from industry / customer interactions
  • Hand over signed contracts and statement of works to the software delivery team via a hand over to start development or activities required before that and transfer understanding of customer expectations
  • Monitor the project along with project manager at high level for cost, architecture, technology, domain and duration, then participate in testing to ensure that product or project is on right track

Above was Part – 1 on details of what a Presales Consultant or a Solution Architect does. Moving forward I will post more details on the whole Presales and Solutioning life cycle

BPM (Business Process Management) and trends

Business process management from 1990s / 2000s in simplest terms is a set of activities (automated or manual) with breaks for events and interactions with external systems / human beings along with notifications / rules / filters / etc. Traditional BPM / Workflows included manual and automated tasks, integrations (mainly offline or asynchronous), notifications, auto-escalations, interactions with human beings.

Come to 2017 and we have plethora of new technologies / products in the ecosystem which we can use along with BPM – some are already in use and some will evolve with time.

  1. Real time analytics integration with social media and other areas
  2. IoT integration
  3. Automation, Machine Learning & Artificial intelligence
  4. Collaboration
  5. Omni channel
  6. Cloud
  7. Entity modelling and Decision model & Notation instead of BPMN
  8. Chatbots as entry points
  9. Low code business process management platform
  • Real time analytics – With all of the social media APIs in the market like Twitter / Facebook and so on we can integrate them with BPM as an entry point based on for example for many of the tasks or in other activities in integration. A positive or negative review with specific keywords can for instance trigger a specific part of or the start of workflow. Something similar was done by a bank in India recently where they had twitter based banking
  • Internet of Things has a lot of intelligence built into them from beacons, electronics kits, sensors, biometrics and so on. They could act as augmentation to the normal input provided by other systems and BPM users / admins. For instance based on a specific temperature threshold emergency systems could be activated and series of various fire mitigation steps could be activated
  • Robotic process automation, machine learning and AI have the capability to automate many of the steps of BPM / Workflows. They could for instance automate the under-writing of various insurance policies based on earlier inputs and rules
  • Collaboration and omni channel are buzz words today in marketing and horizontal portals. BPM can potentially now work with multiple channels like smartphones, APPs, SMS, calls, social media, etc. driving more productivity
  • Many companies now offer softwares in cloud as SAAS and workflows too for instance can be hosted in say AWS to connect anywhere, anytime and in multiple ways over internet
  • Entity modelling and Decision model & Notation are two new ways of modelling your workflows and business processes. They are closer to business and non technical users can use them for modelling the processes
  • Chatbots which use Natural language processing to create chats between humans and backend systems could be another potential entry activity for workflows and BPM
  • Lastly low code platforms are getting more traction as we move into world of automation, artificial intelligence and machine learning. With decision model & notation and entity based modelling we are already moving in direction of low code platforms

Blockchain for ECM and Digital Assets

What is ECM ?

Enterprise Content Management is a repository of documents with workflow, scanning, digital rights management, integrations, metadata, web content management and portals weaved around it

What is BlockChain ?

Database mainly used as distributed ledger which does not allow modifications of earlier stored ‘Blocks’ in it and secured by cryptography in a way where earlier blocks’ signature is stored on the next instance resulting in immutability. If any of the earlier blocks are modified it results in a corruption of network majority

What can we do when we merge BlockChain with ECM ?

We have immutable strings in Java, we have immutable objects in programming. But to maintain immutability in Enterprise Content Management, Document Management and Digital Assets we go upto great lengths to have hashing, signatures, complex repository engines, MD5s and so on.

One thing that could help us is BlockChain. People have already started speaking of building custom ECM engines using open source products from NoSQL and Portal domain. If we add a BlockChain database to this mix, we get a serious contender for a new type of ECM repository – one that does not need complex repository logic or probably simplifies it.

Use cases:

  1. ECM – We can take a NoSQL database, Blockchain and a horizontal portal. Portal works for the workflow, presentation, rules, etc. NoSQL for the metadata and BlockChain for integrity of the repository assets like documents.
  2. Digital assets repository – All the signatures of the various repository assets in an enterprise could be stored in the BlockChain which can verify assets’ integrity just like what MD5 does

Its worth exploring. BlockChain can be so much more than just transactions’ integrity management.

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 !!

Railway safety

Some suggestions for railway safety:

  • Put threads of wire inside track while building along with insulated areas in track to hold the wire safely
  • Sensors at each joining fish plate attached to wire and WIFI / low energy Bluetooth or other devices
  • Extra ballast and heavy concrete for IED protection
  • Weld all fish plates, clamps and other things with shock absorbing joints for heat and train movement
  • At each track joint of fish plate put WIFI sensor which sends encrypted signal and tells if conductivity is right from wire in track to sense damage / sabotage
  • Red Blue shift based radio sets sensing distance with unique codes for each train which tell if trains on same track are coming towards each other mapped to WIFI sensors on track to avoid collision like TCAS of flights

Too many accidents – this could be a good start

How to build a security system “while at home”?

  • Take Google Science Project app
  • Take Arduino open source electronics kit
  • Take Rasberry Pi kit
  • Few Android phones

Your ingredients are ready

Install Google Science Project app on all Android phones. Take Arduino kit and connect it to few cameras. Take Android phones and use them as motion sensors via Science Project app. Connect Arduino cameras, Rasberry pi “sensors”, Android phone over secure wifi. Build your app to interact with all this across and connect to a speaker at full volume. There are more gizmos available on Rasberry pi and Arduino, connect, process as you want.

Welcome to your 21st century home security system with minimal knowledge of electronics.

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.

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