Saturday, January 28, 2017

Q&A on Enterprise Architecture and IT careers

Here are a couple of recent question from an online forum that I answered:  

What is enterprise system? What are the differences between digital platform and it?

Let us start with Enterprise system - Wikipedia
“Enterprise systems (ES) are large-scale application software packages that support business processes, information flows, reporting, and data analytics in complex organizations.”
The term Enterprise Systems generally refers to an application platform used across the enterprise. Examples would include systems serving the needs of ERP, Manufacturing and Supply chain, HR, Finance etc used across an organization or by multiple business unites
Wikipedia - Digital platform Integrated Digital Platforms is a generalized term for multimedia platforms that perform various business functions. An example of such a function is collecting and analyzing marketing trends and patterns
Back to your question: What are the differences between digital platform and ES? The differences are subtle, and would vary from one organization to the next. One can argue that all ES are also “digital platforms” However, most business users would think of ES as “internal corporate systems” while “digital platforms” could also be external facing.
ps: check out my Pulse post on the topic of Digital Strategy execution and the Executive update on Cutter (if you have access to it)

How many years a software engineer can survive in IT industry in India?

As for now I haven’t seen any retired software engineers in India. So, I was just thinking, like other jobs(Banking sector, Lecturers, teachers) can a Software Engineer survive in IT industry till his retirement age.

Years ago I worked with Stephen Butler, one of the smartest Software Engineers I have known. He was about 61 or 62 when I met him.
He was the kind of hands-on guy who thrived on challenges like de-compiling complex and obscure code. In my engagement, he was tasked with decompiling an old Forte 4GL application used to run a retailer’s payment engine. He was happy being a hands-on software engineer, happy to learn new languages and platforms while continuing to be updated on newer techniques.
Stephen was also a proud guy. A new new grandfather, proud as hell to be living in a nice single-family home in the Bay Area that he had paid off in three decades spent there.
I got a call from Stephen’s wife one day informing me that he had died. He was 64, and his wife said he died the way he would have wanted to - a sudden cardiac arrest while at his home-office debugging some code!
His LinkedIn profile continues to live in perpetuity.
Have I seen any 50 or 60 year old Software Engineers in India? No.
Does it mean a Software Engineer cannot survive in the same role till s/he decides to retire? One can probably survive if one wanted to, but most opt to follow the Dilbert Principle of being promoted to their level of incompetence.

Tuesday, January 24, 2017

Recent Q&A on Enterprise Architecture: Are you in favor of enterprise integration applications or for building stuff yourself?

A recent question from an online forum:

"Are you in favor of enterprise integration applications or for building stuff yourself such as by creating micro-services, batch programs, etc.?

This is a question for those people who have been responsible for some measure of time for the selection of an enterprise integration strategy for their employers or clients.
In integrating the many programs that a business enterprise owns, have you found Enterprise Integration Applications such as Windows Workflow Foundation (WWF), BizTalk, NServiceBus, etc. more useful? In that, have you had success with them and found that running them provides for a smooth integration experience?
Or have you discovered that building stuff by hand such as by creating micro-services and simple programs that run on a schedule is a more useful strategy that has given you a more smooth integration experience?
Also, what has been your personal preference? What are you personally inclined to? This may or may not tally with your actual experience.
For instance, I am a developer at heart and I love writing bespoke integration software because it gives me complete control and is not really as much of a maintenance nightmare as the enterprise software vendor would have you believe. I also think Enterprise Integration software creates more problems that it solves, needs a lot of investment in training and comes with a strings attached (consulting and support agreements) clause. And writing lightweight bespoke micro-services that communicate using JSON over HTTP is so much easier and more manageable. When something goes wrong, you know exactly where to look. Likewise, when something needs to change, you know exactly what little piece needs changing. If you've written your services nicely by layering your tiers and separating your concerns, and calling out your contracts into a sharable assembly, this approach is so much better. If you need security, add OAuth. If you need reliable transport, use a message queue.
But whatever my personal inclination be, and while I consider it an important factor in making a decision, I'd still weigh in the actual experience as just an important ingredient.
What has been your experience with either of the two approaches?

