Do you need to be a system expert to successfully implement it?

mythical_unicornI have often been asked to step into projects where the industry or software are unfamiliar to me. More times than not, the project team has been hesitant at first. A common sentiment towards project managers of many technical resources I’ve encountered is disdain. After a while, the team gets used to working with me and figures out how I can help. In many cases, I’ve changed the opinions of project managers for these technical resources. But why is that? What is it about my approach to managing data and software implementation projects that enables me to step into any project at almost any stage and help deliver results?

  • Willingness to learn – I am willing to learn. I know when to shut up & listen, take notes and ask later. I try to read the materials I’m provided, and if relevant, find external sources. I follow up with questions and try to make connections but acknowledging that I could have missed something.
  • General understanding of technology – I have a fairly good understanding of software development, database, data, workflow, process methodologies that gives me a foundation of understanding.
  • Resources – I’ve been lucky enough to have worked or socialized with a number of very smart people across a broad range of disciplines. I’m able to engage with my network on an as needed basis.
  • Know what you don’t know – It is imperative that I admit when I don’t know something. I need to engage with the right people at the right time, but yet recognize the dynamics of the situation and adapt accordingly.

I don’t think you do need to be a system expert to successfully manage an implementation project. I think you can develop enough of what you need to know to get involved to the extent you can. You’ll obviously need to adjust your level of engagement, and rely on your project team for the software expertise. You also need to know enough about the project and system to call bullshit when you need to.

Do Project Managers still deliver value in 2017?

“Between agile and automation, project management is going away. There may be jobs with that title but the work will be very different.” — Kevin Brennan

I saw the above quote today on Twitter. Just like a couple of weeks ago, I was totally taken aback. Agile and automation doesn’t take away what a really good project manager can do. These are methodologies and tools that a project manager can use to deliver projects better. When I asked my husband, a software engineer, what he thought of the quote, he suggested that maybe these would drive the non-technical project managers into extinction.

I guess it all really begs the question of what does or what should a good project manager do? I’ve been asked to help train someone on how I run implementation projects, so I guess I should start putting to paper the criteria around what I do and why it allows me to deliver on implementation projects. I will start by saying that all project managers are not equal. This is a big part of the reason that many technical resources are so critical of the PMO and project managers. They don’t see the value and often feel that the project manager just adds work to the technical resources.

Above anything else, a good project manager should remove obstacles from the team and the project. This might be resource alignment, or a dependency from another department, or almost anything. Status meetings, project documentation and stakeholder management are merely manifestations of this work. The catch here is that the project manager needs to be technical enough to fully understand the nature of technical issues, and work with resources on getting them what they need to resolve them.

Second, a good project manager has the analytics wherewithal to assist business and technical resources. On the business side, the project manager can help bridge that gap between that user story or business requirement to the details of how functionality works, to ultimately helping coordinate the validation efforts further offloading work from the technical project team. On the technical side, the project manager with strong analytic foundations can step in at any point from requirement interpretation to design to validation/QA.

natural curiosity can also differentiate a good project manager. The ability to ask questions and drill into the details yields a great project management dividends. It shows your stakeholders and project team that your interested in what they have to say, and is instrumental in the trust building required to successfully deliver. Very few projects run without hitches. The desire to ask why can broaden the range of solutions, ultimately resulting in a successful implementation despite the twists and turns.

A good project manager will balance tenacity with adaptation. Too much happens too quickly these days for project managers to stagnate within in a set methodology, toolset or process. We too often see project managers so set in their ways, unfortunately often following the PMI rulebook to its smallest minutia. The moment the project offsets the delicate balance (of the PM), the delivery becomes jeopardized. Come to the table with your preferred methodology and toolkit, but be willing to be flexible during the project implementation. Ultimately, the project manager will be more successful.

At the end of the day, I don’t think being a good project manager is really difficult. I think a shift in mindset and the ability to constantly learn can make you successful. I’ll continue to do what I do and deliver projects. In the meantime, I’ll leave you with this description of a project manager, sent to me by a former coworker. He hadn’t been a fan of project managers until he had the opportunity to work with me on a project. In addition to the several job referrals, he sends me funny project management memes.

pm-meme

 

Whose job is QA?

not-my-problem-meme

Tribute to Gene Wilder as Willy Wonka – it’s not my problem meme

developer.com defines the QA (quality assurance) role as “the role responsible for guaranteeing a level of quality for the end client. It’s about contributing to the quality of the final product.” I really like this definition as it does 3 critical things. First, it highlights the importance of the client. A product that works as designs, but doesn’t solve the customer problem fails to address the crux of software development, giving people an application they need or want. Second, it directly states that the QA role contributes to the quality of the final product. Just as developers contribute to the building of the product, and project managers contribute to getting the project done. Last, this definition removes the perception that QA is the responsibility of a single person. And this, my friends, is the topic of today’s post.

