Part 2. Scalability

Theo feels a bit uncomfortable about the meeting with Joe. He was so enthusiastic about DOP, and he was very good at teaching it. Every meeting with him was an opportunity to learn new things. Theo feels lot of gratitude for the time Joe spent with him. He doesn’t want to hurt him in any fashion. Surprisingly, Joe enters the office with the same relaxed attitude as usual, and he is even smiling.

    JOE   I’m really glad that you got the deal with Nancy.

  THEO   Yeah. There’s lot of excitement about it here in the office, and a bit of stress too.

    JOE   What kind of stress?

  THEO   You know... . We need to hire a team of developers, and the deadlines are quite tight.

    JOE   But you told me that you won’t use DOP. I assume that you gave regular deadlines?

  THEO   No, my boss Monica really wanted to close the deal. She feels that success with this project is strategically important for Albatross, so it’s worthwhile to accept some risk by giving what she calls an “optimistic” time estimation. I told her that it was really an unrealistic time estimation, but Monica insists that if we make smart decisions and bring in more developers, we can do it.

    JOE   I see. Now I understand why you told me over the phone that you were very busy. Anyway, would you please share the reasons that made you think DOP wouldn’t be a good fit at scale?

  THEO   First of all, let me tell you that I feel lot of gratitude for all the teaching you shared with me. Reimplementing the Klafim prototype with DOP was really fun and productive due to the flexibility this paradigm offers.

    JOE   I’m happy that you found it valuable.

  THEO   But, as I told you over the phone, now we’re scaling up into a long-term project with several developers working on a large code base. We came to the conclusion that DOP will not be a good fit at scale.

    JOE   Could you share the reasons behind your conclusion?

  THEO   There are many of them. First of all, as DOP deals only with generic data structures, it’s hard to know what kind of data we have in hand, while in OOP, we know the type of every piece of data. For the prototype, it was kind of OK. But as the code base grows and more developers are involved in the project, it would be too painful.

    JOE   I hear you. What else, my friend?

  THEO   Our system is going to run on a multi-threaded environment. I reviewed the concurrency control strategy that you presented, and it’s not thread-safe.

    JOE   I hear you. What else, my friend?

  THEO   I have been doing a bit of research about implementing immutable data structures with structural sharing. I discovered that when the size of the data structures grows, there is a significant performance hit.

    JOE   I hear you. What else?

  THEO   As our system grows, we will use a database to store the application data and external services to enrich book information, and in what you have showed me so far, data lives in memory.

    JOE   I hear you. What else, my friend?

  THEO   Don’t you think I have shared enough reasons to abandon DOP?

    JOE   I think that your concerns about DOP at scale totally make sense. However, it doesn’t mean that you should abandon DOP.

  THEO   What do you mean?

    JOE   With the help of meditation, I learned not be attached to the objections that flow in my mind while I’m practicing. Sometimes all that is needed to quiet our minds is to keep breathing; sometimes, a deeper level of practice is needed.

  THEO   I don’t see how breathing would convince me to give DOP a second chance.

    JOE   Breathing might not be enough in this case, but a deeper knowledge of DOP could be helpful. Until now, I have shared with you only the material that was needed in order to refactor your prototype. In order to use DOP in a big project, a few more lessons are necessary.

  THEO   But I don’t have time for more lessons. I need to work.

    JOE   Have you heard the story about the young woodcutter and the old man?

  THEO   No.

    JOE   It goes like this.

The young woodcutter and the old man

A young woodcutter strained to saw down a tree. An old man who was watching nearby asked, “What are you doing?”

“Are you blind?” the woodcutter replied. “I’m cutting down this tree.”

The old man replied, “You look exhausted! Take a break. Sharpen your saw.”

The young woodcutter explained to the old man that he had been sawing for hours and did not have time to take a break.

The old man pushed back, “If you sharpen the saw, you would cut down the tree much faster.”

The woodcutter said, “I don’t have time to sharpen the saw. Don’t you see, I’m too busy!”

Theo takes a moment to meditate on the story. He wonders if he needs to take the time to sharpen his saw and commit to a deeper level of practice.

  THEO   Do you really think that with DOP, it will take much less time to deliver the project?

    JOE   I know so!

  THEO   But if we miss the deadline, I will probably get fired. I’m the one that needs to take the risk, not you.

    JOE   Let’s make a deal. If you miss the deadline and get fired, I will hire you at my company for double the salary you make at Albatross.

  THEO   And what if we meet the deadline?

    JOE   If you meet the deadline, you will probably get promoted. In that case, I will ask you to buy a gift for my son Neriah and my daughter Aurelia.

  THEO   Deal! When will I get my first lesson about going deeper into DOP?

    JOE   Why not start right now?

  THEO   Let me reschedule my meetings.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.21.233.41