My response follows

I read through the comments posted by Sathyaish Chakravarthy who makes interesting points, taking a hands-on developer/engineer perspective.
I will answer this from an Enterprise Architect’s viewpoint, taking into consideration robust, salable integration requirements at large organizations.
So, what goes into selecting solutions (including integration solutions) ? Among the considerations include:
  • Alignment with Architecture principles - “Buy before Build” and “reuse existing solutions” are popular principles.
    • Building on the comment from Sathyaish - have you found Enterprise Integration Applications such as Windows Workflow Foundation (WWF), BizTalk, NServiceBus, etc. more useful?
    • Assuming the organization has licenses and support for the solution and it meets the integration requirement, the Application (like BizTalk) would be preferred
  • Supportability and maintainability - Never underestimate this, especially in large organizations where people move and transition all the time (or work is sourced to contractors and vendors).
    • A custom built solution, however great, isn’t going to be as maintainable over time. This is especially true once the original developer transitions out (or is promoted to a “Manager”)
    • A commercial product (or open source framework) if maintained and upgraded regularly is going to be more supportable.
This response assumes the Non Functional Requirements (NFRs) like performance, salability etc are similar in both cases.

Thursday, January 19, 2017

What is Digital Strategy Execution? And what it means to IS Executives

There is a considerable amount of hype over Digitization. Last year, CEOs, senior executives and government leaders took it up a notch by agreeing that “The Fourth Industrial Revolution” is being driven by new technologies, and innovative processes that are blurring the boundaries between people, the internet and the physical world.
The Fourth Industrial Revolution builds on the Third Industrial Revolution, also known as the Digital Revolution, which entailed the proliferation of computers and the automation of record keeping; but the new wave of transformation differs from its predecessors in a few key ways.
This “revolution” extends digitization with the convergence of the digital, physical and biological spheres. The continued adoption of social media tools including Facebook, Twitter and LinkedIn to enhance customer engagement also lends a sense of urgency for business leaders to react. They are also concerned about the disruptive potential of digital technologies when leveraged with Social, Mobile, Analytics and Cloud (SMAC) strategies.
The Future of the Digital Economy and related topics continues to receive attention from global leaders at the ongoing WEF-2017 in Davos, Switzerland. Some of the trends like Artificial Intelligence (AI), Internet of Things (IoT), virtual reality (VR), self-driving cars – may be disruptive to our current order, and might indeed usher seismic innovation and changes. However, some of the “digital innovations” are just aggregation of existing technologies and techniques that will nevertheless bring in efficiencies and better ways of working.

So, what does "Executing a Digital Strategy" entail?

Digital Transformations and programs, especially in large organizations seem to be springing up everywhere, some driven by IS leaders and many driven directly by business and functional leaders. Regardless of who is driving the transformation, CIOs and IS executives should seek opportunities to engage with their business stakeholders. During the past few years, I had an opportunity to review a number of such strategic initiatives. Engaging in such programs that are trying to execute a digital strategy requires one to eat the proverbial elephant, by breaking it down into bite size chunks.
The technology enablers for digitization incrementally build on existing design and development methodologies and EA techniques. I have reviewed this topic - “Executing Digital Strategies” - in a recently published executive update for the Cutter Consortium. The premise is rather straightforward: execution requires one to focus on distinct categories that a transformation program might fall into:

  • Lights-on digitization
  • Digital Excellence 
  • Customer-centric digitization
The architecture should also take into account the existing application platforms, infrastructure and processes. The roadmap for successful execution should focus on technology enablers including Non-Functional Requirements (NFR), Integration principles, tools and technologies, Data and analytics that will underpin successful digitization.
Bottomline: IS executives and technologists can begin planning their engagement with an empirical classification by categories of digitization. Such classification enables a more focused engagement with functional stakeholders and leaders, and may also aid in portfolio and resource planning.  

Wednesday, January 4, 2017

Q&A: How do I reconcile with the fact that being a Hindu, I ate beef?

