Showing posts with label best practices. Show all posts
Showing posts with label best practices. Show all posts

Wednesday, October 21, 2020

Think Creatively How to Incorporate AI into You Strategy

Over at the Financial Times, a panel discussed the realities of AI — what it can and cannot do, and what it may mean for the future. AI was defined as “any machine that does things a brain can do.” Intelligent machines under that definition still have many limitations; we are a long way from the kill-bot cyborgs from the Terminator.

Machine intelligence is not likely to replace humans in the near future -- but it will continue to evolve as a valuable tool. Because of developments in neural technology and data collection, as well as increased computing power, we can use a.i. to augment many human activities. And streamline repetitive manufacturing processes. Such machine intelligence will continue to increase capability to perform routine tasks involving language and pattern recognition, as well as assist in medical diagnoses and treatment. Used properly, intelligent machines can improve outcomes for products and services.

"...professional services, law firms have applied language recognition to assess contracts, streamline redaction and sift materials for review in litigation cases, as well as to analyse judgments. The London firm Clifford Chance notes, however, that the facilitation of processes does not yet “transform the legal approach”.

Prof Susskind says: “I am in no doubt that much of the work of today’s lawyers will be taken on by tomorrow’s machines.” This could have major implications for how lawyers are trained and recruited.

It should be obvious that organizations should be thinking creatively about how to incorporate a.i. into their strategies.



Read more at the FT...

Thursday, July 2, 2020

Leverage Serverless for a Better Tomorrow

Over at this podcast, we hear Johnny Boursiquot, Site Reliability Engineer at Heroku tell how he has found Go to be a useful language for building Function-as-a-Service (FaaS) style applications -- an extension of microservices. In an interview, he expounds on the capability to build Go applications into a static binary -- and reduce the need for dependency management. With rapid application startup, another benefit is runtime speed and scaling.

Focusing on a development toolchain focused on the cloud means programmers benefit from flexibility. For example, many cloud providers provide local runtimes such as AWS SAM Local, and service simulators. Testing in production is facilitated by the ability to do on-channel launches and test deployments with a "canary in a coal mine" approach.

One can develop “serverless” applications while not avoiding the need for operational expertise on a DevOps team. Designing systems appropriately and getting the most out of the runtime (with minimal cost) requires knowledge of the underlying infrastructure components.

An emerging role is that of the Site Reliability Engineering (SRE), often an expert who can adapt well-established patterns and practices into their activities. They act as “go-betweens,” working closely with product teams to share knowledge around operational best practices.

One under appreciated skill is the ability to teach or mentor, regardless of the job. Knowledge transfer to coders or setting as SOPs important operational principles is extremely valuable.

Listen to the podcast here...

Monday, June 1, 2020

Think Six-Sigma Code is Not Possible? You just need to think like NASA

To get high quality code in your application, consider adopting NASA’s 10 rules for writing mission-critical source code:

  1. Restrict all code to very simple control flow constructs – do not use goto statements, setjmp or longjmp constructs, and direct or indirect recursion.
  2. All loops must have a fixed upper-bound. It must be trivially possible for a checking tool to prove statically that a preset upper-bound on the number of iterations of a loop cannot be exceeded. If the loop-bound cannot be proven statically, the rule is considered violated.
  3. Do not use dynamic memory allocation after initialization.
  4. No function should be longer than what can be printed on a single sheet of paper in a standard reference format with one line per statement and one line per declaration. Typically, this means no more than about 60 lines of code per function.
  5. The assertion density of the code should average to a minimum of two assertions per function. Assertions are used to check for anomalous conditions that should never happen in real-life executions. Assertions must always be side-effect free and should be defined as Boolean tests. When an assertion fails, an explicit recovery action must be taken, e.g., by returning an error condition to the caller of the function that executes the failing assertion. Any assertion for which a static checking tool can prove that it can never fail or never hold violates this rule (I.e., it is not possible to satisfy the rule by adding unhelpful “assert(true)” statements).
  6. Data objects must be declared at the smallest possible level of scope.
  7. The return value of non-void functions must be checked by each calling function, and the validity of parameters must be checked inside each function.
  8. The use of the preprocessor must be limited to the inclusion of header files and simple macro definitions. Token pasting, variable argument lists (ellipses), and recursive macro calls are not allowed. All macros must expand into complete syntactic units. The use of conditional compilation directives is often also dubious, but cannot always be avoided. This means that there should rarely be justification for more than one or two conditional compilation directives even in large software development efforts, beyond the standard boilerplate that avoids multiple inclusion of the same header file. Each such use should be flagged by a tool-based checker and justified in the code.
  9. The use of pointers should be restricted. Specifically, no more than one level of dereferencing is allowed. Pointer dereference operations may not be hidden in macro definitions or inside typedef declarations. Function pointers are not permitted.
  10. All code must be compiled, from the first day of development, with all compiler warnings enabled at the compiler’s most pedantic setting. All code must compile with these setting without any warnings. All code must be checked daily with at least one, but preferably more than one, state-of-the-art static source code analyzer and should pass the analyses with zero warnings.

