“You really need to come out of the dark ages of software development.”
I was vigorously rubbing my temple as Jenna went on and on about a new programming language she was all hot and bothered about. Jenna had been on the team about two days before she started in on how we needed to use a 21st century software language – evidently, Java was so20th century.
Her idea was something called Scala. A quick review of the Scala open source site provided some education, but frankly I had deadlines to worry about and wasn’t keen on introducing a new language to the team.
I remembered prior “savior” object oriented languages such as Smalltalk that were supposed to save the day back in the early 90s. I also remember projects going down in flames as developers didn’t have the proper time to adjust while building mission critical software.
That experience taught me that the return on investment for changing languages was not a sure thing.
It all started Jenna’s second day on the job during a design meeting when Kevin, our lead developer, brought up some ideas on how to tackle our latest challenge. The transaction volume was escalating quickly and in order to detect certain patterns, we needed a more scalable approach.
As the team started kicking around ideas centered on our language of choice, Java, Jenna interjected.
“Hey guys, have you heard of Scala? I have been playing around with it and it is supposed to be a great solution for this exact problem.”
Kevin smiled at her and responded sounding a bit insulted, “Of course we know what Scala is. But we have to solve this problem with the tools we have.”
Jenna was no shrinking violet. That’s what everyone liked about her during the interview process. You needed to be not just smart, but bold to succeed on the team.
So she shot back, “Yes, but why don’t you use it? Have you studied it? Its open source you know.”
Kevin and the rest of the developers all let out a kind of laugh.
“Yes, and Java is open source too. Besides, learning any new language won’t work with the time we have to solve this problem. Most of us have been using Java for over 10 years and we can get the job done faster with it.”
A slight shadow of doubt came over Jenna’s face, but quickly faded as she blurted out, “Java being open source is actually debatable, considering Oracle’s lawsuit against Google for its use of patented Java technology. But that’s not the point – my point is Scala is something we could easily start using to solve problems like this.”
Kevin folded his arms and sat back in his chair. “So how did you become a Scala expert?”
Jenna leaned forward and said, “I’m certainly no expert, I mean the language is still pretty new, but I did download some free eBooks on the topic.”
Before Kevin could rip into her further, it was my turn to interject.
“Look, I appreciate innovative ideas Jenna, but Kevin is right. We have a short time frame to solve a big problem. If you want to dabble in Scala and do a brown bag presentation, go for it.”
She sighed and put her hands up as though she was acquiescing.
The Effort Continues….
But Jenna wasn’t the type to give up so easy.
A few days later she was in my office trying to show me her potential brown bag presentation. She said she worked on it over the weekend in her spare time.
Although I liked her initiative, I’ll admit I was quickly dismissive – honestly, because I didn’t want to be bothered. In retrospect, it was a terribly short-sighted attitude. But sometimes, the whoosh of urgent events overwhelms the curiosity every developer should have – especially once in management.
I said I was too busy now and gave a somewhat sincere promise to look at the presentation when I had time.
Not too soon after her visit to my office, I was walking past her cube and took notice of her monitor.
“Hey, Jenna, what are you up to?”
She whirled around with a big grin and said, “I’m so glad you are here. Let me show you something.”
Turns out Jenna had been writing test scripts with Scala to try out some theories she had about how to solve our needle in a haystack pattern detection problem. She walked me through something she called domain-specific language (DSL) and I was surprised at how similar it was to reading English. I thought even some of our business users could make sense of it.
She went on to explain how Scala can initially be written in Java style while still providing more benefits, including precise, cleaner code.
I said, “Alright Jenna, I’m intrigued. But you need to convince the team before I take this up a level for consideration.”
Her grin widened and she whirled back around to start typing furiously away.
Kevin came to see me as soon as he found out I had schedule a brown bag for Jenna’s presentation.
“She is being a snob! She should be focusing on learning how we do things here – not trying to impose her lofty ideas on us.”
“Kevin, she isn’t patronizing you or the team,” I responded. “She’s put a lot of thought into this and has some good points. Please give her a chance and come to the meeting tomorrow with an open mind.”
I could tell Kevin still wasn’t thrilled, but he eventually agreed to it.
At the brown bag meeting, I gave Jenna the floor and she walked the team through the logic of her test scripts.
The rest of the team looked intrigued but typically deferred to Kevin. And he was the first to chime in.
“Yeah, it’s simple to follow unit tests, but I did some research of my own and Scala code is actually more complex. Again, we don’t have the time to deal with this yet.”
With a nod, I encouraged Jenna to continue.
She said, “Kevin, I hear you loud and clear. But listen, it’s not a matter of complexity; it’s a matter of comprehension. We can start writing Scala with Java-like code, which all of us know, while still getting benefits of things like multi-threaded processing, immutability and improved memory usage.”
The initial heated back and forth simmered down to more intellectual curiosity as the team all asked good questions. When it was all said and done, Jenna had won them over – even Kevin.
But Bureaucracy Steps In
And after all that, however, Scala went absolutely nowhere, thanks to the company bureaucracy. Yet Jenna had gained my respect and, more important, the respect of the team.
To be clear, I am not trying to sell Scala with this story. I have never used Scala for any project.
What I’m trying to sell is the fact that some developers waste time waiting for their employer to train them on new technology or complaining they aren’t getting the training to stay current. While companies continue to cut training budgets, every developer should take the initiative to educate themselves, especially with so many free resources available on the web. When a developer takes risks like this, everyone on a team benefits.
If you hit the free eBooks and play around with new open source tools and languages on your own time, it will be your turn to be both smart and bold at the next design meeting.