Saturday, September 21, 2013

4 Questions for Every CTO/CIO - 1 Answer


posted by Mike Mazzolini

In today's economic climate it is imperative your organization's IT resources operate at the most efficient levels but fit nicely into smaller and smaller budgets. If you are the man or woman in charge of technology direction, at any size organization, that may be your job description.

Building the most proficient technology operation for your company takes significant effort. 


By asking yourself the following 4 questions and applying 1 solution - Workflow Automation - you may get a leg up on the competition.



1) Is There Enough Time and Money to Properly Document Processes?

Documentation is necessary - right? 

Every organization or company needs to insure that it has proper documentation that describes the processes that make it go. But, really, who has time to spend on writing up the procedure you just designed and implemented. You could get someone else to do it but that really never works because the other person is as busy as you.

But documentation is necessary - right?

There are so many reasons to document process:

  • It helps communicate ideas to others
  • Can prevent re-inventing the wheel
  • Preserves knowledge that can be passed on
  • Prevents mistakes
  • and many more good reasons
Yes! Documentation is good and important to every organization. What can be done to insure proper documentation for process is in place?

Answer: Workflow Automation

Workflows are self-documenting. As you build the process you are generating the documentation. Anyone can easily see how they work. Your support staff won't have to find "the person" who wrote it.


2) How Can I Manage the Time and Cost to Model and Build Support Process?

Every well run organization usually has the best built support processes. There is a cost involved in putting these proper processes in place. The problem is that this is not a one time deterministic cost. Businesses change and grow and this requires that your support processes move and adjust accordingly. So, how does an organization manage the ongoing time and cost? 

Answer: Workflow Automation 

Workflows allow users to program or generate automation processes at a higher abstraction level to more easily deal with the growing complexity of technology. Unlike scripting languages that are hard to read and understand, workflows are simple to maintain, which reduces ongoing operational cost. 

3) Are Your Support Processes, Platform Agnostic?

I can hear you now, "I don't need to worry about being platform agnostic, my business runs on a single consistent platform". 

If there is one thing I've learned over the course of my career in technology, it's that technology can change fast and what might be the platform of choice today isn't the choice tomorrow. That leads to supporting multiple platforms and solutions, which leads to more support process. So, how can an organization insure that it has support processes that are platform independent?

Answer: Workflow Automation

A workflow automation solution will abstract the platform layer. This allows IT personnel to build a single process that operates cross-platform, reducing copy/paste errors and eliminating code drift.

4) Can You Scale the Business without Overburdening Your IT Staff?

This maybe the most import question of them all. It's a question that every successful business, ultimately, has to answer.

Certainly, there are many variables to consider as you try to scale a business. However, if additional revenue requires relatively smaller additions to operating and technology costs, then congratulations…your business scales! So, how can you increase the likelihood that your technology costs stay under control?

Answer: You guessed it - Workflow Automation

Applying a good workflow automation solution can help control your operating costs by promoting the use of best practices, insuring documentation, reducing support maintenance, ensuring seamless operation across platforms and allowing you to scale operations.


Monday, September 2, 2013

3 IT Challenges Small and Medium Business Face

posted by GUEST POST

If you have a small or medium-sized business, having a good IT automation strategy can make a huge impact.

Over the years, We’ve worked with a lot of smaller organizations.  Their challenges seem to fall in these categories:

1. Scalability.  How does your staffing change as the number of computational assets increase?  If you’re like most companies, you want to grow but not increase head count. 

2. Reliability.  Is your IT staff spending too much time fighting fires?  Are the fires getting in the way of forward-moving initiatives?  Are errors and mistakes costing you downtime that exposes you to lost business?  Does it risk your reputation?

3. Compliance.  Good or bad, the powers in Washington will create more regulations.  Whether you process credit cards, handle patient records, deal with people’s financial data, etc.  You probably need to be compliant with some kind of acronym like SOX, HIPPA, etc.  In this economy, with all that needs done, how do you have time to follow it all?

Automation is the answer.  By designing good IT process and then turning that into workflows executed by computers rather than people, you address each of these problems head-on.

1. Scalability.  As you transition your staff from “doers” to “designers”, you allow your organization to grow without growing your workforce.  It’s very much like transitioning from a team of workers who attach bumpers as cars come down an assembly line to a team of workers who program the robot that assembles the bumpers.  In the later case, if you want to make twice as many cars, you need twice as many robots, not twice as many people.  The same is true with IT workflow.  If you have to do a task more than once, create a workflow. 

2. Reliability.  We often joke that the automation solution is the only employee who works 24/7, never makes a mistake and never forgets to do something because they get interrupted by a phone call.  But it absolutely true.  Once your IT process becomes a machine-executed workflow, the number of errors and mistakes will drop significantly.  There will be fewer fires to fight and the automation solution will allow lesser skilled staff to handle more of them – freeing your best people to remain focused on new initiatives.

