object-mechanics.com

I write science fiction, and software. Sometimes one turns into the other.

  • Home

How to Choose an Information Technology (IT) Consultant

June 13, 2013 by Steven A. Lowe

Innovator roundabout sign
There are many reasons why Information Technology Consultants are brought into projects, but the main ones are:

>  A lack of expertise or resources.
>  Being so close to the problem that you can’t see the solution.

Perhaps you’ve lost your objective opinion. Perhaps you’re trapped in analysis paralysis. Perhaps there are so many options you need help to choose the best one. Perhaps you need help to see the options. Perhaps you just don’t want to go it alone.

For whatever reason, you’ve decided to bring in an Information Technology Consultant or Software Consultant to help you.

How do you choose the right one for your business and your project?

What Do They Do?

A good consultant will help you better understand the problem or opportunity before you. He or she will listen closely and ask a lot of questions – sometimes very difficult or uncomfortable questions. Questions like “Why does this matter?” and, “For whom is this being done?”

Answering the questions brings clarity, and clarity leads to solutions.

Where to Find Them?

There are thousands of qualified consultants, all over the world. But don’t just look locally; information services are rarely constrained by geography.

You can follow some of the same steps outlined in “How to Choose a Software Development Company” to find qualified candidates, and then talk to them.

How to Talk to Them

Talk to several candidates and cross any off of the list that you don’t like, aren’t comfortable with, who don’t clearly communicate or answer your questions, or just rub you the wrong way.

You must like and trust your consultant in order to have the open and honest conversations necessary for success.

How to Qualify Them

Start by giving the consultant a brief, high-level description of the domain of the problem, opportunity, or application. Outline your ambitions, opportunities, risks, and fears; there’s no need for details yet.

Most consultants are bright, honest people who will readily tell you if they can or cannot help you within a few minutes of conversation.

Due Diligence

Look at the background and track record of the remaining candidates. Google them and read their profiles, experience, testimonials, and endorsements on LinkedIn. Talk to some of their past clients. Make sure you are confident in their abilities, that you like them, and that you are excited about working with them.

Credentials are great, but personality and work ethic matter more – for team interaction and especially for long-term engagements. If you don’t look forward to working with them, choose someone else. Friction in the process will drag everyone down and reduce the quality of the results.

Trust, but Verify

Do a “feasibility analysis” with your shiny new consultant – limit the time/cost up front, and specifically convey your expectations. This will produce a preliminary design and establish the working dynamic between the consultant and the team. Agree on structures for production, payout milestones, team dynamics, authority, system access, and anything else that will make it easy and enjoyable to work together. But keep this first engagement short, and limited in scope.

Evaluate Often

If at any point you become uncomfortable with the consultant’s performance, communicate your concerns immediately. A mutual effort to reach common ground is vital to getting the project back on track and in the comfort zone. If no consensus is possible, fire them early and quickly. It’s a difficult decision to make with time and money already invested, but sticking with a consultant who isn’t working out could bring down the entire project.

Be Cautious

Do not make a long-term up-front commitment. Be extremely leery of consulting firms that offer to do ‘free’ analysis and proposals, because the backside of this is generally a long-term contract commitment.

Know exactly who you will be working with, what they can really do, and if you like them before making any longer-term commitments.

Good consultants (and contractors) understand that every day is an interview.

If your consultant offers drastic recommendations without first observing your operations, be afraid. It may be the case that the consultant’s advice is based on years of experience and is delivered with great confidence – but that experience is not with your business, and your business is different. Sometimes very different. It is critical that your consultant observe your business in operation to fully understand your unique operational needs and environment.

Think First

Prepare a high-level overview of your business needs for yourself. Include any special considerations, such as:

  • Legacy systems that must work in conjunction with the new system.
  • Specific customer interoperation and/or data interchange formats.
  • In-house tools and systems that must remain undisturbed and/or be supported by the new system.
  • And most importantly, exactly what you expect the consultant to provide.

Expectations govern the consulting relationship; make yours known up front.

Start Small, Grow Big

Start with a small project. Define the outcomes in advance, and agree on how the results will be presented. Consider the first small step as a pilot project for both you and the consultant. Pay close attention to how the consultant operates in their interaction with your team, the level and quality of communication, and how suitable the results are for the agreed upon outcome.

Build Upon Success – Or Bail Out Early

