By: Scott L. Bain
A developer was working for a large financial company. The company leaders had an idea for a new product that would allow their customers to participate in foreign stock exchanges without having to stay up all night to time their transactions.
There would be many things to develop. A website that allowed customers to enter buy, sell, limit, and margin orders throughout the day to be transacted later when the foreign markets were open. A database would store all these accumulated transactions. Marketing would have to come up with a plan to promote this new product. Also a component, running on the server, would trigger at midnight to access a web service and commit these transactions as a batch.
The developer in question was assigned to create that timed component. The requirements seemed rather simple: The component would run on the main server and watch the system clock. At midnight it would activate, retrieve all the transactions that had been stored throughout the day, open a connection to the external service, commit the transactions in the order they were entered, receive a confirmation code from the service, and write a log entry into the company’s daily activity log that included that code.
They knew how to open that web service connection, what the correct logic was to “commit” a transaction, and how to access the company’s logging API. Of course, they knew was “midnight” was. They met with the database administrator to learn the exact nature of the SQL table that would hold the transactions and what key to use to retrieve them in order. All of this seemed relatively familiar and straightforward and so they gave a low estimate on time and effort needed to get the work done.
Indeed, they got the component finished well within that time frame and checked the code in. The website and marketing were still in development and so they moved on to other work.
A few weeks later, the rollout of this new service was scheduled for a Monday. The day arrived and the product launched. It was immediately popular; many transactions were entered all throughout the day and everyone was enthusiastic about the product. The developer went home at the end of the day confident that the component would trigger at midnight and process the orders.
In the wee hours of the morning, they received a text. Disaster occurred; everyone was being called into the office. None of the transactions had gone through and they were anticipating many unhappy customers, perhaps even some legal action taken against the company. The developer went into work feeling a sense of puzzled dread.
What had gone wrong?
The transaction batch did not commit on time. It was too late. An SEC rule stated that if not every transaction was committed then none of them could be as a matter of fairness, so the external service had rejected the entire batch. Massive financial implications were the result.
This developer was relating this story to me a couple of years later. I knew this person because they had been a student in several of my courses and in them had studied design, analysis, and testing.
“I didn’t know there was a deadline, a window past which the transaction would fail,” they said.
“An unasked question; that’s often the problem,” I replied.
“Sure,” they said, “but then I realized something. Even if I had known what that window was, I had accepted the requirement that the batch commit had to happen at midnight. At midnight. Nothing can happen at midnight. Midnight is an infinitely short period of time and computers are not infinitely fast, and neither are internet connections. Once it is midnight, it is immediately after midnight, right? So what did the requirement actually mean? By midnight? Then how long before midnight should or can I start? Starting at midnight? Then how long do I have? Also, this SEC regulation about all-or-nothing was something I had no idea about.”
“It sounds like this was not your fault,” I said.
“I guess not,” they replied, “but I realize that now, today, the way I work would have prevented this. Today I would be driving everything from tests and the tests themselves would force me to ask the questions I didn’t. The acceptance tests would make me ask ‘how will I know if I’ve failed?’ because I would need to start with a failing test. Also, I would have realized the SEC was a stakeholder to my work and I would have included someone who understood their perspective. The unit tests would force me to think carefully about the design of the component itself so I could do things like test it without having to execute the test at midnight in my pajamas.”
“Separation of concerns,” I said.
They smiled. “Exactly. I now know how to achieve that without overcomplicating my designs. But the real crux here was the fact that I didn’t understand what the requirements really meant, because the communication and collaboration had failed. I lost that job as a result.”
This is not uncommon, unfortunately. Communication, especially between technical and non-technical people is extremely unreliable. Even when everyone intends well, there are too many mismatches among perspectives and too many questions that are missed.
Acceptance Test-Driven Development (ATDD) seeks to address this problem in a fundamental and comprehensive way. How can we achieve a complete, meaningful, shared view of the product that is being proposed? How can we record the results of the collaboration in a way that can be validated against the actual work as it is completed? How will we know when we’ve succeeded? How will we know when we’ve failed?
ATDD is a framework for highly effective collaboration across all parts of an organization. It produces tests, but is not a testing activity. It is a way to ensure that a product’s requirements are fully understood, including everyone’s perspectives.
It is not a difficult framework, but it is essential if you want to ensure that everyone is on the same page and that the work to be done will be in complete alignment with the business value that drives it. It is something that everyone needs to know how to do.
Join me at PMI Training 17-18 April for NEW! Acceptance Test-Driven Development: Improving Communication, Empowering Collaboration, and Creating a Shared Specification for New Products with Scott Bain (pmi.org).
Interested in learning more about trainings specifically developed by project management experts for project managers in a small group setting? Check out the PMI Training website for upcoming offerings.
By: Carlene Szostak
Hybrid? Virtual? Face-to-face? We do 'em all!
The rise of remote work has caused a dramatic shift in how we collaborate and stay connected with our teams. With so many of us now working differently than ever before, it's essential to have the right tools and strategies to ensure everyone stays productive and connected. The question one must ask is, "How do you know how to choose?"
In this blog, we'll touch on a few of the best tools and strategies to ensure that you and your team can work both efficiently and effectively from wherever you are. So, what's the solution?
The short answer is C.A.T.
No, not the feline sort, but rather three distinct and needed steps for connectivity and productivity. First, there is "C" for celebration. Let me start with the end in mind. When speaking of celebration, it means something different to everyone.
Some team leaders might say that the success of a project well done should be celebration enough. This may have been true 40 years ago, but now generations matter. It has been learned that the younger your team demographics, the more expectation to celebrate. Big or small, a celebration is an expected part of the new normal. If you still need to make the time to celebrate, join us to learn some of the best practices.
Let's move to the letter "A." Assessing. Now that we have been virtual for a while, spend a few minutes assessing the tools selected by the company. Does it meet or exceed your needs? If so, great, don't change a thing. If it is difficult to use or has limitations, the chances of changing it might be slim unless you are the decision maker but know that you can enhance the tool with outside apps (assuming H.R. approves). Jack Box and Kahoot! are just a few app activities to help with team engagement. Integrate these tools within online meetings using Microsoft Teams, Zoom, GoToMeeting, etc., or create custom sessions around them.
What about fun? Try to build fun into meetings and brainstorming sessions as often as possible. These virtual events can be used to both collaborate and build camaraderie among team members. Assigning team members unique roles in meetings help too, such as assigning one person to facilitate the meeting, one person to note key points, etc. Finally, check in with team members frequently, even if it's simply a quick chat between formal meetings, so everyone feels heard and seen in the remote environment.
To get the most out of these meetings, it's important to ask questions that allow team members to share more than just task updates. Questions can include things like, "What's been your greatest accomplishment since we last spoke?" or "What challenges have you faced lately?" Asking these questions can help team members open up and ensure everyone stays connected despite being in different offices. Scheduling regular and consistent check-ins also give teams structure and keep them organized, which helps ensure tasks remain on track. Keep an open communication policy so any queries or concerns can be addressed quickly. Furthermore, give your team autonomy over how they plan and carry out tasks instead of micromanaging them. This will help create an environment of trust and collaboration between team members.
Mix it up. Not all teams need to be together all the time. Look at your world. Is there a natural break that will allow others to work together? Possibly, a sliver of a project that touches someone else. Or partner with others to create a new project paradigm.
The final letter is "T" for talk. Talk to me...no, really talk to me. The most significant barrier identified over the last 3+ years is associate retention. Employee satisfaction decreases significantly when it is limited or has no consistent face-to-face interactions. It could be as simple as associates feeling that out of sight is out of mind. Or you may be dealing with more complex issues like cultural differences, or lack of consistent collaboration.
The challenges are real. So, what do you do? Take a breath, devote specific time, and listen. This means providing communication channels where team members can feel comfortable expressing themselves and speaking up when necessary. Have clear communication guidelines such as an agreed-upon way to raise issues and resolve them quickly, decide who should take the lead on tasks, etc. Everyone should know how decisions will be made, who will make them, and how frequently meetings will occur.
Not to be overlooked is to establish ways to socialize with one another virtually — virtual coffee chats, team happy hours — so there can be some level of human connection among team members. Give team members guidance on how best to communicate their ideas online.
C.A.T. is only the tip of the connected and productive iceberg. Interested in learning more and furthering the dialogue? Join me at the upcoming PMI Training 2023 events for Critical Tools and Strategies for Virtual Teams scheduled July in Boston, September Virtual, & October in Atlanta. We will cover steps to ensure sustainable success with virtual teams. We will discuss how to set expectations, use effective communication tools, and take a deeper dive into recognizing individual contributions.
By April Callis Birchmeier CSP, CCMP™, PMP®
Project management professionals are a unique breed. Organized, focused and process driven, project professionals have tremendous impact on organizations and their people. Project management professionals create order and accountability to move organizations forward. Yet, project professionals often overlook the need for organizational change management to ensure successful stakeholder adoption. Enhancing the capabilities of project managers by adding an organizational change management framework to their skillset provides a more comprehensive and human-centric approach to projects and change initiatives.
The goal of organizational change management is to identify, plan, and execute stakeholder activities to achieve the benefit of the change through stakeholder adoption. In other words, if people accept and use the change being implemented, the benefit expected from change is realized. Organizational change management used to be considered a “nice-to-have” addition to a project. In our current unending and compounding change environment organizational change management is a “must-have” for success. Stakeholders, Sponsors and End-users are people who need information and emotional support while adopting new physical spaces, behaviors, and processes.
My experience as a PMP and certified change management professional (CCMP) involved with change initiatives involving technology and programs was enlightening. I wore both the PMP and CCMP hats while implementing projects and discovered a disconnect when discussing change activities with my project management colleagues. Technical milestones seemed to be considered more important people focused milestones. Test cases and outcomes were considered more critical results of metrics measuring what people knew about and felt about the change. Organizational change management was often viewed with suspicion and seemed unclear.
In response, I developed a 5-step framework, the READY, Set, Change! framework, which aligns Project Plan phases and Change Management Plan stages in a way to simplify integration and accelerate change.
The second step of this 5-step framework is to Engage Leaders while creating change strategy. Leaders must share the vision, provide direction, and reassure people when times are tough. If leaders are not engaged, they cannot lead change effectively. If leaders do not engage because they lack the ability to prioritize and communicate essential action, they lose the leverage and loyalty of those around them. In our current state of unexpected, unorganized, and unpredictable change we need engaged leaders to lead through the unknown. As each news cycle seems to cascade despair it’s imperative for leaders of projects, changes, and people to step forward, engage and lead.
Project management professionals and change management professionals can assist organizations as they adapt to new circumstances and adopt new technology, structure, or programs. Aligning and integrating plans, norms, and status by using this 5-step framework will provide a clear and simpler path for individuals and organizations to navigate adoption in the midst of unending change.
Find out more during my two-day PMI Training course Ready, Set, Change!
For more on my other PMI Training course, please visit: Creating and Sustaining a Positive Work Team: Breaking the 7 Habits of Negativity and Other Secrets of Getting Along!
I look forward to seeing you at an upcoming PMI Training!