I was raised in a strict Hindu family where we did not eat meat. I am in North America now and I ate Hamburger while going out with some friends. RiIght now, I feel quite uneasy and am ashamed of myself. How do I get to terms with this thing? Is eating beef while you are away from home normal for Indian Hindu students?

My answer to a recent query online

Thanks for asking. Like you, I too was raised in a Hindu family where we did not eat meat. Although I have lived and worked in a dozen countries, I continue to be a Vegetarian. I have spent nearly half-decade with a multinational Agri-business company. My Musing on Food, Protein and Vegetarianism

Others have answered this question and have refereed to Vedas, Hindu scriptures etc. Let us set aside religion and scriptures for a minute and focus on personal beliefs and mores, since this is the crux of your question “How do I reconcile with the fact that being a Hindu, I ate beef?”
A simple answer. No, you don’t try and reconcile with the fact.
Have I been in a situation like you? Perhaps, the closest I came to such a “conflict” was during a corporate retreat at a resort in small-town Germany.
(indicative image)
During lunch on the first day, after the first course, I politely informed the Maitre d' of my Vegetarian preference. The Maitre d' returned back after a few minutes - after I had enjoyed the Salad - and politely explained that the salad dressing had Pork extract.
She apologized, and promised that they would arrange for vegetarian alternatives for my dinner and meals during the following days. I thanked her and joked that it would have been better if she hadn’t mentioned the ingredients of the salad dressing to me.
Did I feel “quite uneasy and ashamed of myself.” (quoting you). No, I didn’t have time to think about it that day. But I did reflect on it later; and the fact I am blogging about it means it must be in my subconscious mind.
Back to your questions
  • Is eating beef while you are away from home normal for Indian Hindu students?”
    • No, it is not the norm though some students might choose to do so. A $1 burger at McDonalds or a beef-burrito at Taco-bell may feel inexpensive compared to a $6.99 buffet at an Indian restaurant.
  • How do I get to terms with this thing?
    • It’s simple, you don’t try and come to terms with it. Life is too short and there are bigger things to worry about!

Tuesday, January 3, 2017

Career Q&A with Mohan - Pigeonholed into a pure Performance Testing Position

Pigeonholed into a pure Performance Testing Position  

I have started my first full time job after college 3 months ago. I was employed as a "Test Engineer". I applied for a position with a focus and creating and implementing a Java based Testing Framework for the company, in order to make the testing process of their web application more effective. I already was active in this area during my internship, creating new functions for the existing Selenium-based framework of my former company. After two weeks, the dedicated "Performance Tester" of my company quit his job. It was decided that I should take his position, working on Load Tests for running projects using the jMeter tool, by creating requests and checking the results. I did not have any knowledge in this field before and had to learn most of the thins in the two weeks this colleague was still working before leaving. Now the company has one of the biggest projects of it's history and expects the same quality of load tests and reports as before. But there is nobody here anymore that has knowledge in this field, making it necessary for to learn by mistakes, which is very frustrating. I am also forced to work on load tests for multiple projects at the same time, which creates stress situations.
Is this a normal process for a new employee? Is Performance Testing a useful skill to learn?
Would be thankful for advice.

My Response:
As an Enterprise Architect for a global 2000 company, I have worked on most of the BDAT (Business, Data, Application and Technology) domains and have experience in the entire life-cycle of delivering large systems and processes.
Why did I start with this preamble? To highlight the significance of Non Functional Requirements (NFRs) and Performance Engineering in delivering solutions. Back to your questions
  • Is this a normal process for a new employee? when you join an IS department/group of any organization, your are signing up for change, and the opportunities that come along.
  • Is Performance Testing a useful skill to learn? Absolutely. Performance testing, and Performance Engineering are valuable skills to learn.
My2Cents: Spend a year or two in this role and explore the wider market with your skills and experience!

Moving to App Development from ERP development

