Saturday, September 29, 2018

Cloud's budget will reach $ 1.3 trillion by 2020

More than $ 1.3 trillion in IT spending will be driven directly or indirectly by the transfer to the cloud in 2022, according to Gartner.
It seems this is an important transition for traditional infrastructure vendors, as more and more businesses are switching to Cloud. According to a new study by Gartner, 28 percent of enterprise IT budgets will move to Cloud by 2022, up from 10 percent from 2018,
The budget for cloud services will grow faster than traditional, non-cloud solutions. However, these traditional projects will still account for 72% of revenue for the enterprise IT market by 2022.
Prior to 2018, the shift to Cloud took place primarily for application software, particularly in customer management (CRM). According to a Gartner spokesman, "CRM is currently exploding when the budget for the cloud is higher than traditional software. This trend will continue and expand to include application software, including office suites, content services, and collaboration services, by the year 2022. Application software will keep the highest Cloud conversion rates. during this period ".
More than $ 1.3 trillion in IT spending will be driven directly or indirectly by Cloud in 2022. Providers who are able to capture and anticipate this growth will benefit from long-term success. the next decade.
Gartner warns that technology vendors use cloud technology as a measure of market opportunity.
Michael Warrilow, vice president of research for Gartner, said: "The change in how your IT budget goes to cloud-based alternatives is irreversible. The transfer process on the cloud will open the door to more agility and agility, one of the most exciting benefits of this technology. "
"As cloud technology becomes more and more popular, it will greatly influence enterprise IT decisions, especially in system infrastructure."

How and where start with Big Data

The explosion of data from the Internet and the need to exploit un-structured data in addition to the in-house data have set the stage for hard-to-find mathematical data storage, processing and management. So, Big Data was born.
Big Data is a term used to refer to a very large set of data and is so complex that traditional data processing tools and applications can not handle it. But Data you know is big enough to handle Big Data. And are you sure that you are using the smart data wisely, not "using a knife to slice bananas"?
Ask questions, ask questions around the problems, algorithms to be applied, career opportunities will be answered by experts through the event "STARTING STUDIES U BIGDATA FROM HERE AND HOW" Quickly register today!

IBM launches a tool to detect "lying" AI?

IBM has launched a software service that scans AI systems as they work to detect bias and provides explanations for decisions made by AI.
The new IBM Cloud-based reliability and transparency model works with models built from a variety of machine learning frameworks and AI-including IBM's own Watson technology, as well as Tensorflow, SparkML, AWS SageMaker. and AzureML.
SaaS (fully automated) helps explain decision making and whether AI is biased - so when decisions are made - it will be possible to identify possible outcomes. not fair.
It will also automatically suggest data to add to the model to minimize any deviations that have been detected.
The explanatory power of AI decisions includes identifying the factors that influence decision-making; confidence in the proposal; and the factors behind that confidence.
IBM also said that the software keeps track of the accuracy, performance and fairness of the AI ​​model, along with the pedigree of the AI ​​system - meaning that it can be easily retrieved and retrieved if needed. For service or to comply with regulations and requirements.
For an example of compliance, the EU's GDPR framework relies on automatic decision making and includes the right to be heard explaining in detail how algorithms operate in a number of fields. Incidentally - that means businesses may need to check their AI.
The IBM AI scanner tool provides an automated decision analysis through dashboards - so you do not have to have IT skills to read them.
IBM is also not the first company to discover business opportunities around AI bias. A few months ago Accenture released a tool to identify and fix AI to help them be more fair.
In addition to launching the AI ​​payment engine, IBM said its research division will launch a suite of open sourcing tools to detect and mitigate bias in AI - with the aim of encouraging process "global cooperation to solve this problem".
"IBM is currently leading the industry in establishing reliable and transparent guidelines for the development of new AI technology. We are bringing new solutions to AI businesses that face a lot of potential risks to any wrong decision. "- David Kenny, SVP of Cognitive Solutions at IBM said in a statement.

What is needed to become a Software Architect

What is Software Architect?

Before going into specific SA is what we see the definition of SA:
A software architect is a software expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms. The leading expert is referred to as the chief architect. (Source: Wikipedia: Software Architect)
Software Architect (SA) is a professor who is responsible for designing the framework for the system, how to divide and interact between components, write architecture overview papers, coding convention, and direction. Let developers develop detailed designs for each function. So if you work with 1 SA well, when adding new features, the complexity of the software will not increase much.
What is the role of Software Architect?