Once the pilot project is successfully completed, you and your consultant should have enough information to plan the next steps. If the pilot project is not completed successfully, or the working relationship is not working, do not hesitate to pull the plug on working with that IT or Software Consultant in the future.

Set the Rules Together

Agree in advance on:

  • How the consultant will work with your team.
  • What materials and personnel will be made available.
  • What authority, if any, the consultant will have to request more information.
  • What response times and communication channels are reasonable for both sides.
  • Who will be assigned as liaison for the consultant.

Establish criteria for when the consultant must be on-site, and provide adequate workspace for both on and off-site work. Don’t be surprised if the consultant does not spend a lot of time on-site; it is quite common for a few days of observation to be followed by several days of research, analysis, design, planning, and proposal preparation. You should expect to see your consultant at the beginning and end of a project, but not so much in the middle.

You Get What You Pay For

Expect to pay for the consultant’s time. Some larger firms will offer “free” evaluations, but beware. These “free evaluations” are likely to be superficial, boilerplate proposals based on the needs and systems of other businesses, not yours.

Make sure to meet the team that will be working on your project, even if it is just virtually. Some consulting firms are notorious for sending in the principals and stars to do the front-end work. Once a contract is signed, the firm hands off the rest of the project to interns, B-team developers, and new consultants fresh out of college – while still billing at the top-dog rates. Even when this is not the case, it helps communication immensely to meet the team before the serious work starts.

Ask and Clarify Everything

Once the proposal is in your hands, do not hesitate to ask questions, seek clarification, and request justifications and explanations for the reasoning behind each point in the proposal. You must both understand exactly what is proposed, why it is recommended, how it will work, how it will inter-operate with existing systems, and how it will change your business once it is in place.

Planning for the latter is critical: the ultimate success of the project comes from achieving the desired change, not just from delivering software systems.

Wrapping it all up

  • Be picky! – Choose someone qualified, personable, and with whom you’ll be excited to work.
  • Make the first step a small step. – Do not hesitate to fire the IT Consultant or Software Consultant if they’re not working out. Sunk costs are irrelevant; future success is crucial.
  • Maintain your independence. – Work with the consultant to transfer the knowledge and skills to your staff, so you can retain your independence.
  • Evaluate often. – Good consultants know that every day is an interview and every step in the project is a test.
  • Consistent communication. – Maintain clear and frequent communication with the consultant at all times. Frustrated or confused consultants are less effective than is optimal, and invisible consultants can become the seeds of staff resentment.

Also see vampires and empty suits

Back to Blog

Filed Under: consulting, custom software consulting, custom software development, migrate Tagged With: custom software, custom software consulting, custom software development, migrate

How to Choose a Custom Software Development Company

May 24, 2013 by Steven A. Lowe

Image of questions to ask when choosing a software development company

Say you have an idea, a vision for a software project, an application, a web site, or you have a business process crying out for automation…but you can’t do it yourself. How do you choose a software development company to help you realize your vision?

Can’t I Just Google It?

A Google search for “software development company” yields over 300 million results. Add in your location, and you’ll get fewer results – but geography and software development are not strongly correlated. In other words, there are few compelling reasons to only use local services for something this important.

Or Ask A Few Friends?

You could seek out recommendations from your peers – if you’re lucky enough to have any that have successfully realized a custom software project.

You could ask questions in online forums, on LinkedIn, even on Facebook – and get a wide range of opinions, unlikely to apply to your specific needs. More than likely, the broad spectrum of opinions you get will leave you dazed and confused.

The Answer is: It Depends

You have a lot of options – but it is your specific needs that will determine which company you should choose. Having a [clear understanding of your needs] before you go shopping is crucial.

So, like many other things in custom software projects, the precise answer is: “It depends.”

It depends on what you want, what you really, really want.

The place to start is by asking questions.

How Big is it?

Is it a small project, a medium project, a large project, or a huge project? Not all software development companies can or will take on projects of any size. Some companies are only interested in gigantic, multi-year, multi-enterprise projects. Some companies specialize in only one kind of project, such as mobile media applications or enterprise systems integration.

What Legacy Systems or Technologies are Involved?

If your project requires expertise in older technologies or specific existing software systems, that matters – a lot. Some companies may already have the expertise you require, others may not. While expertise can be purchased, it comes at a price.

When Do You Need It Done?