Our job as the project team is to build a solution that solves a customer problem or need. I agree that sometimes you are building a solution that customers don’t know they need yet, but unless that need or problem exists, there’s no point in building it. From the very beginning of development, we should all be working with this goal in mind. And if everyone is focused on the same goal, are we then inherently focused on QA? I think so.

My role as project manager puts me directly in front of the customer. This means that I need to be familiar with the solution, in order to speak intelligibly to customers. I tend to do the “final test” of replicating the steps provided by the customer and using the output as proof that the issue is resolved. Unfortunately, there have been too many times where I’m delivered a solution that doesn’t solve the problem or clearly doesn’t yield the “correct” results. Or, if I report a more general issue about performance, I get very tactical response, rather than considering the customer experience.

So what happens? Why does the solution I’m provided not solve the customer problem? Is it because the developer didn’t understand? didn’t care? More likely, it is the developer did some initial investigation and solved what they thought was the problem but didn’t walk through the steps to see it from the customer perspective and therefore missed a critical step.

I’m not advocating for or implying that I wouldn’t or shouldn’t still have the final sign off not the solution, before delivering it to the customer. I’m suggesting that each person who has touched the solution before getting to me should understand the problem we are trying to solve, and be focused on delivering a quality solution. Each developer should be incorporating regular quality checks into their own development. I never want to hear that “my team doesn’t have a QA person” or “it passed my acceptance test.” If the team members understand the goal, and view QA as a part of their job, the customer solution is bound to be better.

 

A Framework & Critical Decisions for Implementing a Data Integration Project

I have managed quite a few data integration projects. These are projects defined by the development of software and business projects that help organizations move data between systems and better understand the data they have. While each one is different in data sources, and project owners, overall my approach remains the same. I adapt the tools, timelines, and specific tasks depending on the organization and systems involved. Today, I’m reviewing the framework and critical decisions I rely on.

At it’s most basic level, data implementation projects have 4 core phases: Discovery & Requirements, Consensus/Sign Off, Development & Handoff.

  1. Discovery & Requirements – This first phase is most critical. It is at this point that you truly determine all that you need to know to design a solution.
    1. What business problem are you trying to solve? This lays the groundwork for everything else. Without knowing this information, it would be difficult to solve the right problem, or determine the right metrics by which to measure your success.
    2. Where is the data to solve the business problem? Now that you know what problem you are trying to solve, you need to understand where the data resides. This might be 1 source system or integrating 5 source systems. Are the systems internal or external to the organization? Does it only reside in someone’s head? Make sure to document the owners, stakeholders & gatekeepers. Your design could vary significantly based on what you find.
    3. What is the data format? This information and subsequent conversation should drive additional requirements around software, security, encryption and data transformations (AKA business rules).
    4. How is the data accessed? This should actually help you answer how should the data be accessed. Choose the best tool for the job based on the requirements documented in the prior conversations.
    5. What needs to happen to the data? Sometimes a project is as simple as making data sourced from one system available in part, or in entirety to another system. Often times, it doesn’t align exactly and business rules must be applied before it can be leveraged by other systems.
    6. How often is the data needed? And what triggers the transfer? Does one system push the data? Does the other system pull it? Is this an infrequent process? Or something needed real-time? or is there a triggering event?
    7. Which software is best? It’s finally time to start thinking about the tools, languages, & frameworks, etc. Also, make sure to include where the code resides & how security policies impact integration.
    8. How does feedback work? At a minimum, you need to consider how errors & exceptions are handled. In more complex implementations, data will flow both ways.
  2. Consensus/Sign Off – Document everything you learned and decided in the Discovery & Requirements phase. Everything from the high level problem to the detailed technical decisions that were made. Please, please get sign off from all the relevant stakeholders.
  3. Development – Development & validation go hand in hand.
    1. How will your results be measured? Write your test plans before you begin development. These are based on all the decisions & requirements documented in phase 1. You also want to do periodic data quality checks with the business stakeholders throughout the development process. There are ALWAYS things you find while engaging the business stakeholders, using real data, that you would not find on your own.
  4. Handoff – This is not simply a matter of flipping a switch and transferring ownership. This phase includes documentation, knowledge transfer during transition of ownership, and end-user training (if applicable). If not already, make sure the project artifacts are complete, compiled and made available to the organization. Often times, data integration projects require a period of hypercare where developers work closely with support people, and both the project implementation team and the support team work closely with the end-users, to make sure there are no gaps in knowledge.

Ultimately, the goal of data integration projects is information. There is some set of data in one system that could be made more useful or help derive better insights if connected with data from other systems.

Let me know if you think I’m missing any critical decisions in the process.

A infographic of this methodology is available in the case studies section of the Digital Ambit site.