Software Development: Balancing Youth with Experience

In our youth-obsessed culture, it’s easy to forget that younger people lack one very important attribute: experience. And while software development is a fast-changing industry that traditionally favors young people eager to learn, experience still is a critical ingredient in quality outcomes. Instead of putting young hotshots on a pedestal – and then suffering predictable disappointment when they stumble – I recommend a more moderate approach that goes back centuries in many traditional trades.

I’m talking about pairing younger professionals with more experienced people in a classic apprenticeship approach. This approach makes a lot of sense and still is common in European countries where young people often apprentice for several years before they are considered fully developed professionals. I think of this as the “Development Center” approach.

Besides ensuring valuable transfer of skills and judgment, a Development Center model provides financial benefits too. For companies relying entirely on in-house IT staff, employing a mix of young (and less expensive) and older (and more expensive) professionals helps keep overall employee costs more moderate. IT consulting firms, such as Intertech, that use this Development Center model can charge clients a lower overall project rate without sacrificing quality or accountability.

For this model to truly work, however, senior people must do more than peek over the shoulder of younger talent. Acting as true mentors, more experienced professionals should outline what younger team members are expected to do, review their code, and help integrate the work that they’re doing into the overall project.

And then there’s the harder to measure but infinitely invaluable transfer of “soft skills” that make all the difference between success and failure. At our firm, this means having one of our top consultants allocate 100 percent of his time to provide guidance on project management, communication, understanding Agile and Scrum, and how to work effectively with team members and clients. Watching senior people in action also allows younger people to develop critical skills. And clients obviously appreciate not picking up the tab for junior employee making mistakes or missing deadlines during the process!

I’m reminded of the picture of an older cobbler painstakingly making top-quality leather shoes while a young apprentice stands by observing and occasionally engaging in the less critical aspects of the job. While shoes are now manufactured in mass production factories, the old master/apprentice model still makes perfect sense for those engaged in the work of making software. (I will share more about how this works at Intertech in next post.)

The older have a lot to teach the young and it’s time the IT industry starts acknowledging this truth. When we do, we all win.

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.

Getting Curious Gets Results

Curiosity might kill the cat, as the old saying goes, but it might just bring your business back to life. This month’s edition of Harvard Business Review focuses its spotlight on “The Business Case for Curiosity.” Harvard business professor Francesca Gino provides many thought-provoking ideas and practical ideas in her cover article. She also helped me realize how pivotal curiosity has been to the growth and success of Intertech, even though we do not expressly call it that.

“When we are curious, we view tough situations more creatively and have less defensive reactions to stress,” she notes. I’ve seen this very dynamic in meetings with senior leaders. We all ask a lot of questions and challenge each other to think deeper. Sometimes the best ideas emerge because one leader was particularly curious about a particular issue and kept pushing back with more questions.

Knowing that we all have a shared investment in the company’s success makes it easier to stay curious and not get defensive. This is an important part of our company culture too, which is why we host an annual Town Hall for employees to talk and share their ideas, concerns and recommendations (more about that below).

But, back to Professor Gino’s idea in brief: “Leaders say they value employees who question or explore things but research shows that they largely suppress curiosity, out of fear that it will increase risk and undermine efficiency. . . Curiosity improves engagement and collaboration. Curious people make better choices, improve their company’s performance, and help their company adapt to uncertain market conditions and external pressures. . . Leaders should encourage curiosity in themselves and others by making small changes to the design of their organization and the ways they manage their employees.”

She then lays out five ways leaders can bolster curiosity at work:

  1. Hire for curiosity. Google asks applicants: “Have you ever found yourself unable to stop learning something you’ve never encountered before? Why? What kept you persistent?” Finding people who keep learning out of personal interest is a good sign that they’re innately curious. A question I ask in interviews is “What is the last book you read for professional development?” To ensure they’ve read what they say they’ve said, I follow this question with “What is the biggest thing you learned from that book?”
  2. Model inquisitiveness. From our leadership to sales teams, we agree upon and read a book per quarter. Then we share insights we can apply to our firm.  I read The Economist and several other periodicals, two daily papers, multiple economic and business forecasting newsletters, and at any given time, a couple of books.  I also have always believed it’s important to listen more than I speak as a leader. In my book, The 100: Building Blocks for Business Leadership, I devote chapter 84 to the importance of listening to employees and to asking key questions. Listening to customers also is key, particularly in the early stages of a new project when we are working to understand expectations. Last, I look for ways to double down on learning and turn time commuting or running the kids around into learning with Audible and Blinklist.
  3. Emphasize learning goals. This one really hit home with me. Every Intertech team member has an annual learning goal. In an industry like software, staying ahead of the curve is essential. Notes Professor Gino, “Leaders can help employees adopt a learning mindset by communicating the importance of learning and by rewarding people not only for their performance but for the learning needed to get there.”
  4. Let employees explore and broaden their interests. I’ll admit that in the press of daily business, this can be hard. Employees with proven expertise are extremely valuable. But we know the best employees are most excited about learning new skills and staying ahead of the pack. Every month, we have a company-wide “Second Friday BBQ” lunch (being honest, the BBQ turns into subs or pizza when the snow starts flying in Minnesota). On the Second Friday BBQ, one or more team members deliver a chalk talk on an emerging technology.
  5. Have “Why?” “What If. . .” and “How might we. . .?” days. As I referred to earlier, our annual Town Hall meeting is dedicated to just such questions. Employees take a half-day off from their regular client projects to gather in small groups to explore how we do things and how we can do things differently or better. This feedback is provided to senior managers anonymously so employees feel completely free to speak their minds and ask tough questions. It’s one of the most valuable management tools we have and employees consistently tell us they appreciate the chance to share in this way. In the past, we’ve also used a concept we call “FedEx Day” where employees have 24 hours to work on whatever they choose then present their results to the company.

Staying curious might be difficult when you’ve been running a business for a long time, but resist the trap of thinking you know it all. No matter what your industry, it’s no doubt changing at the speed of light. Curiosity is the only way to keep growing your business and your mind!