Part 3 Management and Methodologies - 3.1 Orchestrating

Part 3 Management and Methodologies

3.1 Orchestrating

51. Readiness to Deliver

Long before I started playing bass guitar in a budding professional band, my friends and I aspired to perform on stage.  We were all teenagers and looking forward to perform in a local event.  We came up with a name for our band, collected funds and started hunting for additional players because our band was short of a keyboard player and a lead guitarist.   We had no other option but to hire them to play with us on the day of the event.  Considering the capabilities and choices of those two players, we had to compromise on the list of songs.  As a team, we lacked practice.  Our program started and we did all we can to perform. We had great intentions. We were sincere.  Everyone in our team was skilled.  We wanted to put up a great show but we could not because of obvious reasons.  We could not perform as one team.  We could not synchronize.  At the end of the day, we did not deliver the right thing to meet the expectations of our audience.

Several years later, with more than ten years in IT industry, I got an opportunity to lead a software project.  This project involved development of a large commercial application.  I was one of the two leads. We had a few months to put together a team for this project.  We had less than ten days to start the project.  We were preparing for project kick-off knowing that we were short of a project manager and a business analyst.  Our preference was to get two insiders to join our team. Our backup plan was to contract a project manager and a business analyst from a third party vendor.  We had to go with our backup plan a week before our project started, as we had no other option.  That is how we started our project.  As days went by, we observed a great level of disconnect among team members. The work style of our project manager and business analyst were different as they came from a different organization. As a team, we needed more than a month or two to figure out ways to come together, agree or disagree and deliver results.  During the initial months, we delivered sub-optimal results because we did not synchronize well at the beginning.  We could not perform as one team. There were days of silence among team members. There were delays, issues and firefighting to make it happen.  After three months, we involved an expert to help us improve and reformed the team structure.  It took us another two or three months to deliver better results.

Whether it is an orchestra or a software project team, we need skilled team members.  In addition, we need team members who can sequence and synchronize their interactions and work patterns during the initial days of the project so that they can perform as one team.

Are you the torchbearer of your team? Is your team ready to deliver?

*-*-*-*-*

52. Thinking beyond Stakeholders

Project sponsors, customers, end users, project team members, senior management, members of support functions, etc. are the stakeholders of projects.   Are they equally significant? Alternatively, do you focus more on your senior management and take care of their needs first?  Who comes first? Do you put all your stakeholders in the same platform and give them the same level of importance?
Let us think beyond stakeholders. What is important to our projects? Success! Yes. That is an irrefutable answer!  Success is important.  Who are our success-critical stakeholders?  “A project will succeed if and only if it makes winners of its success-critical stakeholders such as customers, project sponsors, and team members”, says Barry Boehm.

You cannot ignore your success-critical stakeholders. Your customers, project sponsors and team members are among them.  Make them win, your project will succeed.   Ignore them or make them lose, your project will fail!

Stakeholder management is more than identifying, understanding and managing stakeholders. It is about knowing all your success-critical stakeholders and making them win! It is about knowing the rest and catering to their needs. You cannot put them on the same pedestal if you want success in your project. Meanwhile you cannot afford to ignore any of your stakeholders if you want to succeed in your project.

*-*-*-*-*

53. Creating an Impressive and Compulsive Vision

Creating a vision is essential when you want to deliver a product or a project.  The vision you carry as a team needs to be impressive and compulsive.  It needs to be a shared vision known to everyone involved in the process of making it happen.

Why do we need a vision? Why not set goals? And why not just perform our daily work to get things done? Isn’t it vision a corporate buzzword?  Well, establishing a shared vision is necessary at corporate level as well as project level.  Let me quote a Japanese proverb here. It says, ‘Vision without action is a daydream. Action without vision is a nightmare.’

When you have an impressive and compulsive vision for your product or project, your team members remember it. It helps all of you set unified goals to realize the vision.  It enables you measure performance, avoid conflicts and move towards the final target.  Whether you are a project manager, an architect, a technical leader, a developer, a business analyst, or a test engineer, your goals tend towards the shared vision. 

Why does it have to be impressive and compulsive?  Impressive is something that is exciting, inspiring, moving or remarkable.  Compulsive is something that is gripping. Why not an impressive and compulsive vision?  Remember the Japanese proverb!

Involve your team in creating a vision statement for your project. Let them know who the customers are. Let them know the major focus areas are.  Let them know the impact of project success. Let them know the scope.  Articulate the project vision.  Review it. Cut down the unwanted and create a crisp vision statement that does not exceed three to five sentences.  Make sure that it is simple, memorable and inclusive.

