Analytical Point of View on Technology Trends

A few weeks ago (just before Oracle Open World 2013) I had the pleasure to interview with Caroline de Lacvivier. Interviewing with Caroline was a fantastic experience as her questions were spot on but most of all it felt like an open conversation in a topic I am really passionate about rather than a formal interview with some reporter. After the interview I took notes of her questions and decided that I should elaborate more on my answers by creating this blog post.

The original articles produced after the interview can be found in the following links:

Following further elaboration on my answers:

1.            What new service/innovation is HCL Tech particularly proud of? Why?
Technology is evolving at the fastest pace ever seen before. We are starting to see CIOs shifting towards the adoption of flexible platforms and frameworks that promote a lower TCO, reduce time to market, and offer innovative products. But most importantly that will allow them to embrace the new trends such as mobile, bid data and cloud to improve business and become more competitive. We believe that our Fusion Offerings and our Accelerators can deliver that.

Our end to end Oracle Fusion offerings combine with our Fusion Accelerators, and our Cloud Offerings can deliver just that. Our offerings look at the complete Oracle stack, from Fusions Apps, Fusion Middleware, Engineer Systems (Exa Systems) and Cloud deployments and options. Then based on customer needs we select the right components of the stack to assemble solutions, capable of supporting our client requirements but must importantly deliver the desired business outcome. We also ensure that these solutions are designed to support the adoption of new technologies such as big data, cloud and mobile in the short, mid or long term.

Last but not least, I am particularly proud of our Integration capability and offerings. We have a very mature and robust integration center of excellence. The average skill level is very high that allow us to come up with solutions offering that are very innovative and diverse (for example our smart config solution which will be demo at open world).

2.            How are Agile development methods being used in your work or projects?
We always introduce an element of agile into our projects. Even in our day to day work activities we try to adopt elements agile. For example, daily scrum standup meetings are a fantastic way of keep communication flowing, get a quick view of project status and understand impediments.

For the execution of projects, especially on Integration, we often adopt Scrum. Or shall I say a flavor of it. I say a flavor of it because we usually work in distributed and onshore/offshore models so having standups with teams that are geographically distributed is not really possible. Also physical whiteboards wouldn’t work in this model. Instead we have daily or by-daily calls that follow with a similar structure of the daily scrum meeting and instead of white boards with use cloud tools such as JIRA / Greenhopper that can be accessed and updated from any location.

Why is Agile a fit?
In reality Agile in its pure way is not always a fit. Agile is undoubtedly a perfect fit for product development. This for many reasons, such as focus on quicker results, better ability to change, focuses customer experience and also improved quality. Also for the execution of small or medium size projects where certain amount of unpredictability is acceptable, Agile is also a good fit.

However for larger, multi-million dollar programmes of work, where commercial negotiations are unavoidable it becomes more challenging to use agile. What I usually see instead is a combination of some of the agile practices (as earlier said) underpinned by the use of traditional methods such as Rational, two towers, model office or even Sachimi (flavor of waterfall). I don’t necessarily agree with this, however I do understand that when several millions of dollars are at stake having a clear understanding of the scope, effort of work, costs, and deadlines becomes a critical factor.

Nevertheless, in these large programmes of work, even though at a programme level the holistic delivery approach might not be agile, I have been able to introduce agile at the project level.

What are the challenges?
I think one of the main challenges when implementing agile is the cultural change required on the teams that will adopt it. When people are used to do things in a certain way, it’s not always ways easy to make them change. Teams need to be educated on what Agile is, its benefits and practices before actually expecting them to adopt it. Sometimes this step is skipped. This becomes even a greater challenge for very large organizations. Being Agile a disruptive innovation it requires a cultural and mind shift.

Also agile requires a team with discipline as member of an agile team are expected to be more independent and proactive. It’s about actively completing tickets and if you have finish an activity, it should move on and complete another activity whilst always keeping the whiteboard updated. This is also related to the previous point.

Benefits and results?
For me the main benefits are quicker outcomes, improved tolerance for change and better product quality. All of these leading to fastest time to market and improved customer satisfaction.

3.            What do you see as the big career or technology opportunities for developers and architects this year and in the next few years?
I would say Mobile apps, Cloud Integration and SOA, API development, BPM, Information Management (mainly MDM, Big Data and Analytics), and Embedded Java (for Device to Device) are or will be all major trends.

Mobile Apps for obvious reasons. Use of smarts phones is growing extremely fast. At present surveys suggests that mobile device users prefer to use of apps rather than a browser to access information.

API’s are critical to for applications either on the cloud or on premise to made key functionality and information available. SOA also plays in important role here as APIs can be exposed as services but also adopting SOA governance and principles around API management ensures that both consumers and providers are getting the best out of these APIs.

Cloud Integration is a big one. Integration but must particular SOA is key enabler for cloud adoption. Going cloud doesn’t mean that the data will be automatically migrated to the Software as a Service system or it will be automatically integrated with other cloud or on-premise systems. To prevent ending in “accidental cloud integration” it is strongly recommended to define a cloud integration strategy and define how the use of SOA architects and other integration approaches can enable and accelerate cloud adoption.

