Software Development: The Right Team Makes all the Difference

With technology continually providing new and faster ways to do almost everything, the human factor can be easy to discount. That’s a mistake, particularly when it comes to software development. Whether you’re looking to hire new IT professionals for your in-house team or engaging an outside firm, taking the time to choose the right people can make a critical difference to your project outcome. Great people can help you catapult across the finish with a superior product. Mediocre people frequently limp in late (and frequently over budget) with a mediocre solution that needs replacing in a short time. And choosing the right partners sometimes can be the difference between a solid outcome and no outcome at all.

Why is the human factor so important?

I explain it this way: great software development requires a combination of logical intellectual work and creativity. People who are highly skilled and experienced, but who also possess passion for creative problem solving, can achieve results that less experienced or unmotivated professionals cannot.

It’s tempting to hire or engage the cheapest employee or firm but remember that software development is a much more sophisticated enterprise than cranking out bars of steel in a factory. The difference between the top tier and bottom tier is a factor, not a mere percentage. In other words, “you get what you pay for” is especially true in the world of software!

If you’re looking to hire individuals to join or partner with your team, make sure serious candidates

can understand business needs and problems and to propose/implement effective solutions. Ask candidates about a time they solved a problem out of curiosity, versus the need to do so for a business reason. Professionals with inherent curiosity are much more likely to keep learning in ways that can pay big dividends on the job.

What should you do if you’re looking to engage a software development partner? Like most things that matter, begin by doing your homework. Dig in and ask tough questions. I suggest the following questions to kick off your search:

  • How long has your firm been in business? Obviously, you want a firm with a proven track record and an authentic list of satisfied repeat customers.
  • How large is your firm? If you’re a small or mid-sized company, be careful not to get lost in the shuffle at a big consulting firm where your business may be considered “small potatoes” compared to bigger corporate clients.
  • How will you partner with us? Again, proven experience is key to ensuring your chosen consultants will work shoulder to shoulder with your team, solving problems and transferring knowledge daily. The consulting firm should leave your team more technically robust than when the engagement began.
  • How do you ensure the technical expertise of your consultants? You should also ask how the consulting firm leverages collective knowledge for the benefit of all its customers.

Work to find people who bring a fresh perspective (versus a narrow focus influenced by a legacy process, ideas or culture). People with deep experience across multiple industries and technologies are more likely to approach challenges with new ideas and creative approaches that are not obvious to the “it’s always been done this way” crowd. They also tend to be more versatile, with the ability to perform in multiple roles as circumstances require.

While software development demands stellar technical skills, strong verbal and written communication skills also are key. People with the ability to talk with other technical professionals and business stakeholders are much more likely to complete projects that meet or exceed expectations.

And while it might sound quaint to some, I believe professionals who come equipped with above average integrity best serve organizations. A strong moral compass includes a genuine concern for an employer’s or client’s best interests. People who care bring drive and determination to solving problems by finding the best solutions, even if that means working longer hours from time to time. They also treat fellow team members with respect, which increases the odds of successful collaboration over the long term.

Your search for the best and brightest can be challenging, especially now with more demand for IT professionals than people to fill those positions. Sometimes engaging less experienced talent can help, but a careful approach must be taken to ensure success. Check back soon…that’s the topic of my next post!

Software Development: Being Agile

Dogs at work. Insane hours. Beer bongs in the break room.

Oh, the crazy days of IT yore!

If you were developing software when these were hot trends, you know there’s another legacy that’s not quite as fun to remember: failed IT projects. From extreme cost overruns to missed deadlines to projects that were cancelled mid-way through, the track record for wildly successful software development projects is less than perfect (see my previous post for more about that bad news).

But here’s some good news: software development has come a long way since the ‘90s! Instead of the traditional Sequential or “Waterfall” development process – which involved a long requirements gathering process in the beginning, followed by design, development and testing – many developers (including ours) now use the Agile or “Collaborative” development process.

I think of Agile as reality-based development because life, work and, well, software development, is all about change. (If you’ve been alive longer than five minutes you know that’s reality!) When an Agile approach is used, changes are easily accepted and adapted. In fact, with Agile, change is baked right into the process.

