Communication is Almost Everything
I spend a lot of time walking around my apartment and thinking about various topics. One day, in the middle of my living room, I remembered my call with a client that was planned for the following day. The current sprint was almost done, everything was going well, and on this next call the team and I were going to discuss the scope of the next sprint. Everything was going to be great!
Fast forward to the call…
They mentioned to me how the project review would go through the last week before the launch of the MVP.
We were using Agile and daily scrums to make sure we were on the same page with the client. Daily reports to client helped us avoid miscommunications. All the features were approved without any objections—the client was awesome!
We had already implemented Core Search, which was the main feature of our Ruby on Rails app. I was using the Levenshtein distance, a string metric for measuring the difference between two sequences. This was a good call and I was proud of my decision to use it.
The client had been trying to bring the project to life for almost two years and we were so close. We were a week away. It was Friday the 13th. During this call, where I was giving my usual report on my progress, I heard that Core Search (my beautiful Levenshtein distance implementation) didn’t cover all of the client’s needs.
“Sasha, is it difficult to change the logic of the search?”
I still remember this question as if it was yesterday.
A question about sweeping changes close to delivery has a lot of potential to end poorly. But… Don’t panic. Remember: communication is almost everything.
I discussed it with the client for the rest of the week. We weren’t just a client and a Speed and Function developer anymore: we had become one team.
I suggested a more effective business logic for the search. This solution covered almost all of the client’s needs and allowed me to save the Core Search (Levenshtein distance) idea. There was no need to completely rewrite the search!
Following intensive communications throughout the week, we moved some extra search features to the backlog and customized the Levenshtein distance solution. This helped us launch the project in time. As a result, we had a happy client and were able to maintain a good reputation.
Conclusion:
- Be sure that the client has the opportunity to play around with your work and explore it in real time.
- You can never have too much communication: it saved this project from failure.