*-*-*-*-*

54. Methodologies: What is Right?

For software development, maintenance, testing and production support - or the entire Software Development Lifecycle, we have several methodologies such as waterfall, iterative, spiral, SSAD (Structured System Analysis and Design), RAD (Rapid Application Development), RUP (Rational Unified Process), and Agile Methods (XP, Scrum, FDD (Feature Driven Development), DSDM (Dynamic Systems Development Method), etc.

What is the right methodology for your project? To answer this question, obviously there are two prerequisites.  One, you must identify possible choices. Two, you must be knowledgeable or have experts who can help you in making a decision.  Without these prerequisites, any discussion on methodologies is nothing but a waste of time.  Therefore, the first step is to learn methodologies.  According to Scott Ambler, the author of ‘Disciplined Agile Delivery’, successful software development requires a hybrid approach.

How can we derive a hybrid approach? In his paper ‘The use of systems development methodologies in practice: a field study’, B. Fitzgerald observes that the ability to select the right methodology, processes, and practices comes with experience.  Experienced team members understand that it is very important to customize methodologies and make them context-driven.  In addition, they need to understand that collaboration, focus on continuous improvement and balancing discipline and evolutionary paradigms such as Agile are necessary.

Let us make engineers at all levels understand that it is very important to customize methodologies and make them context-driven.   Let us nurture the culture of collaboration.  Let us improve the focus on continuous improvement.  Let us spread the realization that discipline and teamwork are essential.
It is hard to build software applications or products, which can stay long and satisfy customers. However, creating such applications or products requires excellence in terms of individuals, collaboration, teamwork, focus on continuous improvement, understanding customer needs and several such factors.

*-*-*-*-*

55. Bugzilla Story

Bugzilla is a well-known open-source bug tracking system used by thousands of organizations and millions of professionals all over the world.   It was one of the first products released when Mozilla project was announced in 1998 and mozzila.org came online.  The Mozilla project uses a community-based approach to create world-class open source software and to develop new types of collaborative activities.

Who created the original version of Bugzilla? What was the team size? Which methodology did they follow? The story of Bugzilla will give you answers to all these questions.

Netscape Communications Corporation in mid 90s’ contributed three key technologies to the world. First, the internet browser popularly known as Netscape Navigator. The next advanced version was known as Netscape Communicator.  Second, Secure Sockets Layer Protocol (SSL) to enable secure online communication.  SSL propelled online banking and several other web applications that required high level of security and encryption to protect confidentiality of data.   Third, Java Script, the popular language used to write browser side scripts. 

The product engineering team of Netscape Navigator was a niche team of ten top-notch techies. They were busy building new products and innovative tools for the internet world. Sometime during 1994-95, in order to track and manage bugs reported by their testing team, they needed a tool. They needed a simple browser based tool to begin with.  They did not find a suitable tool in the market and they wanted to build it. They could not afford to seek help from their IT team in building this tool - that would have taken them through at least a two-month cycle involving requirement gathering, design, coding, testing and implementation.  They decided to do it themselves.  One or two developers from the core team created a bug-tracking tool with bare minimum features in less than ten days.  All they needed was a minimum viable product. They named it BugSplat.  They handed it over to their IT team for regular maintenance.

In 1997-98, one of their focus areas was the upcoming Mozilla project.  The vision of Mozilla project was to create a global community of technologists, thinkers and builders working together to keep the Internet alive and accessible, so people worldwide can be informed contributors and creators of the Web. They wanted to reengineer their bug tracking system and make it open-source.  They considered doing this because their bug tracking system was unique, special and much needed by several developers and testers all over the world. 

Terry Weissman, member of the core product team, took charge of that situation.  He created Bugzilla in one week and released it to the world. It was one among the first products that went online as part of Mozilla project.

I was part of the database administration team in Netscape from 1995 to 1999.  Though I remembered this story to some extent, I wanted to check with Terry Weissman.  

Here is what Terry wrote to me when I approached him in January 2014 to know some of the finer details of the Bugzilla story.

“My recollection is that we had asked IT to make a publicly-visible bug system, and they said "sure, no problem" -- and then they took months and months and little progress got made.  I don't remember if they didn't give an estimate of when they would be done, or if they just miserably failed to meet their estimate.  I just remember the frustration of going to interminable meetings and things seeming to go nowhere.

Finally, I took matters into my own hands and wrote the original version of Bugzilla.  Yes, it only took about a week.  It was only me.

My great advantage here was that I had already worked with a bug system written in TCL.  This was BugSplat, an internal Netscape tool. BugSplat was much simpler and used your browser.  I didn't write BugSplat, but I had learned it.  So, I was very familiar with its ways of doing things.  My main learning curve for that week was learning enough MySQL to get things going.  But all the web stuff was straightforward and easy.

I don't really know what was going on inside the IT department and why things were so slow.  I found a way to build one that was well inside mine.”

Some of the well-known organizations such as AT&T, NASA, Facebook, New York Times, AMD and Yahoo use Bugzilla. Do you?

What is your take on this story? Extraordinary. Isn't it?

*-*-*-*-*

56. Dead Snakes

This is not about snakes or other animals. This is about what we do with problems or issues in project organizations or large programs.  Problems or issues take up most of our time.  We engage in either formal discussions or informal gossips. Sometimes, we continue to go over past issues and discuss. We do not respect the lessons learned and move forward.

Jim Barksdale, the ex-CEO of Netscape, in his first executive staff meeting said,

“We have three rules at Netscape. The first rule. When you see a snake, don’t call committees, don’t call your buddies, don’t get a meeting together; just kill the snake.”  

By this he meant, when you see a problem to be fixed, just go ahead and fix it.

“The second rule is, don’t go back and play with dead snakes.”

By this he meant, when a problem has been solved, learn and move forward; do not revisit the problem.

“The third rule is all opportunities start out looking like snakes. So look at problems as opportunities.”

The third rule is simple and self-explanatory.

Software projects involve frequent communication and coordination among team members.  

Remember and share Jim’s three rules with your team.  Make it a part of your culture.

*-*-*-*-*

57. Why do Projects Fail?

We read about project failures now and then. Here are some failures that happened in recent years.

‘California sues SAP over failed payroll software project’ is the headline of an article by COMPUTERWORLD Magazine, Nov 2013. According to this article, more than $250 million was spent on the system called MyCalPAYS and this project dates back to 2005.

‘Senators to Probe Air Force’s $1 Billion Failed Software’ is a Bloomberg article written by Tony Capaccio in January 2013. This is about a billion-plus of tax payer’s money invested in a project that eventually failed.

‘Knight Capital blames software for computer trading glitch’, an article published by USA Today is about how a technical problem in the new trading software resulted in the company sending numerous erroneous orders in 140 stocks listed in the New York Stock Exchange.  According to this article, this issue costed Knight Capital close to $440 million. This happened in August 2012.

‘Troubled HealthSMART System Finally Cancelled in Victoria Australia’ is an article by Robert N. Charette in IEEE Spectrum about the cancellation of HealthSMART system project in May 2012. This project costed Australian $550 million.

Michael Krigsman, a recognized analyst, strategy advisor, and authority on enterprise software leadership, CIO innovation, and social business claims that the cost of IT failure is more than a trillion US dollars per year.

Why do software projects fail?  There are several reasons.  According to a research report titled ‘Social and Technical Reasons for Software Project Failures’ by Capers Jones software projects fail because of one or more of five risk factors -  inaccurate estimating and planning, incorrect and optimistic status reporting, unrealistic schedule pressure, new and changing requirements during development, and inadequate quality control.   In addition to these five areas we must consider, communication and coordination, stakeholder management, expertise of team members, risk management, and transition management.

How can we detect signs of failure early in the game?  Can we do this by reading a requirements specification document?  Not certainly.  Can we do this by examining the status reports? We have tried this all the time. It has not worked!

In 2012, I went to a nearby boutique tailor to stitch a custom-made blazer.  He showed me several designs for short listing. I chose one.  He measured the garment I had purchased to check if it was sufficient.  Yes. It was. The next step was to take measures. It went on for the next several minutes. He filled an order form and agreed to deliver the blazer in ten days. And he said, “I will call you in four days to come down and check if the measures are right! We call it fitting session.”  I accepted.

I got his call in four days and went to check if my blazer was turning out to be a good fit.  Of course, it was not!  He noticed two or three adjustments to be made. But I was quiet happy. There were no surprises waiting. He did those adjustments and delivered the blazer as promised!

That fitting session helped!

In software projects, we can detect signs of failure. To do that, we need to see how working software is evolving.  Going through documents such as status reports or specifications come next.  When we come across signs of failure, we have two choices. Either we can improve the way we create software or we can stop to rethink.

Which one do we prefer? A big bang failure? Or early, fast and small failure?  Which one gives you an opportunity to bounce back, improve and deliver?

*-*-*-*-*

58. Agile Revolution

Sam appointed a construction company to build a mansion in his 2-acre land.  The principal architect worked with Sam in proposing and finalizing the architecture of Sam’s mansion which was about to be delivered in twelve months at a cost of 2 million USD.

A week after signing the deal, Sam drove by his land and found that the work had started.  During the second week, the construction firm cordoned off the site from all sides. Sam thought it was to protect the neighbors or the environment from all the noise and dirt.

Sam’s cousin looked at the designs and proposed a great idea. He said, “Sam, how about a French window on the second floor facing the road instead of a traditional balcony?”  Sam was impressed. He called the construction company.  The architect and his team of engineers met him over lunch and said, “Sam, we will deliver you what we have signed-up for in twelve months. Any changes, we will accommodate later. We will do an impact analysis for each change and provide you our estimates.”
I am sure you are wondering why anyone would construct a balcony and then demolish it to make a French window.

Sam tried to negotiate. It did not work. He canceled the deal.  That is what anyone else would do!
How do we build software and accommodate changes to software system? 

Software systems emerge. Software development is people intensive.

Sometimes on the ground, we get flustered because we perceive that Agile means different things to different people. Let us not get ruffled up! From a project delivery perspective, the meaning of Agile for us is very straightforward and it relates to agile software development and agile methods.  Agile is about delivering working software to our customers in short intervals (or iterations) in a sustainable pace while responding to changing business needs.  All said and done, working software is the true measure of progress. Working software delivered in short iterations provides for better visibility and predictability.  In addition, this enables us to fail fast and fail early.

Let me share some history on how agile revolutionized the way we deliver.  By 2000, the success of agile methods such as XP and Scrum influenced the industry. During February 2001, 17 methodology experts convened at "The Lodge" at Snowbird Ski Resort in the Wasatch mountains of Utah and wrote "The Agile Manifesto."  Gradually, the popularity of agile grew across the globe. Agile gurus and practitioners organized conferences, workshops and events to evangelize and propagate agile methodologies. Lean software development and Kanban spiced up this evolution and got adopted as best practices in agile methodologies.

Adoption of agile methods is on the rise. This trend continues to influence the way we deliver software.

*-*-*-*-*

59. Does Agility Ensure Faster Delivery?

Let us propose an agile based approach for this project. That will help us compress the schedule and include multiple releases. I don’t think waterfall approach is going to help in making a competitive proposal. We must deliver this project faster with high quality and competitive cost. In order to win, our approach has to be agile based.’ Does it sound familiar?

We hear suggestions like this more frequently than ever these days in discussions on creating competitive proposals.  These are business discussions with your senior leaders and pre-sales teams.
Let me ask. Does agility guarantee faster delivery?  Undoubtedly, yes is the only right answer we can think of to make some business sense and gain the goodwill of project sponsors but there are other answers too. It is worth discussing this to find a practical answer to this question.

Certainly, adopting an agile approach is a way to enhance visibility and predictability on project progress.  However, can you enforce an iterative schedule and scope on your project team so that you gain the advantage of compressing the overall schedule and cost of your project?  When you enforce a pre-planned schedule and scope – however well concerted it may be, you are not empowering your team to inspect, adapt and learn. This approach will lead to ‘command and control’ culture. We don’t want that to happen because that is not what agile is all about.  Is there an alternative? Yes. There is.

First, your customer and other stakeholders need to know the essence of agility and agile methods. They need to know that an agile approach can enable your team move forward, learn and make things faster provided they are given the right set of tools, infrastructure and governance support to evolve and improve from iteration to iteration. There has to be a good match of mindset and culture.

Second, the product owner or someone who is responsible to provide requirements need to believe in prioritizing user stories or features at regular intervals – and practice it. Moreover, she must be willing to let go some of the low priority features if the release timelines are critical. You cannot do without an effective product owner.

Third, there has to be continuous collaboration in terms of participation in meetings, issue resolution and product demonstrations.  Genuine feedback is essential – without this, you cannot avoid last minute surprises. For this, your product demonstrations and team retrospectives need to be effective.

Fourth, the team members need to be skilled, self-enabled and aligned to perform.  Have you ever observed how rowing happens when a team of ten or more team members attempt to sail through and win a trophy? Skills and competencies are necessary. With these, alignment is paramount too. Without alignment, the rowing boat cannot travel in the right direction at speed. This is where ‘shared vision’ comes in to play. Establishing a shared vision and aligning your team cannot be ignored at any cost.

Fifth, your governance team and customer representatives who are part of the governance team must be able to understand and appreciate technical issues and challenges in the project instead of focusing on getting as many features or user stories done in every iteration.

When you have all these - as well as many other things that I have not explicitly mentioned about, in place, you and your team will be able to maintain sustainable pace, introspect, learn and continuously improve.  That is agility. 

Does agility guarantee faster delivery? It does not guarantee faster delivery because software projects come with several variable factors and the dynamics can be complex. However, agility can lead to faster delivery when you do the right things right.

More than what you estimate and propose in a project context, focus on how you execute, enable, learn and improve.  When you do that, agility can lead to faster delivery!

*-*-*-*-*

60. DWYS and SWYD

In a team meeting with my project team, I was listening to the challenges and issues of team members.  Each team member was presenting the top 3 challenges or issues.  Nita’s turn came. She had spent about six months in our team. She was very enthusiastic and open.  She said politely, ‘I think we do not follow any processes in our team. That is the only challenge I have.’

‘Well. We do have standards, checklists etc.  Could you please be specific and tell us?’ retorted her neighbor.

Nita replied, ‘We do certain things in different ways at different times. We need to streamline have some processes in place. We don’t use our standards and checklists consistently.’

Ravi, our project lead intervened, ‘I agree with Nita. We are not consistent in our approach. We have standards and checklists. We don’t follow them regularly. Do we? I think we need to put our heads together and work on this challenge.  Let us revise our project plan and make sure that we follow it.’
Ravi’s remarks made everyone think.  Most of our team members were nodding their heads with a big yes.

After a few seconds, I appreciated Nita and Ravi and asked everyone to review and revise their project plan at regular intervals.  They agreed to read, revise and follow the plan.

SWYD stands for Say What You Do.  This is about planning and telling what you are supposed to do in your project.  This is your process definition for your project. This becomes a part of your project plan. If you have a process definition and process repository at organizational level, you create a project plan by deriving what is right for your project from organizational process repository.  The first step is to SWYD.

DWYS stands for Do What You Say. That is the next step. By doing this you follow your plan.
At regular intervals, you make course corrections by changing your plan and do what is right rather than following a rigid plan.

Do you SWYD?  Do you DWYS?  In software projects, reviews are cut-short because of reasons such as schedule pressure, unit testing is skipped because of lack of time and governance meetings are by passed because of lack of availability of governance team members.

How can we produce high quality software with inconsistent or low quality processes?

*-*-*-*-*

61. Got a Checklist?

I am sure you have.  May be it is a To-Do list. It lists all items or tasks you have on hand.  As and when you complete a task, you put a tick mark against it to indicate completion.  Making a tick mark is a positive reinforcement.

Some of you maintain a how-to list for certain complex tasks. That list helps you go through a proven sequence of steps one by one and complete the task.  I am sure you use a troubleshooting list that provides a structured approach or sequence of steps to solve a specific type of problem.

Checklists helps us ensure that we do not skip important things.  Checklists helps us ensure effectiveness. Checklists can helps us do repetitive things right all the time and make those person-independent.

You can have checklists to start a project, review the status of a project, to review a document, to review source code, and so on. Simple isn’t it?

You can increase the effectiveness and efficiency of your checklist when you make it short, specific, relevant and up-to-date.  Make it short so that it does not exceed one A4 size page.  Make it specific so that it does not have generic items such as ‘Source code should follow design principles’.    Make it appropriate to your work and do not copy the checklist of some other project and use it before making it relevant. Review and update checklists at regular intervals.

How many checklists do you have? How have you made them effective and efficient?

*-*-*-*-*

62. Why Root Cause?

Our project was running with more than three hundred open defects. Yes. Three hundred. We were three months into the project, and one month away from our first release. The quality analyst approached me and said, ‘I think we must do RCA. That will help us contain bug count.’

RCA stands for root cause analysis.  He recommended 80/20 approach.  The goal was to identify 20% of bug categories that contribute to 80% of bugs.

The technical lead of our project was critical about this suggestion. He said, ‘I understand the root cause of why you are suggesting this.  You want to demonstrate to the organization that we do RCA.  You need evidence. How is it going to help our project? Our team members are busy. They can’t sit in a one-hour meeting to do RCA.’

I smiled at him. The quality analyst was genuinely interested. He wanted to help us turn around our project by reducing the bug count. He knew that firefighting at large does not help. We need to know where to put all our energies to win the battle.

‘Why RCA?’ I asked. 

‘Because the quality analyst wants to demonstrate process compliance’ came the answer.

‘Why process compliance?’

‘Well, the organizational process model recommends certain techniques for RCA and claims that these can benefit projects.’

‘Why is it so?’

‘Because unless we know the root cause, there is no guarantee that we will take right actions.’

‘Why do we need to take right actions?’

‘Because right actions will help us spend our efforts optimally to get desired results.’

‘Do you believe in it?’

‘Yes. Let us give it a try.’

After my five whys, our tech lead agreed to organize a team meeting and our quality analyst facilitated RCA.

In our meeting, we identified 20% of bug categories that contributed to 80% of bugs. In addition, we applied ‘Five Whys’ technique to find root causes to some of the ongoing issues.  It helped!  Two weeks after our RCA and action on the ground, we could see significant improvements in defect trends.

One way to improve the success rate of projects it to find the root causes of ongoing problems or issues and improve the situation.  Finding the right cause is the first step here. Identifying the root cause helps you identify the right cause.  When you know the right cause, you can take decisions to improve and improve.

Is there a reluctance in our organization or team to practice RCA? As ‘Why’. Listen to the answer.  Probe further with more whys.  You will see right actions happening.

*-*-*-*-*

63. Lessons Learned

So, is it going to be difficult for you to deliver? This question came to me twice.  In both cases, I learned some lessons.

I was forming a team for an upcoming project.  We were short of three developers in an eight-member team.  Mathematically, we had 62.5% of our team in place but those three positions were critical positions need form the first day of the project.  I was in a meeting with my senior leadership team to appraise them on the status of various projects.  At the end of my presentation I said, ‘Our new project is starting next week. We are short of three developers. These are critical positions.’
One of the vice presidents in the room said, ‘We know we are short of resources. We have junior developers on board. They are not experienced but they are available.’

And he asked, ‘So, is it going to be difficult for you to deliver?’

I was surprised to hear this close-ended question. He was expecting either a yes or a no from me.  I responded with an obvious answer the most of us would do.  I said, ‘I think it is going to be difficult but we need to explore options. Can we get some contractors? Or find ways to make this happen? That is what I am thinking. I need some support here.’

It was a tough situation.  And it was impossible for me to say no and stop there.  I could not put my foot down.

We started the project as planned. We got three junior developers but they took two weeks to become productive. We could not spend adequate efforts to enable them. However, two of them performed very well. The third developer could not perform well. We had to find another developer to replace that position. Even though we started the project on time, it did not start right. There were delays. We had to firefight to deliver.

A year later, in a different project, my team was waiting for project requirements and preliminary designs from a customer team.  Our understanding was to have these ready at least one week before the start of the project.  As you can guess, requirements and preliminary designs were not ready as planned.

We followed up and started getting them in bits and pieces. In our first conference call, our customer wanted us to use the common source-code control system and he inquired our team about the plan for that week. He asked, ‘So, tell me. Can all developers there start coding so that I can see some code tomorrow morning?’

My technical lead said, ‘Well, the requirements and designs are raw. We need to talk to your business analysts and architect.  We have so many questions.’

‘We can do that. Does it constrain the team there from initiating the work?  Let us start coding.’

I intervened and said. ‘We need to refine the requirements and improve the designs first. That will help us initiate coding. We do not have much information to start coding.’

Then came the question.  So, is it going to be difficult for you to deliver some code tomorrow?
I had to put down my foot and say ‘Yes. With requirements and designs in the current form, we cannot start coding from today.’

That was perhaps a career limiting conversation. Nevertheless, it was not. I was telling the truth.  I was not ready to put undue stress on my team. There was a long pause after my response.  We were looking at each other. Were we going to lose a customer? Were we going to lose our jobs?

None of those happened.

We heard our costumer’s response from the other end.  He said, ‘In that case, let us get things right in the first place. I am ok if coding cannot start for the next day or two.  If it is going to be a delay of one week, that is ok too as long as we improve the way we do things.’

I learned a lot from these two incidents. Next time when you hear ‘So, is it going to be difficult for you to deliver?’ from your boss or customer, remember these incidents.

Sometimes there is no firm yes or no. Sometimes there is. Sometimes you are the owner. Sometimes you are not.

*-*-*-*-*

2.4 Crafting Considerations                       Table of Contents                     4.1 Seek to Understand

Comments

Popular posts from this blog

The Deliverable

Part 6 Workplace Challenges

Prologue