Are you on a deadline? Is there something coming up that you need the software to handle? Or is there a trade show on your schedule where you want to show off your new software? How long can you wait for it?

Do you want to take your time, a bit here, a bit there, slowly piecing together something at a leisurely pace? Are you comfortable with a long-running project that may take many months or even years to complete?

There are limits to how quickly software can be developed, tested, and delivered. Be prepared to trade features for time.

Good software development companies will help you make wise trades. Beware of those that promise everything!

What Methodology Works for You?

Do you want to hit the ground running, build a minimum-viable product as fast as possible, and steer the project to success based on rapid feedback from your target users or market?

Or would you rather examine the project, problem, and processes from every angle, build a detailed set of requirements, do extensive modeling and prototyping, and produce the whole thing at once?

Or something in between?

Choose a company that will work with you, the way you want. Most companies have preferred methods; determine how well they fit and how flexible they are. Don’t be surprised if some companies insist on doing things only one way, and listen to why they think it is best. It may be, or it may not, but the decision is yours.

How Volatile is it?

How likely is it that your requirements will change while the project is in development? If you’re trying to hit a moving target, the software company you choose will need to be responsive and flexible.

Should You Just Publish a RFP and Sift Through the Responses?

You could create a Request for Proposal (RFP) and send it to several companies for responses. The RFP has to be detailed enough so that the reader understands exactly what you want to be done. Then someone within your company who understands both the business needs and software development has to sift through the responses and decide which one is “best” – where “best” means not only the cost and time, but also the technical and cultural fit of the proposed solution.

But beware – some companies respond to RFPs with boilerplate documents that may have little to do with your solution. Some companies, including Innovator, simply do not respond to RFPs. Writing detailed responses to RFPs can consume considerable resources, are highly susceptible to errors (because it’s a static document and is not a conversation), and often turn into [traps for both parties] This can lead to defining inviolable guardrails and roadmaps that lead to project failure, lawsuits, and general unpleasantness. They can cause projects to break down, resulting in conflict, instead of enabling better communications.

If you hold a vendor to the terms of an RFP, be certain that it is exactly what you want and need.

What’s Your Budget?

Is your budget a bottomless well or a pail of pennies? Do you even have a budget?

If you have a budget, by what means was the amount decided upon: past projects, industry related studies, heuristic assumptions, “It’s what money we can spare”?

