Why is Artificial Intelligence important?

Image
The AI learning adventure explores intelligence and its connection to engineering and technology.  Using ideas about human intelligence and intelligence more broadly, engineers can create “artificial intelligence,”; that is, impart “human” intelligence into machines or technology (Classical AI) or design technology that can itself “create” intelligence (future AI).  In fact, understanding how the brain works—”reverse-engineering the brain”—and understanding how engineers design intelligent machines—machines that replicate human intelligence—is one of the “Grand Challenges of Engineering” as set forth by The National Academy of Engineering (NAE). The implications and benefits of understanding the brain are many.  In addition to advances in the treatment of brain injuries and diseases and advancements in communications technology and computer simulations, understanding the brain will allow the design of intelligent machines with even more signicant societal impacts.  Already, mac

How to identify the right DevOps tools | NIIT digiNxt


We have broken down various DevOps tools in various phases:
  • Plan
  • Build
  • Continuous integration
  • Deploy
  • Operate
  • Continuous feedback

1. Plan

Taking a page out of the agile handbook, we recommend tools that allow your development team to plan in iterations. In this way you can optimize your product from that feedback. Look for tools that provide sprint planning features.
Another great practice is continuously gathering user feedback, organizing it into actionable inputs, and prioritizing those actions for your development teams. Look for tools that encourage “asynchronous brainstorming” (if you will). It’s important that everyone can share and comment on anything: ideas, strategies, goals, requirements, roadmaps and documentation.
And don’t forget about integrations. Wherever you decide to scope your feature or project should be converted into user stories in your development backlog.

Some tools: Confluence, Hipchat, Jira Software

2. Build

Developers use tools like Docker to provision individual development environments. Coding against virtual, disposable replicas of production helps you get more work done.
Something weird about the class path? Maven installation suddenly borked? Infrastructure as code means re-provisioning is faster than repairing – and more reliable, too. It also means you can spin up variations of your development environment.
When the whole team works from identically-provisioned environments, “Works on my machine!” stops being funny because it’s true (now it’s just funny).

Some tools: Docker

Infrastructure as code

Developers create modular applications because they’re more reliable and maintainable. So why not extend that thinking to IT infrastructure?
This can be difficult to apply to systems because they are always changing. So we get around that by using code for provisioning. Provisioning code can be applied to bare metal, and re-applied to bring a server back to baseline.
It can be stored in version control. It can be tested. Incorporated into CI (continuous integration). Peer-reviewed. You name it.
When institutional knowledge is, well, codified in code, the need for run books and internal documentation fades. What emerges are repeatable processes, and reliable systems. Less talk, more rock.

Some tools: Bamboo, Bitbucket, Chef, Docker, Puppet

Collaborative coding
Rather than waiting on change approval boards before deploying to production, you can improve code quality and throughput with peer reviews done via pull requests.
What are pull requests, you ask? Pull requests tell your team about changes you’ve pushed to a development branch in your repository. Your team can then review the proposed changes and discuss modifications before integrating them into the main code line.

3. Continuous Integration

Continuous integration is the practice of checking in code to a shared repository several times a day, and testing it each time. That way, you detect problems early, fix them when they’re easiest to fix, and get shiny new features to your users as early as possible.
Because branch-and-merge workflows are all the rage (and deservedly so!), tools that take the pain out of running CI in a multi-branch environment are the key to maintaining testing rigor without sacrificing dev speed.
Look for tools that automatically apply your tests to development branches, and give you the option to push to master when branch builds are successful. Along with that, you can get real-time alerts in your team’s chat tool with a simple integration.

Some tools: Bamboo, Hipchat

4. Deploy

One of the most stressful parts of shipping software is getting all the change, test, and deployment information for an upcoming release into one place. The last thing anyone needs before a release is a long meeting to report on status. This is where release dashboards come in.
Look for tools with a single dashboard integrated with your code repository and deployment tools. Find something that gives you full visibility on branches, builds, pull requests, and deployment warnings in one place.

Some tools: Jira Software

5. Operate

There are two types of monitoring that should be automated: server monitoring and application performance monitoring.
Manually “topping” a box or hitting your API with a test is fine for spot-checking. But to understand trends and the overall health of your application (and environments), you need software that is listening and recording data 24/7.
And you guessed it: there’s an app for that. Lots of them, actually. New Relic, Splunk and Nagios are among the most popular, and handle both types of monitoring. Look for tools that integrate with your group chat client so alerts go straight to your team’s room, or a dedicated room for incidents.

Some tools: BigPanda, Hipchat, HostedGraphite, Nagios, New Relic, Pager Duty, Pingdom, Splunk

6. Continuous Feedback

Customers are already telling you whether you’ve built the right thing – you just have to listen. This includes NPS data, churn surveys, bug reports, support tickets, and even tweets. In a DevOps culture, everyone on the product team has access to user comments because they help guide everything from release planning to exploratory testing sessions.
Look for applications that integrate your chat tool with your favorite survey platform for NPS-style feedback. Twitter and/or Facebook can also be integrated with chat for real-time feedback. For deeper looks at the feedback coming in from social media, it’s worth investing in a social media management platform that can pull reports using historical data.
Analyzing and incorporating feedback may feel like it slows the pace of development in the short term, but it’s more efficient in the long run than releasing new features that nobody wants.

Some tools: GetFeedback, Hipchat, Jira Service Desk, Pendo, SurveyMonkey, Hootsuite.

Comments

Popular posts from this blog

Waterfall vs Agile and Scrum Methodology

Innovate your business through Test and Learning Approach

Top 10 companies working on DevOps | NIIT digiNxt