To the necessary skills of an SA, we must first understand what their job is. It includes the following:
  • technology decisions and development platforms
  • Generate architectural documents (coding standards, tools, review processes, ...)
  • Understand business requirements
  • System design based on requirements.
  • Follow dev to check / review code and system.

What are the essential skills of Software Architect?

1. Design

  • Basic knowledge of design patterns : Design pattern is one of the important things that SA must have to develop and maintain a system. With design patterns you can reuse to solve some of the problems encountered before.
  • Dive Into Patterns and Anti-Pattern : Once you know some basic patterns, you should deepen your understanding of the software design pattern. The author has introduced the book  Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions  .
  • Know the quality rating : That's why documentation and coding standards are outlined above to apply. Doing so will lead to a system that is easy to maintain, secure, reliable, ... (which everyone wants).
What is the theory?
  • Experience and understand the different technology stack : This is the most important action if you want to become a good SA. Try a new technology experience because each technology will have different design aspects. Nor does it necessarily have to know all the technology but be aware of the important things that your field.
  • Analyze and understand the pattern that applies : Take the example that is the Angular framework. When you use it you can learn a variety of patterns such as Observables, Dependency Injection, etc. Try to understand how they apply to the framework. And if you already understand, you can learn more about how the code works.

2. Decide

A SA must be able to make decisions and lead the project or team in the right direction
  • Know what is important / necessary : Do not waste time on things that are not important. Learn to appreciate what is important because no book teaches you that. Personally, I usually use two characteristics to evaluate that:
(1) Conceptional Integrity : If you decide to do something in a certain way, focus on doing it that way, although it may be better to do it in a different way. Often this leads to a simple concept, easy to understand and maintain.
(2) Uniformity : If you define and apply a naming convention, it is not just a matter of capital letters, but apply the same way anywhere.
  • Priority : Some decisions are made early. If it is not taken into account sooner or later, it will often be difficult to separate it later and be a maintenance nightmare or worse, the dev will have to stop working until the decision is taken. In some cases, making a provisional decision (probably not good) is better than doing nothing. But first consider the priority of the upcoming decisions. There are many ways to do this, I think you should look at the  Weighted Shortest Job First (WSJF) model, which is often used in the Agile development model.
  • Know your power : Do not make decisions about things that do not belong to you. This is important because it affects your job position if not taken into account. It's a good idea to clarify to everyone about your responsibilities and role. If you are involved in a project with more than 1 SA, you should consider proposing ideas or ideas instead of making a decision.
  • Consider multiple choices : Always list more than one option before making a decision. In most cases where I have participated, more than one option is feasible (really good).

3. Simplify

Remember the principles of Occam's Razor. Can explain this principle as follows: If you have too many assumptions about a problem to solve, to solve the problem you may think wrong or lead to other complex solutions. These assumptions should be minimalist (think simple) to be able to work out a good solution.
  • Shake the solution To solve the simplest solution, we will usually connect the solutions together and see the problem from different positions. Try to figure out how to deal with top-down or bottom-up. If you have a data flow or a process, first think in the direction from left to right and vice versa.
  • Take a step back : After long debates, often a complex solution will be the result. But they are not the end result. So stop and think is it really meaningful? then review the problem and refactor. The debate may be going on the next day, but at least we have time to think about a better and simpler solution.
  • Devide and conquer : Simplify the problem by dividing for the rule. Split the problem and solve each one. After validating, match them and have the most overview
  • Refactoring is not evil : Accepting problem solving is a bit complicated if there is no better solution at present. We can think about that later. Prior to refactoring, we should have: an automated tests to ensure that system functions work correctly and are agreed by the stackholders.

4. Code

As a SA you should at least know what your dev is doing, do it right, etc. If you do not know then it can lead to 2 situations:
  1. Your dev does not respect what you say
  2. You do not understand the difficulties or dev issues that need support
  • Have a side project : The purpose of the side project is to experience the new technology. Practice makes perfect. Reading the tutorial or the good and the bad aspects of a particular technology is just a matter of reading books.
  • Find the right things to try out : As the past has said above, you do not need to know everything (all technologies). Because that is quite time consuming and seems to be countless. One page I frequently visit is  Technology radar . They are divided into the categories of technologies, tools, platforms, languages, and frameworks into 4 categories:  Adopt,  Trial,  Assess and  HoldWith categories so divided it is easy to get the most overview and the reader easily assess the trend to find out.

5. Document