But don’t confuse change with confusion. Progress must be made and measured on a regular basis. When Agile is in use, progress is measured in “iterations,” which translates into a tangible work product. Multiple iterations provide the project foundation, with each one taking from one to four weeks to complete (two-week iterations or “sprints” are most common).

One of the best things about Agile software development is that it keeps all parties actively engaged and work gets done in the way they like best. Customers (or other key stakeholders) determine the priority order of the iterations and other key decisions. Developers – many of whom are Millennials that thrive on continuous feedback and teamwork – can deliver working software with each iteration. A classic win-win!

“There is pleasure in the pathless woods,” declared an 18th century poet. Maybe that’s the best environment for developing poetry, but software development works best with a clear path. That’s why Agile involves a work plan defining each step before any work begins, with plenty of flexibility for adaptation as changing circumstances dictate. Best of all, using an Agile software engineering approach adapted to an organization’s specific culture, history and staff means more accountability and less waste.

We’ve come a long way since the crazy ‘90s as Agile-based development is proving every day. (There may not be many dogs in offices anymore, but successful software projects don’t need to rely on gimmicks to distract developers from terrible projects!)

Next, I’ll share thoughts on what to look for and how to work with team members and partners.

The Good, The Bad and the Ugly Truth about Developing Software Today

First, “the bad.”

If you have any involvement in the world of software development today, you know it’s challenging to say the least. Companies need to develop software as cheaply as possible, but many have learned the hard way that the cheapest route can lead to shoddy results (or no results at all!).

Just Google “failed IT projects” and you’ll find plenty of evidence, such as the 2009 IDC report that found 25 percent of IT project fail outright, and that 20-to-25 percent don’t provide ROI, and up to 50 percent required material rework. Add it up, and that’s a whopping 100 percent that either failed, needed rework or didn’t deliver as promised.

It gets worse.

CIO magazine has reported that two major surveys of more than 100 IT professionals across the country – conducted three years apart – revealed that:

  • In 2013, 50 percent of 127 surveyed companies had experienced an IT project failure within the previous 12 months.
  • The number grew to 55 percent reporting a project failure between January and March 2015.

A more recent report found that 25 percent of technology projects fail outright; 20 to 25 percent don’t show any return on investment; and as many as 50 percent need massive reworking by the time they’re finished. (Forbes 2016).

There are multiple reasons for these dismal statistics. One of the primary culprits, I suspect, is the failed offshore development adventure. Instead of providing a cheap, fast turnkey solution, offshore software project frequently was bedeviled by poor management, confusion about team roles and /quality standards well below what U.S. companies (and consumers) expect. In fairness to lower-paid offshore IT professionals, language barriers, and time zone and cultural differences are tough hurdles to overcome.

I know of what I speak. Intertech attempted engaging offshore developers years back to offer our customers a more effective solution. We worked hard to make those offshore engagements work, but in the end, we spent more money than we saved due to extensive rework. As much as we in IT want to believe space should not matter, proximity to customers and the people doing the work does make a significant difference.

And so, where do we from here?

The need to keep costs as low as possible has never been more acute. Global trade means (we) and our customers are competing with businesses around the world, many of which have much lower labor costs. We must find ways to keep delivering quality but at a price that doesn’t break the bank.

Next time: The ugly.

Meet the Dev Center

If you follow Intertech on any social media channel or newsletter, you’re starting to see discussion around our Dev Center.  With our Dev Center, you get the expertise of senior software developers paired with fully trained US-based resources that make any outsourced project work affordable.  Check out the Dev Center post on Intertech’s blog.

How to cultivate winning client-consultant relationships

Much like members of Congress must “reach across the aisle” to forge effective political partnerships, effective client-consultant relationships work best when both parties communicate, participate, treat each other with respect and share responsibility for outcomes.

Unfortunately, as frequent legislative failures demonstrate, people do not always play by common-sense rules.

When they do, however, the results can be impressive. As the owner and CEO of a consulting company that works with hundreds of organizations to build software, I can attest that great work happens when we partner with clients who share these values. In fact, our people will go far beyond what is reasonably expected when a client follows these simple principles… read the full article in Upsize magazine’s “How to cultivate winning client-consultant relationships.”