BPM because companies are looking for creative ways to optimize and automate their business processes.  Robust BPM tools are required as it is proven that maintaining vast amount of process models in decks, or Visio diagrams is impractical and at the end it only creates confusion and misalignment. Robust tools BPM tools allow to centrally create, maintain, consolidate and promote processes. Tools like Nimbus are quite good at this. Other BPM tools like Oracle BPM Suite are excellent for actual execution of BPM processes, like for example processes that involved human workflow.

Introducing Data Governance, data quality processes and Master Data Management like for example Customer Data Hubs and Products Hubs, help organizations gain a much better understanding of their customers and products to mention a few. Having better understanding of the customer allows gaining competitive advantage as products and offerings can be tailored to what the customer really needs.

For the next few years, in addition to the already mentioned, I would add Big Data and Security.  Data is being produced at larger and faster rates than ever before. Having Information Strategies that support the introduction of platforms that allows to the consumption and exploitation of large amounts of structured and unstructured data coming from different sources and then being able to analyze this data and use it to improve product and services can put companies in a unique position.

Another point is about data migration. Whilst more and more companies move to the cloud, data migration will be a critical activity. So I also see a growth in this sub-set of information management.

Security, on the other hand, is like a silent monster that in my opinion hasn’t yet awoken. I don’t think companies yet realized the importance of security and the investments that are needed in order to secure the information against external and most important internal threads. Cyber-crime is growing as fast or fasters than the mentioned trends. Very soon CIOs will realize how vulnerable their information assets can be if the right level of security across the entire stack is adopted. I think this will happen soon. You can already see in the newspapers an increased amount of reports around cyber-crime.

Last but not least, I foresee embedded Java development to gain a lot more popularity especially as the “internet of things” gains more and more popularity. I think the growth we can expect in data derived from Device to Device (or Machine to Machine) integration will be huge in the coming years.

4.            Where do you see as the less or declining career opportunities for developers and architects this year and in the next few years?
Platforms that don’t naturally support cloud deployments or provide a development framework for supporting multi-channel will become less popular by default. I think for example web development purely focused on PC browsers is naturally becoming less popular and there are no many opportunities there. However if the same web developer upskills a bit and transitions in to mobile or enterprise app development certainly more career opportunities will arise.

In general I think technologies that are too tight or thought only to work in the PC era are becoming less popular.

In the Oracle space I would say that any product that is now a “dog” (using Boston Matrix terminology). Products that are being actively superseded by new offerings such as Fusion CRM, Fusion HCM and others.

In the Oracle space we still see opportunities in the traditional Oracle Apps and its platforms. However in the years to come there we expect a shift from these traditional platforms towards Fusion Middleware related solutions like Fusion Apps and other new technologies and platforms such as Apache Hadoop / Cloudera. Also any technology that enables trends such as Cloud, Mobile, Social, Big Data and the “internet of things” (Device to Device) I expect to become very popular.

5.            How much of your organization’s development is done in Java? What other languages are used?
We are a 90.000 people organization with revenue of 6.3 billion. We do a lot of development in many Languages and for many platforms. Java of course is a key one but I couldn’t possibly tell how much of our development is done in especially in Java. Java is now by default embedded in many of the systems and we implement. Sometimes we don’t even have to write the Java code even when the platform is a Java platform. Instead we use GUIS and IDEs that abstract code writing. Other example is for example use of scripting languages based in Java such as GROOVY on grails (or simply grails)  and frameworks on top of it such as GRAILS. They ultimately run in a java platform but we write Groovy scripts. We of course write hard-core java code using frameworks such as Oracle ADF, ADF mobile or open source like JSF, Spring or even Struts or Jersey for REST web services.

We also support many other platforms such as Microsoft .NET and C#, ABAP for SAP, and even other popular open sources languages such as PHP and Ruby-on-Rails.

6.            What is/are the best development tool(s) you've started using or continued to use this year? Why?
Being in the Oracle business, we use JDeveloper and SQL Developer a lot. We used it in the past and will continue using especially as it keeps being extended with more add-ons and tools to support new solutions and languages. For SOA in addition to JDeveloper, we also use Eclipse, SOAPUI for testing web services, JMeter for performance test,  Jenkins for continuous integration. We also use CCI (Code Compliance Inspector)  to improve our code quality during the lifecycle and also Oracle Enterprise Repository (OER) to provide visibility over the assets available for reuse.

We have now built a new offering called smart config using Poppet Labs to automate provisioning and automatically deploy and build.

We also use Jira and Greenhopper to manage our agile projects. These tools are very useful when adopting agile when teams are located in several different locations.

7.            On which cloud platform are you developing? What factors played into the selection? What were the results, pro and con? What would you do differently?
We are working actively in the delivery of a full red-stack cloud platform. Our vision is to offer simple pricing models such as bronze, silver and gold.

Also as we implement very large scale Oracle based solutions, we are also using Oracle On-Demand cloud platform. With Oracle On-Demand environments it is possible provisioning Oracle software very quickly. This is a key benefit as it mitigates risks and accelerates the delivery of the actual project as we can focus more on the solution rather than infrastructure dependencies. Having Oracle itself managed their own software is also beneficial as they can use their own best practices and recommended tools to monitor, troubleshoot, config manage, provision, troubleshoot and  patch their own software.