I have a CS degree from back in the day ('96) and been working in the ERP side (C, reports, forms etc) and looking to move into something more technically challenging as I am super bored working in the ERP industry.
I started learning app development in the last few months (Obj,Swift,ios api). I am at this point working on my App portfolio. I can spend about 3 more months working on this.
I am wondering how many apps I should develop? (thinking 3? which showcase use of different api's etc)
Most jobs that are advertised in the job boards ask for a minimum of 2 years in app development and most recruiters filter resumes on this.
Any suggestions on how I should go about this transition?
thank you.

My Response:
It is interesting to see someone switch from ERP to other software development. Although there are tremendous opportunities in ERP, I am sure you have your reasons for making the switch. A couple of suggestions on positioning yourself and getting interviews:
  • Highlight your development skills (C, reports, forms etc) in the resume
  • Highlight domain skills (developed in ERP delivery)
  • Emphasize your project and life-cycle experiences
These along with your other skills and learnability should help you get your foot in the door.

Monday, January 2, 2017

Implementing SaaS Solutions: The power of community of practice

A couple of months ago, I posted a blog “Evaluating SaaS solutions? Watch for these 5 challenges.” In that I highlighted configurations and customizations as the first and most significant challenge. Most SaaS solutions support configurations - changes to UI templates, basic workflows, role based authorization and authentication etc.  This is a double-edged sword since some configurations may make the solution more usable, while adding to cost and complexity. Even seemingly small configurations done together might cascade into a considerable effort that must be managed and orchestrated.

Image credit:

A practical challenge with SaaS solutions is the skills and product knowledge required to enable configurations. Most organizations introducing a SaaS solution into their ecosystem wouldn’t have these skills. These technical and functional skills will need to be sourced, sometimes at a high cost. Just try searching for “workday consultant” or “salesforce project manager” on LinkedIn jobs section and see the number of hits. Technology consulting firms have sensed an opportunity, and developed entire practice areas with armies of consultants focused on specific SaaS solutions.
A recent blog by Jon Aniano from Salesforce “You're Not a Special Snowflake: 5 Reasons Why You Should Really Be Using Standard Objects” echoes this point.
your business is unique and you have some requirements and business processes that set you apart. All businesses do. This is why Salesforce has the absolute best platform for customization. This is why Salesforce lets you customize your data model by creating custom fields and custom objects. This is why Salesforce has Process Builder which lets you manage your business processes visually and easily. This is why Salesforce gives you App Builder, and Apex, and Lightning and Heroku… Anything you need to do, you can do it on Salesforce.
But sometimes you take it just a little too far.
I like the bluntness with which Jon pushes back at customizations; and the title of his article is direct. However, telling the business executive sponsoring a SaaS solution that “You're Not a Special Snowflake,” is not a way to score brownie points. Working with him and his functional teams to evaluate the the art of the possible is the key to stakeholder management. It is more about minimizing customizations - “You and the CRM are ‘Special’ Snowflakes that don’t need uniquely customized solutions”
Towards the end of his writeup, Jon emphasizes the community of practices that have evolved around SaaS solutions. He describes the concept of Salesforce’s Ohana “our family, our culture.”
 Salesforce has attracted an amazing community of smart, experienced, like-minded people all willing to help each other get the most value out of their use of Salesforce. When you use standard objects and standard functionality, you’ll be speaking the same language as this community. When you ask for help, they’ll immediately know what you’re talking about, and they’ll already have implemented a solution to your problem in the past. And, when you use standard objects and standard functionality, you’ll often come up with novel solutions that you can contribute it back to grow your own career and personal brand.
I like the way Jon describes the benefit of using standard objects and minimizing customizations in SFDC. The community of practice is perhaps the most understated tool available to technology teams. Consulting firms have long realized the power of such communities and have even formalized and incentivized “knowledge management” in many areas, not just for SaaS solutions. For instance, my former employer, Infosys, took a lot of pride in their award winning KM platform - wins The Most Admired Knowledge Enterprises (MAKE) ]
The opportunity to leverage external and internal community of practices should also appeal to functional stakeholders, and their teams. Who – business users included - wouldn’t want to have marketable skills on their resume?