3. Compliance.  A good automation tool should be designed to encompass the requirements of the various “acronyms” and shepherd you down a path that helps you build and enforce best practices.  Security audits are cheap and easy when you know your tools simply won’t allow anything to occur outside your security policies and provides the audit trails to prove it. 

We're always interested in talking to people about their challenges.  Please don't hesitate to comment and send us questions.


XonaSoftware Support team is made up of a handful of individuals that spend their days working with organizations to solve their most significant IT challenges through the use of automation.

Monday, August 26, 2013

The #1 Tip to Improve IT Process for Small and Medium Business

posted by Mike Mazzolini


The amount of technology that small and medium business implement these days is creating a significant amount of IT process. This in turn can put great demand on the organization to administer and manage these growing and changing processes with limited IT resources. Fortunately, by following this one simple tip, SMB can significantly improve their IT processes and more importantly the business.

Avoid Duplication

Avoiding duplication is principle that resonates with many programmers - especially those that have worked on projects over a long time. Programmers understand the many ways, in which, duplication can arise and more importantly how it can create more work and additional risk to any environment.

#1 Tip: Use the DRY Principle

Ok, so now you know to avoid duplication, but how? Use the "DRY principle? What the heck is that you ask?" It stands for "Don't Repeat Yourself" as described by Andrew Hunt, David Thomas. The Programmatic Programmer (Addison-Wesley, 2003), p. 27.
What's important to understand for small and medium organizations is that this principle should not only apply to  programming but rather to all IT processes. So, make sure that as you implement business and support processes that it is done once and becomes a piece of knowledge that accurately represents a solution. This way it can be referenced and reused as your system changes and grows.
Applying this simple principle will go a long way in helping you to avoid duplication and simplify the ongoing maintenance of your systems as the business and organization change and grow.

Saturday, August 24, 2013

3 IT Process Automation Innovations for SMB


Henry Ford

Henry Ford did not invent the automobile. He figured out how to mass produce them by adapting the assembly line, which was actually invented by Eli Whitney to manufacture muskets. Prior to Whitney, muskets were made one at a time by a craftsman’s hand. Whitney invented the assembly line and built muskets with standardized and interchangeable parts. His muskets were produced faster, by less skilled labor, were less expensive, more reliable and easier to repair.
Fast forward almost a 100 years and organizations find themselves faced with a similar set of challenges. IT process has become complex, arduous, time consuming and error prone. But “What if?”, like Whitney and like Ford, new techniques can be applied to simplify IT process, make it more efficient and do it for less money.

1. Use Workflows - Avoid Jobs

In traditional batch lingo, a "job" is a unit of work that is triggered to run at some time or by some event. Then, dependencies need to be created between jobs to form streams-- allowing the success or failure of one or more jobs to start the next job in the chain.

Simple Yet Flexible

A workflow functions at a higher abstraction level than a job. Instead of building many jobs and loosely stringing them together, one creates a workflow that consists of one or more specific atomic tasks wired together with intelligent edges. This greatly simplifies engineering an organizations automated support and business processes. And overtime as the organizations processes change the workflow can change with it. A task is analogous to a batch job, but unlike a batch job, no task ever stands alone. It is always part of a workflow and it is the workflow that is "scheduled" or triggered by any number of different events or another workflow that provides a flexible automation solution that is simple to manage.

Self-documenting Process

Rather than decomposing "what you're trying to do" (your process) down into a set of jobs, Workflows lets you model your entire process in whole, visually and in a very self-documenting way.

2. Replace Scripts

Batch tools typically run scripts or batch files that do all the real work. A workflow allows you to break scripts or batch files down into smaller units that perform much more specific, atomic functions. These scripts become tasks within a workflow.
This does three things.
  1. It makes what scripts you do have to write small, simple and very straightforward.
  2. Next, it makes the scripts reusable. Because they only perform one specific operation, they can be used in other workflows that require that operation.
  3. Finally, it lets the control flow (when and how the script is called) be managed by the workflow where there is less complexity. This is important, and here is why...
5-10 lines
(<1 hour)
150 lines
(+2 hours)
250 lines
(+3 hours)
350 lines
(+4 hours)
More lines
(+more hours)
More lines
(+more hours)
Let us assume for a moment that you need a very simple script to move a file to a particular computer and then run a command to load that file into a database. It's a trivial script -- maybe 5 or 10 lines of code.
Now, you want to run the script on 20 machines and you need e-mail about each failure (150 lines of code).
Then it needs to fetch the list of machines from a database (250 lines).
Now you have 50 machines and it's going too slowly. You need it to act on each computer 10 at a time in parallel and still get the failure e-mail (350 lines).
Now because of some new regulation, the file transfer to some of the computers has to use a different username.
Then, one of the core routers went down in the middle of the copy and the script hung for an hour causing all kinds of problems. Because the script hung, no e-mail was sent.
Things often start simple and end up being overly complex. Consider the number of developer hours accumulated in just this one simple example. Incorporate a workflow tools and rid yourself of scripts.

3. Separate Behavior from Configuration