According to NASA, the rules act like the seatbelt in your car: initially they are perhaps a little uncomfortable, but after a while their use becomes second-nature and not using them becomes unimaginable.

Read more here...

Friday, November 23, 2018

Starting a Small Business - My Short List of "To Do's"

Tom’s General Entrepreneur / Start Up Advice -- because I seem to say the same thing, over and over, here’s a quick summary:

I’ve always stuck with C-corp as my structure — in Maryland, you can do a non-stock version of a corporation for a nominal fee. You specify initial ownership in the Articles of Incorporation. When the time comes, you can amend your articles and issue shares as you add investors. Note that I had a “board of advisors,” not a board of directors, which you might consider. I’d get an EIN (federal tax id) and get a corporate bank account established, and set up initial financial accounts showing paid-in capital. Do you have a business plan? Always good practice to prep for investors, and that would help you and your partner understand where you are aiming to go.

I recommend organizing a company in the country you want to sell into (the states?). Do your accounting right, and you won't pay tax, or will only pay a minimum once you start making lots of money. You can't (and shouldn't) skirt the anti-money laundering rules. Even if you succeed in the short term, you will eventually get kicked off of Amazon, PayPal, eBay, or wherever.

First, get excited about the challenges (and rewards) ahead! First, some thoughts, then items to consider: 

  • Cash-flow is the most important aspect of your business. You can be making all the money in the world but if it's not in the right place at the right time, you will have problems. Accounting is #1 for understanding when (and if) you are profitable. 
  • You need constant exposure to the right market, having the best widget means very little if no one sees it, or worse, you show it to the wrong person. Marketing and sales using a direct sell method (as I am focused on a service business for purposes of this discussion). 
  • Understand the difference between an expense-generating activity and a revenue-generating activity. Maximize revenue, minimize expense. Write your Business plan using this: http://lifehacker.com/5913086/fill-out-a-one-page-business-plan-and-get-your-business-started-already 


Basics -- organize your practice (choose your name, see item below) as an LLC or s-corp. Make spouse and offspring 33% owners to achieve minority- and woman-ownership qualification (if possible) for government work, which you WILL be doing, eventually. Right? 

Once you get your EiN/TIN from irs.gov in your company name, you can organize as an LLC or s-corp. You need some organizing document to get your bank account. CapitalOne is the least expensive, most flexible for small business in the DC area (where I used to live). Get a business VISA debit card. Get your accountant on board now! You'll want a simple business liability policy at some point - for $1mil - expect to pay $1000 per year for that (but wait until later to shop for that). 

Work on retirement planning, health savings account, etc., in the future. company name, URL, website, email, telephone number. 

Look for a domain name that matches your company name (at a registrar such as Godaddy.com). You can use GoDaddy for the basics (web, email) and the accounting system they have is, IMHO, awesome. Get an iPhone and a dedicated number - AT&T has plans with a big bucket of minutes and a data plan (you will be on the phone often, don't cheap out). Get a family plan so spouse and offspring can have their numbers on your plan and get high-speed internet at home. (companies pays all; see how that works? Company spending = expense). If your house has a crappy mobile phone service, get a femtocell from AT&T. Business cards vistaprint.com. If you need a logo, find a talented friend to design one for you. a journal to write EVERYTHING down - your planner, task list, calendar, meeting notes, etc. should correspond to your shared contacts/calendar/notes in iCloud so all that syncs across your Mac, iPad, and iPhone. You never want to lose that data, which is an audit trail and the sum total of your business "knowledge". 

Consider using (cheap self-promotion) my product, http://www.workbench.net buy a MacBook Pro 13" with 8 gigs of ram. Buy an external multi-terabyte hard drive to back it up to with time machine. But an iPad mini to take notes on, show presentations, etc. website: find a friend to help you assemble a web presence. 

You'll also want FB, Twitter and PayPal accounts for the business, using your business email address. set aside office space at home. Get a simple filing system, with a dozen hanging folders so you can stash receipts, project tracking, etc. You need to close the door and focus once in a while. 

Implement SugarCRM or some other open source CRM tool to manage your sales process.

You need to keep your paperwork organized, consider job jackets for each project that correspond to the file system on your laptop (/Work > Clients > ABCNonProfit > etc.). when you are ready, tackle (a) direct email marketing with MailChimp, (b) customer relationship management to track leads and clients with SugarCRM, (c) a 12-month marketing/sales plan. 

IMHO, life is about... starting over. Continually. We grow older, we learn new things, we experience events we could never envision. Eventually, I came to believe I could always take care of myself, so I stopped worrying so much about... life... and started to focus on my relationships, appreciating what I have, and setting reasonable goals for the near term (1-2 years).

Play to your strengths -- build 'em and flip 'em, perhaps? I would suggest you save money, continually, so you always have a cushion for yourself, no matter what the outcome (or random events -- people can get sick or have an accident so unpredictably). Learn new stuff, so you can always seed ideas and appreciate new opportunities.


Personally, I got a house early, had a base of operations, and something I could leverage (needed a HELOC to fund payroll when a large contract fell into my lap, years ago, for example). Unfortunately lost all that in the last go-around, but I always feel most creative when I am secure in my living situation.

Whew! Seems like a lot? Don't worry - checklists and "one day at a time" are the best ways to get through this to "launch", which, in the end, is the most critical part of YOUR PATH TO INDEPENDENCE because you will be in charge of your own financial destiny.


Friday, September 11, 2015

Queuing - Single Queue Works, But Why Doesn't Everywhere Do That?

Queuing theory utilizes applied mathematics to deal with the phenomenon of waiting -- arising from the use of mathematical analysis to improve production processes. So why doesn't McDonald's utilize this approach? Customer what times over 90 seconds can be problematic. But perceived wait time is more critical - like page loads in your web browser. If the UI/UX designer has come up with a novel way of loading content, a user will wait out the progress bar. Or, if the content is so compelling (think, your bank account, or cat videos).

But it helps to think of getting your french fry fix take-out as involving a series of work stations, each with a separate task. And each task takes time (e.g. ordering food, instructing workers, retrieving hot fries, putting into packaging food, payment). These stations are generally attended in sequence, and each station takes some time to process one customer. The sequence of stations is a pipeline. But some steps take longer than others -- so building in wait time at certain points actually serves to move the production process along without bottlenecks. McDonalds provides several queues in parallel, the first for ordering and paying, and the second, an (invisible) station where customers wait while their food is gathered and served. The time it takes to cook the food is accounted for in the time taken to gather the food items.

The same analysis can be applied to packet switching with internetworking, or with automobile assembly. For my masters work, I looked at a supplier to a Japanese auto manufacturer -- with a supply chain represented as a multi-input, multi-stage queuing network. An input order to the supply chain was represented by stochastic variables, for the occurrence time and for the quantity of items to be delivered in each order. I had seen such an approach when learning about the (now sunsetted) wide area network at the central bank, where I was involved with information security. A "star" network topology has a central top level node that all other nodes connect to. "Packets" are passed through the central node. This helped me understand alternate ways of queuing -- something I have carried forward with my efforts at automating workflow in Bluedog's SAAS offering, where 'jobs' have to be passed from one stage to another, based on business rules.

The typical first-come, first-serve system of waiting in line is incredibly inefficient, in terms of both time and space. First, it essentially rewards people for wasting their time: Those who arrive first get the goods, but they also spend more hours of their precious time on Earth standing around and waiting. Second, long lines tend to create congestion and bottlenecks that cause problems for others. Think of the traffic jams that form as cars try to leave a football game, or the long boarding line at an airport that snakes across the walkway, getting in everyone else's way.

Read more here... Danish Researcher Report or read this guy's ideas.

Wednesday, April 1, 2015

Ask Your Developer: Is this a Web or Cloud App?

When a customer asks, should we go Cloud vs Web, my response is frequently, what's the difference? Then, I try to illuminate with the following. These days cloud applications are all the rage… but what’s the difference between a cloud app and a web app, if they both run in your browser? And are mobile apps cloud-only? Confused? Don’t be. Here’s a quick primer on the differences (and similarities).

Let’s start with web applications — software accessed over a network such as the internet or an intranet via a web browser such as Safari or Chrome. Such tools are built with= a browser-based language (e.g. JavaScript), displayed with HTML and accessed with a common web browser. In web apps, the software as well as the database resides on a central server. This saves software developers from building and maintaining multiple client versions for a specific operating systems.

Cloud apps are hosted by cloud providers (Amazon, Google, others) and are accessed over the Internet. The software-as-a-service (SaaS) provider owns the software while the customers “rent the app” in a pay per use model. As web apps, they are used through a web browser so nothing needs to be installed locally. Cloud apps are generally architected to support multi-tenancy — enabling multiple customers (tenants) to be aggregated into the same application). Pricing is based on actual usage or per-user.

They seem similar, don’t they? Both types of apps are stored on a server and delivered through a browser interface over the internet. Cloud apps should have high availability (through mirrored installations in multiple locations) as a feature, while many web apps are limited in ability to support a fixed number of users. Cloud apps may offer extra security and integration with other systems via web services. Administrators of cloud apps can easily configure workload and traffic patterns in order to utilize the exact amount of infrastructure offered. Web applications are usually developed for a given platform, limiting scalability.

Mobile apps that access the same back-end over the internet would be considered cloud apps if the architecture and supporting infrastructure are cloud-based.

Friday, July 4, 2014

Get Started with Your Own Business - infographic

Many times I am ask, "Hey, Tom, I have a killer idea for ______. How do I start a business?" That is usually when I finish off my pint and head for the door.

However, I came across this info graphic that provides a decent overview of how to get your company established and off the ground. Now all you need is a little capital, a little motivation, and a lot of luck.

Tuesday, June 24, 2014

Remember Bannockburn

While everyone remembers Guy Fawkes day, I like to remember the 24th of June, anniversary of the Battle of Bannockburn. No rhyme, but a crucial lesson, regardless.

On this day some 700 years ago, the Scots were aiming for independence. Thinking outside the box, Robert the Bruce had his sappers dig a field of scores of holes, each only a few feet wide and deep, but excavated at a crucial point where the English were advancing. These small traps, capable of snapping horse's legs, meant the cavalry had to stay on the narrow Roman road. Unable to spread into a proper formation, they were left vulnerable.

While the battle ended well for the Scots, the war of independence dragged on. And, in the end, we all know how that worked out. perhaps wankers colonized Scotland, but history, well, history is written by the winners.

Lesson: act today with fortitude and cleverness — even in the face of certain disaster. Although, of course, the outcome may not matter in the long run.

Wednesday, January 1, 2014

Did Your Espresso Machine Just Tweet You?

When asked, I like to explain the "Internet of Things" as an ecosystem of technologies monitoring the status of physical objects IRL (in real life, in "meatspace", as opposed to cyberspace), capturing meaningful data, and communicating through the great internet IP network to our software apps. For Bluedog, the Internet of Things means smart objects, machine to machine communication, RF technologies, and a central hub of information.

As a proponent of service oriented architecture, I find the idea of the Internet of Things to be compelling. With devices of all kinds reporting data in real-time, people have the ability to make quicker, more accurate decisions. In the supply chain, managers could monitor the status of shipments like a crate filled with expiring pharmaceuticals or spoiling veggies. With sensors, RFID tags, and RFID readers, supply chain participants view in real-time the exact location of the cargo inside the warehouse, its point of origin, time until expiration, and factors in the environment like temperature that might impact the process.

This transparent process improves efficiency, reduces waste, and allows traceability. If a shipment is determined to be unsuitable for consumption due to spoilage or other unforeseen circumstance, the root cause will quickly be discovered from the plethora of information available.

Kevin Ashton likely first coined the phrase in 1999, but the idea has evolved in the intervening time. Initially, it was used to describe the limitations in the relationship between the internet, computers, and the physical world. Ashton was describing how nearly all the data available on the internet originates from a human. With available and emerging technologies, Ashton believed information about things need not be dependent on a manual interaction; it could be an automated process.

At Bluedog, we see the adoption of such supporting technologies as a means of spurring innovation. IP networks are commonplace throughout homes, offices, warehouses, even city streets. Industry need and government mandates are regulating technologies leading to accepted standards across boundaries, allowing for interoperability among devices. The cost and size of devices continues decreasing which allows companies to embed smaller, common items with GPS, Q-codes or bar codes, RFID, and low-cost sensors.

Contemplate the future, on this, the close of 2013. Drones and other autonomous vehicles, more mobile computing, the Cloud, the frontiers of space being pushed back, new genetics, physics, materials science and other advancements! The future is so bright, I've gotta wear shades.


Friday, November 8, 2013

The Strongest Security is Probably Just Following Your Existing Policies

The materials leaked by Edward Snowden include data that he should not have been able to get access to. So how did he get the materials? He apparently persuaded more than twenty co-workers to give him their login IDs and passwords. He told them he needed the credentials to do his job as a systems administrator. The use of so-called "social engineering" is a tried-and-true method of gaining access to off-limits resources. This is the psychological manipulation of people into performing actions or divulging confidential information.

A famous use of social engineering was by Kevin Mitnick, some think the world's most infamous hacker. His exploits as a cyber-desperado and fugitive from one of the most exhaustive FBI manhunts in history and has spawned books and movies. Since his release from federal prison, in 1998, Mitnick has turned his life around and established himself as one of the most sought-after computer security experts worldwide. He was an expert at getting people to trust him, and give him the "keys to the kingdom" so he could access all sorts of information.

A lesson all of us in the cyber security business know -- all the firewalls and encryption protocols in the world will never be enough to stop a savvy con-man intent on stealing a database or an irate ex-employee determined to crash systems. Next time the government should think of preventing these types of social engineering hacks through better-enforced security protocols, training programs, and educating the right people to address this all-to-human element of security.



Saturday, August 3, 2013

Is Your Organization, well, Huggable?

The Japanese have a way with cute -- think Hello Kitty cute. Culturally, that works not just appealing to children, but as an overall marketing/communications strategy. Think about how Japan has leveraged brand characters, such as the cat. This has not been seen much outside of Muffy in the Netherlands or the Simpsons -- extending a character from the non-brand cultural space, turning it into an artifact that simultaneously signifies and does not signify a brand.

But does "cute" work elsewhere?

In a study by Rebecca Dyer, a graduate student at Yale, showed that people actually are more aggressive when they are confronted with cuteness. In the study, 90 men and women were invited to watch a slide show. Some were shown a funny slide show, others a neutral slide show, and a third group watched a cute slide show. They were instructed to pop bubbles on the bubble wrap, as many or as little as they wanted just as long as they were engaging in some form of motion. The results showed that the group that watched the cute video popped 120 bubbles while those that viewed the funny and neutral slide show only popped 80 and 100 respectively.

The research interprets this “aggressive” behavior as normal, that the cute images make us want to care for the creature (cute puppy, wide-eyed baby). Then, because we can’t, we react in a negative way with aggression. It does not seem Dyer is not suggesting that if we see a cute baby we are going to sock it in the face because we can’t take it home; she is describing a phenomenon that explains why we are so taken by child-like images.

Psychology Today examines a similar affect of cute on the brain. The study concludes that cute babies’ photos elicit a response in our brain that is different than when shown a picture of an adult, whether we are male or female. Cute is cute and it all make us want to take care of the cute thing. Women, the study says, respond more intensely to pictures of their own babies and children.

When making a purchase, many Japanese take a holistic approach to a product and its presentation. Also, they may be more concerned how the purchase will affect their individual and group identities. It is possible a Japanese consumer may want to feel secure about their purchase and seek to minimize uncertainty. An understanding of the social-cultural underpinnings of these strategies will help foreign firms compete in Japan, but may also help other organizations the U.S. and E.U. with breaking down barriers to serve customers better.

Monday, January 28, 2013

I never thought I'd See This: Consultants are, gasp, Good?!

In a recent Slate article, we read that management consultants are actually a boon to business!

A recent experiment by World Bank and Stanford researchers illustrate the dramatic impact of management “technology” on the way companies are run. The researchers randomly assigned a management makeover to a handful of Indian textile firms, while at the same time following a set of control textile factories to benchmark the effects of good management.
Out of chaos, order arose: Supply closets were no longer strewn about with yarn, factory floors were cleaned up, inventory and control processes improved production line efficiency. The benefits of good management were such that Accenture’s services—which were provided to the companies for free as part of the experiment—would have paid for themselves through greater profitability within a year: The researchers estimated a profit increase of more than $300,000 annually as a result of management improvements, as compared with the $250,000 market price of the consulting services they received.
What brought about these changes? Exactly the sorts of things that the managers of Davos are good at: designing incentives, ensuring clear and well-defined assignments of tasks and responsibilities, putting in place protocols to manage and track inventory and production. These are not new ideas. They have been the standard protocols of much-maligned managers since they first appeared on the scene with the advent of transcontinental railroad. It’s just that management, despite its age, is not evenly distributed around the world.


Slate's assertion: Better management stands a far greater likelihood of making the world wealthier and healthier. And that's a good thing.


- Posted by Tom/Bluedog

Wednesday, December 12, 2012

Consider Total Cost of Ownership with Cloud Deployments

What are the cost savings associated with a move to the cloud? Sometimes it is not the external costs (readily apparent in the contracts or service level agreements) that unbalance a cloud migration, but the internal costs one seeks to reduce. For example, a reduction in force clearly saves money. But divesting the organization of knowledgeable workers can have long-term detrimental effects. As total-cost-of-owbership includes all direct and indirect costs of owning a particular asset, labor associated with the asset might or might not be captured as a cost center. Further, making a decision to buy services on a pay-as-you-go basis as a capital expenditure, versus operational expenditure, is one way to amortize the use of cloud resources over in-house data center maintenance. Keeping computing off the balance sheet has pros and cons, of course, based on complex financial and strategic goals best managed by a company's board, or an institution's financial controllers, not the IT department. This article sums up a recent U.K. study. In it, we read that the study advises government agencies to ensure they are not locked into a relationship with a cloud vendor beyond the duration of the contract, and to look at any exit costs. If cloud vendors offer multi-tenanted infrastructure services, where clients co-locate their computing cloud with others, then there may be hidden costs, if arrangements change.

Monday, May 14, 2012

The inevitable march towards SAAS for everything continues…

Do you bank online? Do you use your smartphone to do it? If not, why not? Of course, Bluedog's own software-as-a-service (SAAS) offering, Workbench, provides knowledge workers with valuable tools for collaboration. But every commercial entity has to deal with money, and on-line accounting is a natural niche to address. Over at Outright, Inc., bookkeeping has been taken to a new level -- and small business bookkeepers should check it out. Outright provides a tool (much like Mint, but geared towards small- to medium enterprises SMEs) for consolidation of finances and accounting services. Regular and accurate bookkeeping enables a business to sustain itself, and expand. Without double-entry magic, one may run the risk of hitting a cash flow crunch, wasting funds, and overlooking opportunities to expand. When devising or revising an approach to bookkeeping, remember that the purpose of bookkeeping is to help manage the business and to enable tax agencies (and verdict providers) to evaluate business activity. If accounting practices achieve these objectives, it should be as simple as possible. Naturally, a SAAS approach facilitates this.
While some bookkeeping functions are best delegated to a CPA, it is important to keep your hands on, and retain an understanding of the health of the business by reviewing the books frequently. While an accountant or bookkeeper can free resources up to concentrate on expanding the business, understanding where inflows and outflows go will keep the the pulse of the enterprise out in front.

Wednesday, April 11, 2012

Best way to test your apps? Let the tech writers do it!


From more than twenty years involvement with software companies, I can attest that the best person(s) to test (at least UAT) your software is the person writing the end user documentation. Heck this is the primary person to understand new software as it is being developed. Being able to know and experience what you are describing for new people helps uncover many issues that may otherwise only come to light after wide release.

Listen to this person's experiences in a recent podcast.

Friday, March 23, 2012

Did you get a disaster recovery plan for the New Year?

So we are approaching the end of the first quarter of 2012. How are your new years resolutions coming along? Still hitting the gym? Off the smokes? What about that disaster recovery plan your organization was lacking, when old Saint Nick came around?

Traditional disaster recovery planning usually involves a hot site with duplicates of all your IT and network infrastructure -- and there's the direct and indirect costs of staff relocation, logistics and more. When your business continuity plan calls to run as usual when disaster strikes the primary data center, a hot site is mandatory. But such planning brings challenges in terms of complexity and cost. And executing your plan involves a complete set of processes with all components being tested regularly. have you considered the cost of unplanned downtime? If downtime occurs, how much it will cost? How long will a recovery will take?

My advice: use what works, and borrow best practices from agile software development/ Come up with a prototype and put the plan in action, learn from it, and go back to to re-work the next iteration.

Spending a year studying what to do is foolhardy; attack the problem with a series of end-to-end sprints that allow your plan to evolve. You will know you've reach reached close to the end-state and built a better solution with each new iteration, which will require planning and execution. Like a software development sprint, deliver something every three months and involve all the stakeholders.


Your planning should cover moving the data you need to your recovery cloud, to ensure you have it available when you need it. Since we are talking technology here, make effective use of automation tools. Amazon's cloud provisioning, workload automation and process automation are good examples of the facilities you can tap today, so your organization can recover quickly, using tested and proven processes, with a clear audit trail and avoiding human error.


Inc. has a good article about this exact strategy... worth looking into. Any plan is better than no plan, and the cloud makes backups all the easier.

Wednesday, March 21, 2012

Dogs in the Workplace

It's no secret that the mascot for Bluedog hangs around the offices. After all, she has to earn her dog treats.


Rebecca Johnson, director of the Research Center for Human-Animal Interaction at the University of Missouri's College of Veterinary Medicine, reports: dogs in the workplace are "a growing phenomenon" in America. "People are realizing we need to do things to reduce stress in the workplace," she said.

Dogs can build connections among co-workers and create a healthy diversion from work, Johnson said. People interacting with dogs experience a hormonal reaction that causes them to "feel more relaxed and more positive," she said.


At our facilities, dogs are prohibited from certain rooms -- eating areas and restrooms. And we only allow only dogs who get along with people and other animals. Here's some excellent tips for having your pooch or hound at the workplace.

I happen to agree with The Economist's assessment, having been a dog-at-work advocate since my first company, Enigma. Back then, ACDs were not as well known around Ireland (and Silver Spring), but they still made people feel at home, at work.

Friday, March 2, 2012

How to Improve Customer Service, Online

I have found that mass customization as the basis for building lasting customer relationships, and, on the internet, that means using a customer relationship management (CRM) solution. I recommend to my customers who want to leverage the internet for something really useful: get automated with customer service! Mass customization is the perfect way to bridge the gap between cost pressures and customer-specific requirements. This strategy combines customer-specific services with the efficiency of mass production.

First Get a CRM

Customer relationship management (CRM) systems are typically associated with big businesses, and this has been the case for a while. CRM systems usually require a ton of maintenance and upkeep, and they have high costs and difficult installations. But a new breed of CRM vendors are changing the rules and offering CRM systems (usually Web-based software-as-a-service SAAS models, with zero install or IT department needed) that are targeted at small business. A CRM system is much more than a fancy contact management system -- features like order status change notifications and contact reference numbers are usually standard. Combine with CRM’s other uses, and it is well worth the minimal investment of a CRM for your organization.

Tip: provide an incident tracking number

While no one is a big fan of automated replies of the “Your email is important to us” variety, one valuable purpose they can serve is to provide a reference number for the incident or contact. Even if you do not use anything fancy for this, giving customers some sort of number to refer to is an important part of being able to follow up with them (or for them to follow up with you). It also helps ensure that when you talk to a customer, you both know what the call is in reference to.

Automatically notify customers as the status changes

Automated systems often get a few things right -- like status change notification emails. Keep your customer in the loop, as you work through an issue. Nobody likes surprises, and an automated notification solution makes this headache free.
Keep your customers in the loop and they will be less likely to start looking at other vendors or canceling orders. Many e-commerce solutions offer this functionality, so it’s worth checking the documentation. If your system doesn’t offer such a feature, make a habit of sending emails manually, or scripting something on the side.

At the end of the day, there is no way that the quality of customer service can exceed the quality of the people who provide it. Think you can get by while paying the lowest wage, giving the lamest benefits, doing the least training for your staff? It will show. Companies don't help customers; people do.

Tuesday, December 13, 2011

Pay it forward, or your code will continue to accrue big debts

In undertaking performance re-engineering analysis for the US Department of Health and Human Services and another commercial client, I've come across several cases where code violates what would be considered good architectural practices -- resulting in something called "technical debt," a phrase gaining attention.


Fixing code -- especially Java -- costs a significant amount of money. In the cases I've been involved with lately, the applications were being slated to move to a cloud model, and so were being "bottom up" SOA enabled. APIs were identified to expose to the wider world, and, in some case because the existing code was just too broken, select processes were just being wrapped in new Java service layers.


Read more about the concept thought up by Ward Cunningham. No matter how important an application may be, the patches, cobbled-together fixes, and duct tape approach to keeping the lights on all add up to larger costs down the road. And maybe not too far down that road -- giving new meaning to "paying it forward" when your developers spend the effort to refractor code.

Friday, September 30, 2011

Cloud Security - What to consider

Multi-tenancy is the most popular model to support multiple customers with a single (shared) application environment. To further exploit economy of scale, we frequently see SaaS applications utilizing a shared cloud delivery platform. I've seen how architecting access and authorization impacts this -- enforcing security constraints between applications and between application tenants is a critical requirement for our customers.


My approach in architecting our own SAAS offerings -- and the cloud platforms at commercial and government organizations -- involves a few key considerations:


  • Employing a security proxy component that ensures access to web servers and manages this infrastructure centrally. The result is linking the servers into one logical platform.
  • Use the web server (Apache) as a reverse proxy, and a means to distribute the load from incoming requests to applications. A re-written URL for each incoming request matches the relevant internal location of the requested resource.
  • In my architectures, I've endeavored to cluster application servers specific to each SaaS application.
  • Virtually all architectures I've come up with have used a directory server that stores information about authorized users and what privileges each user has (less and less, Exchange/Active Directory, more and more LDAP - Lightweight Directory Access Protocol).
  • Working with the customers to develop policies and security administration based on global policies. For example, setting reasonable password rules and session timeouts.
  • Finally, creating templates for firewall considerations. Yes, firewalls are still present in cloud platforms such as Amazon's AWS. But these demilitarized zones (DMZs) are intended to maintain additional IP level access control. Using a template approach ensures uniformity, depending on the type of service.