Architectural documentation is sometimes very important, for example, in the case of code guidelined. The original documentation will usually be required before the code starts and should be adjusted regularly, constantly. Some other documents are automatically generated by code such as: UML class diagrams, API doc, ...
  • Clean Code : Code can be considered the best document if it is written properly. A SA needs to review and distinguish good / bad code. That reference is the book Clean code
  • Generate documentation where possible : The system can change constantly (spec change is a common occurrence) and it is difficult to update doc continuously. For example, the API will often update or add new updates regularly, so updating the doc by the rice is hard. So some tools such as Swagger or RAML is one of the tools to help in this.

6. Communicate

From my observation, this is one of the least appreciated skills. If you are quite good at design but can not express your ideas, your thinking seems to have less effect or even fail.
  • Learn how to Communicate Your ideas : A SA you will not only participate in one meeting where you will be operating normally and moderate it. So learning to express your thoughts and ideas is very important
  • Give talks to large groups : Expressing ideas in a small team or as a group can help you cultivate this. If you feel this is a bit difficult then start by saying it to your best friend. This can only be done when you leave your comfort zone. Be patient, it takes time to improve.
  • Find the right level of communication : Every person shall have the attention and look for a different problem. So, you need to solve the problem of each individual. For example, a dev would usually be interested in a particular solution to a problem, while a manager would usually be interested in the most cost-effective solution.
  • There are always questions from people around you that you need to answer right away. Make regular slideshows of Q & A that you can show and explain to people.

7. Estimate and Evaluate

  • Know the basic project management principles : As an SA or team leader, you always have to estimate the time spent on workloads: how long it takes, how much work is needed, what skills are needed, and so on. answer the questions "management" on. Remember that time estimation is not just about implementations but also includes activities like tests and fix bugs.
  • Evaluate "unknown" architecture : You need to evaluate which architecture is appropriate for each context. This is not easy, so you can prepare it by creating a set of questions that are common to all architectures. Some ideas for these questions:
(1)  Design practices : Which architecture systems follow this pattern? Are they often used and used properly? Does the design follow a red line or have any development out of control? Is the structure clear and separate?
(2)  Development practices : How do you follow the Code guidelines? How to manage code versions? Deployment practices?

Conclusion

If you intend to become a Software Architect, your career path will usually look like this:  Junior Developer -> Developer -> Senior Developer -> Team Leader -> Software ArchitectTo be a good SA you need to cultivate a lot of things as listed above. Hopefully the article can help people to have a look at the SA location (not leisure, simply drawing the deer way as people usually think).

The 10 most sought after skills in 2020

In a world increasingly dominated by robots, artificial intelligence and virtual reality, you will need to firmly grasp the skills that employers are looking for.
Here are the top 10 skills that technology companies most "aspire" by 2020:

Flexible thinking

This involves creativity, logical reasoning, and problem identification. In other words, it involves flexible communication. Employers want to know you have the ability to think seriously, to listen deeply and to be able to communicate well.

Negotiation skills

This has a particularly high demand for such things as computing and mathematics, such as data analysis and software development. It will also be very important in art and design.

Teamwork spirit

This means actively seeking ways to help others. You support people in your team, superiors and everyone in your industry

Ability to evaluate and make decisions

In the Bigdata era there will be greater demand for those who can analyze and use it to make intelligent decisions. Good judgment also involves knowing how to make a good proposal for the manager.

Delicate in communication

Robots can do a lot of things, but they still can not read human emotions. Employers will appreciate people who are capable of capturing the emotions of others.

Co-operate

Again, this is related to social skills. It involves being able to collaborate, work in a group of individuals.

HRM

This includes being able to motivate people, develop the skills of the staff, and choose the best people for a job. This will be especially important for management positions in the communications and energy industry.

Creation

By 2015, creativity ranks 10th on the list. But by 2020 it is one of the top three skills employers will look for. Why? Because when technology is evolving at a rapid pace, employers want creators to be able to apply it to new products and services.

Critical thinking

As automation is becoming more and more popular, the demand for human resources can be used in logic and reasoning. This, in part, because machines must be used optimally. That is why the company always wants people who can use them thoroughly to benefit the company.

Problem solving 

Technology can make life easier, but it can also make things more complicated. For example, you can use your device to view the information you need. But without a human being analyzing those results, you will almost certainly not be able to get the insights you need.
The report finds that 36 percent of jobs in the industry will require the ability to solve the problem by 2020.