Behavior -- the steps taken to perform an action. Things like environments, (Dev, prod, Q/A, UAT, DR) are configuration -- what to act on.
Use toolsets that provide the ability to build support process behaviors and then inject your configuration, be it simple variables, a complex configuration object or a database. 
The ability to easily integrate sophisticated data models and make those data models available to automated support process is key. Very often companies already have a CMDB that holds configuration data about their environment. How much easier would it be to setup automated support processes that can truly say things like “... on the production web servers” in your jobs?

True Separation

True separation of configuration from behavior in your automated processes means the same workflow that starts your system in your development environment is the same as the one that starts it in Q/A, Chicago, London and Sydney, etc.
Because of this separation, fewer workflows need to be created and maintained and testing them in dev first is promoted. Without it, as with other solutions, changing one thing can lead to changes in dozens of places leading to "cut and paste" errors or just outright omissions and ultimately process failure.



Tuesday, October 2, 2012

Stop Writing Scripts

posted by Mike Mazzolini

Stop Writing Scripts
Please, I beg you, “Stop!” Yes, stop writing scripts and instead build workflows.
Programmers, Sys-Admins, System Support, I’m talking to you. 
There was a time when writing scripts to help support IT infrastructures and changing business processes was the best option. 
That time is gone. Todays computing systems are rapidly growing in complexity and the need for easier integration and better automation to manage these systems is becoming paramount.
“So where do we go from scripts”?, you ask. “That is the right question”, making reference back to the movie “iRobot” discussed in my previous blog entry “Three Laws of IT Automation”. 
In the following text, I will try and answer that question explaining why building workflows instead of scripts may be the answer.

What is a Workflow?

In the IT world, the term “workflow” is very overused. So let’s begin by providing some context on the subject. 
A workflow is generally described as, “A sequence of steps by which a piece of work passes from initiated to completion”.
In IT process automation, a workflow engine or management system is required in order to carry out the workflow. In this text, we will refer to workflow and workflow engine as one in the same. 

Script Hell

Why do scripts fail?

If you are an IT professional, you most certainly have written a script or two in your time. Scripts are written to automate tasks with the general objective to be more productive and reduce errors. In the early stages of an organization or while its environment is small, writing a few scripts seems to add benefit and meet its objectives. However, over time the environment changes, grows and becomes more complex. This results in more tasks, which in turn requires the need to write more scripts. Soon, the ability to manage these scripts themselves becomes overwhelming - welcome to script hell.
Let’s examine more precisely the challenges IT staffs face as they enter the script hell zone.

Little Security

In general, scripts are run as the user executing the script. However, there are times when it is necessary to run the script with elevated privileges which is not permissible without the use of third party program. Worse yet, logins and passwords are embedded in clear text in a script which compromises security.

Lack of Reuse

Many scripting languages, e.g., bash, batch, are not very conducive to reusability. IT personnel find themselves recreating the same scripts over and over for different projects. This leads to both copy/paste errors and code drift. 

Not Cross-platform

In cross-platform environment, e.g., those that contain Unix|Linux and Windows, script writers are forced to maintain 2 or more versions of the same script that is implemented for a particular platform. This leads to more maintenance, inconsistencies and errors.

Hard to Maintain

Scripting languages can be very hard to read and understand making ongoing support and maintenance of support scripts problematic as the organization changes. For example, the original author of a script may change roles or worse leave the organization. The responsibility shifts to another individual that needs to decipher how this script functions. This can take significant effort and lead to errors.

Workflows, A Better Alternative

Why is a Workflow better?

Being in the process automation business and a proponent of workflows, often, I am presented the question, “Why is a workflow better than a script”? I love this question because it gets to the heart of serious IT automation.
Workflows allow users to program or generate automation processes at a higher abstraction level to more easily deal with the growing complexity of technology. Unlike a script (At least one without a significant amount of development) workflows can perform any number of tasks in an asynchronous fashion. Workflows can separate behavior and data allowing for components to be easily reused. In simple terms, a workflow overcomes all the short-comings of scripts as described above.

 Security with Flexibility

Workflows leverage the environments underlying security allowing the ability to perform all necessary steps as appropriate for the given roles. If roles don’t satisfy the necessary security it is possible for the workflow to run with elevated privileges if it gets approval from another system or user with appropriate roles.

Reusability

Workflows can be built and reused by other workflows. For example, an organization may want to define a consistent escalation procedure for process failures. A workflow can be built that implements this escalation procedure and called by any number of other workflows as needed.

Platform Abstraction

Workflows will abstract the platform layer. This allows IT personnel to build a single process that operates cross-platform and reducing copy/paste errors and eliminating code drift.

Self Documenting

Workflows can be much easier to understand than a script. They can be graphically modeled and provide an almost self-documenting ability. This makes workflows much easier to maintain long-term as the environment changes.

Conclusion

Todays technology is moving, changing and growing in complexity at an incredible rate. The IT community needs to keep pace or be crushed by the same systems it hoped would provide greater productivity. So, I’ll end where I started and say again, “Stop!”. Stop writing scripts and instead build workflows.