Software development project management: Achieving value through alignment.

Whether it’s a kitchen remodel, a quilt, a movie, or a custom software design, people get fired up for new projects.

Because humans love to create.

And businesses create value by balancing momentum and creativity with desirable business outcomes.

Otherwise known as project management.

Antonio Nieto Rodriguez has written extensively about the fact that we now live in a project-driven world. Project Management (PM) is part and parcel of daily life for successful software developers.

What follows are some of the essential PM principles and phases Harmonic Data uses to deliver value consistently.

The Power of Resonance in software development project management

First, a philosophical note: As musicians, our founders like to apply the musical concept of resonance to the art of project management.  

Music communicates through vibrations. 

But many factors influence the quality of sound. For example, the strings vibrate with a violin, but the wood, cracks in the finish, and even the room itself create subtle nuances to the sound.

We like to think of projects and project management in the same way.

Team members, processes, and workflow all influence harmony and alignment so that the end product provides the best value with the least dissonance. For example, the team shouldn’t try to solve the problem until it’s clearly defined.

Once we are aligned on the purpose and quality of the project, we can work our way through the following phases.

Phases of Project Management

Institutionalizing efficient processes for project management focuses the people on the right problem at the right time.

So let’s start by dividing our project into phases and identifying the goals for each stage.

Harmonic approaches project management like a movie production. Creators “build” the story in pre-production, production, and post-production stages.

In any good story, characters experience challenges and attempt various solutions before vanquishing the antagonist and resolving the conflict.

Creators plan the pre-production phase, choose a script, cast the actors, and prepare for production. In the production phase, they shoot all the scenes. Finally, in post-production, editors weave all the clips together, adding special effects until the film is ready to be distributed.

At Harmonic, we approach projects much the same way.

Pre-Production

We split the pre-production phase into two segments: planning and assembly. 

The Planning Phase

In the planning phase the focus is on developing a clear understanding of the problem to be solved (aka the dragon to be slain). 

This part of the process involves an extensive dialogue with the client. Because although clients know what they’re trying to do, their processes are often so ingrained that it’s difficult to step back and see the problems from a fresh perspective.

The Workshop Phase

For meaningful dialogue to happen, workshops are much better than meetings.  

In meetings, communication often flows one way; workshops, however, encourage dialogue. Here’s where the invested parties definine the problem together and push for a deeper perspective.  It’s similar to how two eyes and two ears offer slightly different perspectives from one eye or ear to the other, allowing us to triangulate and better locate the source object. 

Harmonic workshops consist of two types: brainstorming and “skunk works.”

In brainstorming huddles, teams break down and understand the problem, explore the possibilities and formulate the potential of this new project. We invite clients to attend workshops and be part of the process.

Skunkworks workshops happen only after the problem is understood. Here, participants devise various options for solving the identified problem. Possibilities must be put to the test, challenged, and revised until the best workable solution emerges.

The Assembly Phase

Once the problem and solution have been defined, it’s time to plan a strategy and gather the necessary resources: tools and teams.

Pre-production code comments:
- Clarify timelines/deadlines.
- Agree on cash flow speed.
- Identify ROI opportunites and target audience.
- Leave room for future phases/sequels
- Don't skimp on pre-production planning and workshops! You'll save time and money and ensure your project meets it's potential.

The Production Phase

After defining the problem, developing a plan, and gathering the resources, it’s time for production to begin.

A few paradigms help keep production moving: boundaries, urgency, and drive.  

  • Boundaries represent the parameters of a project, like restrictions, variables, and immutable facts. These boundaries are instituted via consistent messaging and training for team members and clients.  
  • Urgency comes from the client’s needs. Since each project represents an opportunity for clients, delays can mean lost time and revenue. So a project needs to be completed within a realistic timeframe: one that balances “get it done right” with “get it done.” Projects could extend indefinitely by chasing perfection. So rather than chase perfection, it’s best to chase functionality.
  • Finally, drive, though similar to urgency, is more internal than external. It stems from emotional investment, creative process, and the personal satisfaction of creativity. Skilled project managers work diligently to foster environments that support drive.

One way to encourage drive is to make processes simple and bureaucracy free. Overly complex systems and processes stifle creativity and aren’t sustainable long term.  

Pre-production code comments:
- Urgency = Path and Cadence, defined with the client
- Good communication smooths out changes and makes space for opportunities
- Early, incomplete wins can be more important than waiting for a complete solution
- Drive = Burn Rate, not everyone prefers a fast pace
- Production is about choosing the right path and cadence.

Post-Production

In the post-production phase of project management, the product is ready to implement, and it’s time to train the clients.

It’s in the post-production phase that documenting the creative process yields results.  Discussing and recording what works well and what challenges surface provides opportunities for growth and improvement.  Not only for the current project, but also future software development project management opportunities.

Even though the product is delivered, the project management process continues. Product maintenance, feedback loops, and growth opportunities are all vital to the ongoing project management effort.

In essence, project management teams should always consider the “what’s next?”   Projects bring people together to solve problems, which builds relationships and opportunities to solve more problems. Think of product delivery not as the end but as a new beginning that reframes possibilities for “what’s next?”