Nothing is going to happen without a budget (and budgets rarely happen without a Project Champion.

Most software development companies will work with your budget, but be prepared to trade features for costs.

Again, most companies will help you make wise trades, and beware of those that promise everything!

What Do You Want to Happen after It’s Done?

Can you maintain and enhance the system after it’s done? Do you even want to?

Software doesn’t change spontaneously, but the environment in which it runs does. Your hardware, your network, and your business, all change over time.

Decide ‘who and how’ the system will be maintained once it’s completed to ensure the longevity of your investment.

Most software companies will provide some level of support and maintenance (and training) after delivery; be sure it’s enough.

Who Owns it?

Custom software is typically owned by whoever pays for it. But make sure the contracts state this explicitly anyway, in compliance with the intellectual-property laws of the governing state.

The last thing you want is to pay someone to develop a solution to your problem, and have them then sell it to your competitors!

Ask the software company about ownership, explicitly.

What are the Security and Safety Issues Involved?

Does the system have significant sensitive data, classified information, proprietary business information, personal information, and/or medical information? Is there risk of physical harm if the software works incorrectly or fails to function?

Not all software development companies are properly insured to work on high-security or high-safety systems.

How Much Does the User Experience Matter?

For some projects, especially mobile applications and web sites aimed at the general public, the so-called “user experience” (UX) matters a great deal. Beautiful screens that are easily understood and intuitively used are critical in many markets.

Do you just need a one-off utility to solve a short-term problem? Or do you need a commercially viable, highly polished application system for public resale?

Not all companies have the expertise or resources to provide exceptional user experiences. If this is required, consider hiring a specialist UX company to work in conjunction with your chosen software development vendor.

What Now?

Now that you’ve answered these questions, you should have a pretty good idea of what you need – you may not know all the details, but you’ve have hit the highlights. You’re ready to look at candidate companies.

Here are some questions to ask them:

  • Are you affiliated with certain technologies or vendors?
    It’s unfortunate, but some software development companies favor certain technologies, vendors, or solutions, even when they may not be right for your project.
  • Have you done something like this before?
    If they have, great – but make sure it really was similar, and was done well. Do not hesitate to ask for references, call prior customers, and do the usual due diligence you would with any new vendor.
  • Do you guarantee your work? If so, how, and for how long?
    Have you ever read the licensing agreement for a piece of commercial software? Most of them amount to: no warranty expressed or implied. This is unacceptable for custom software development projects.
  • Who will do the work? Can I meet them?
    If you’re going to have to interact with the project team significantly, it’s important to know who they are and how well you get along. Communication is key, and the longer the project, the more these relationships will matter.
  • How Much?
    What is the total cost – no hidden costs! Expect the answer to be a range.
  • How Long?
    How long will the project take, in calendar time? How often will they report progress and what intermediate results will you be able to see/approve?
  • What Security?
    Who will have access to your data and systems, and why? What steps will be taken to protect proprietary, personal, secret, and/or vital data and systems? What are the repercussions for violations?
  • What Happens Afterwards?
    Will they train your users? What will they charge for bug fixes (past the guarantee period) or minor enhancements?

And 2 final questions for you:

  • Do You Like Them?
  • Are you excited about working with them?

Communication is key to custom software project success. For the duration of the project, you and the vendor are a team.

Effective, honest communication depends primarily on the personalities of the stakeholders and developers involved, and can be far more critical than the particular development philosophies, methodologies, and technologies used.

Software projects are much more vulnerable to politics than technology.

[DeMarco, T. & Lister, T. (1999) Peopleware, New York, NY: Dorset House Publishing]

Also see How to Choose an IT Consultant

Back to Blog

Filed Under: consulting, custom software consulting, custom software development, migrate Tagged With: custom software consulting, custom software development, migrate

10 Secrets of Successful Custom Software Projects

August 20, 2012 by Steven A. Lowe

There really aren’t any “secrets” for a successful custom software project, but so many projects fail that it may appear that way!

Through our experience as software consultants and as a custom software development team, we’ve identified ten characteristics common to successful custom software projects where the resulting systems remain in service for several years.

10 Secrets of Successful Custom Software Projects from Innovator, LLC

1. Clear objectives

Without clear objectives, it is difficult to know what “success” looks like!

2. Commitment

A custom software solution is not a decision lightly made and easily changed; it requires a commitment to the path and a willingness to see it through. The rewards are well worth it, but only for those that persevere with clarity.

3. Measurable ROI

If you cannot estimate, much less measure, the return on investment (ROI) of a custom software project, it probably doesn’t have any, and should not be done.

4. Stakeholder Involvement

People resist change that is done to them, but embrace change that they are a part of. Make sure all of the stakeholders are involved in the project, and that their goals are in alignment with the project goals.

5. Project Champion

A Project Champion is a senior executive with financial authority who believes strongly in the purpose and path of the project, and will fight to get it funded and completed. Projects without Champions are difficult to start, and rarely finish.

6. Adequate Budget

Custom software development costs money. Sometimes, it costs a great deal of money. It is also often the cornerstone of a strategic advantage and the lifeblood of operations. Skimping on the budget is tantamount to building a house on sand. Remember to budget for supporting software, required and replacement hardware, training, and ongoing maintenance.

7. The Right Team

The right system cannot be developed by the wrong team. Make sure the development team has the appropriate domain knowledge and skill levels to be successful.

8. Realistic Expectations

Rome wasn’t built in a day; your custom software system won’t be either. Software development is part science, part craft, part art, and hard work. None of these should be rushed; to do so sacrifices quality and risks failure. Be patient, and work with the development team to ensure that both sides have a mutual, realistic understanding of the process, timelines, and goals.

9. Training and Maintenance Plans

Once the software is completed, who will use it? How will they know how to use it? Who will maintain it? How will they know how to maintain it? Include plans for these issues early in the project.

10. Lifetime Support

Custom software systems can remain in service for decades. Make sure your plans include provisions for periodic maintenance, incidental and emergency support, and someone to care for and enhance the system over its entire lifespan.

See also How to Choose a Custom Software Development Company

Back to Blog

Filed Under: consulting, custom software consulting, custom software development, micro-consulting, migrate Tagged With: custom software, custom software consulting, custom software development, migrate, misaligned incentives, project failure

Copyright © 2019 · Parallax Pro Theme on Genesis Framework · WordPress · Log in