Post-production code comments: 
- Solid documentation aids adoption. - It’s not just about delivery—be sure the users are sold on the solution too.
- Don't underestimate the importance of a strong Post-Production phase!

Conclusion

Defining software development project management pays dividends. By identifying the goals for each phase, teams solve problems more efficiently. In addition, focusing on one aspect at a time facilitates thorough thinking and problem-solving. 

Finally, new processes must become new cultural norms in the organization. It simply becomes a “this is what we do” mantra.  

And what else could you ask for in a group of people committed to delivering consistently high-quality projects?  

Let's Chat

Are you ready to write the next chapter of your story? We're ready to help you tell it.

Get in Touch

Obstacles to Opportunities: The Software
Developer Problem-Solving Mindset


Reframing problems as opportunities can open doors to incredible breakthroughs and better software.

The word “problem” has negative connotations. We see problems as obstacles, setbacks, or
annoyances. A problem child is a source of worry. A problem area is a source of insecurity. And
we’re quick to excuse ourselves from responsibility for anything that is “not my
problem.”

But there is a growing number of companies who are casting problems in a new light. Rather
than resisting or running away from problems, these companies are embracing them—even
cherishing them.

Kiichiro Toyoda, the founder of Toyota Motor Corporation, once said, “Every defect is a treasure,
if the company can uncover its cause and work to prevent it across the corporation.” In his
worldview, problems were worth celebrating if they led to large-scale improvements.

Solving even a minor hiccup could reap significant rewards when compounded across a
massive company like Toyota.

Software: a problem solver’s problem solver

Claris, formerly FileMaker, once famously branded itself as “the problem solver’s problem solver.” They reflect appreciation for the term in the naming of products like a software bundle called the Claris Problem Solvers Circle.

Even Marie Kondo, whose signature approach to clutter-busting led to massive commercial
success, has said, “I love a mess!” She embraces the very thing her method promises to
vanquish, because she sees potential rather than pain.

This attitude is exactly what makes excellent software development companies stand out in a
sea of mediocre ones. Great software engineers and developers love investigating the nuances
and puzzles of a problem—and designing a solution that exceeds the client’s wildest dreams.

They see every problem as an opportunity, a way to do things better.

You don’t have to be a software developer, Marie Kondo, or the CEO of a massive car company
to be a problem optimist. Here are three good problem-solving skills you can start practicing
today in your mission to become a master problem solver.

Gather anecdotal data (from humans).

Software developers understand that people are at the center of everything they do. That’s why
the problem-solving process always starts there. After all, the computer is not their client. The
people are. Discovering and understanding their wants and needs is the first and most important
step.

Talk directly to the people involved in the problem. Ask them lots of questions about their
processes, what they’re experiencing, what’s frustrating them, and what they need. If possible,
ask them to walk you through every step, so you can see it with your own eyes.

Your goal here is to understand the many nuances of the problem. Human beings can reveal
important details that can’t be found in the raw data. One of those details might be the key to
finding a solution.

Software developers don’t stop after talking to just one or two people. They understand that the
real magic happens when they can connect with every single person whose work is connected
to the problem. Each person gives them a few more puzzle pieces—and a much broader
perspective.

Understanding the problem from many viewpoints gives you a unique perspective
that your client may not have. When you understand the entire process, you can think more
holistically about a working solution.

Gather objective data.

This skill will look a little different depending on the context, but the gist is the same: This is
where you dig into the numbers. For software developers, this means pulling user records, bug
reports, and other reports from the program to search for anomalies. By matching this
information to what they’re hearing from the client, they can pinpoint the exact cause of a
problem.

The data may reveal an easy solution, such a poorly configured setting or simple user error. It
may uncover a large-scale issue—or prove that the program being used simply isn’t the right fit.
Regardless, this step backs up your anecdotal evidence with hard data. You
need both to develop a complete understanding of what’s going on.

Think bigger.

So, there are times when all you need is a quick fix or an easy swap. The software developer problem-solving mindset is wide open to the possibility of bugs and simple issues. But they’re also open to the possibility of a much bigger problem: That the program their client truly needs doesn’t even exist .

Although software developers love building that perfect bespoke solution themselves, they must temper their zeal knowing that the best solution is always what’s best for the client. And this could mean a low code solution that optimizes an existing software package.

If you want to soar past your competition and be truly great, you need to think beyond band-aid
solutions and simple fixes. You need a sharp eye for the bigger picture, the greater opportunity,
the solution that everyone else dismissed as impossible.

Our interview questions for hiring a software development company will help you figure out
the right fit, but remember…

Good enough isn’t good enough.

Good software developers solve business process problems. For the great software developer problem-solving is a way of forging new paths by discovering new opportunities.

Harmonic is fueled by an insatiable desire to create software experiences that people genuinely
love. We deliver programs that make every process easier and every day better for our clients.
We never settle for half-baked solutions, and we’re always looking for innovative ways to keep
you moving forward.

Got a thorny business problem? We’d love to hear about it.

Let's Chat

Are you ready to write the next chapter of your story? We're ready to help you tell it.

Get in Touch