Enterprise Scala Adoption Tips
- April 12, 2013
As more enterprise organizations adopt Scala/Akka/Play, we find it important to help them engage the community effectively. This involves providing them with information about where they can find resources to empower their developers to learn as much about these technologies as possible, as well as to directly engage with the community on a daily basis. By following these steps, the likelihood of successfully adopting these technologies is much higher.
Step 1: Host a Scala Meetup By hosting a local Scala user group meetup, you are publicly announcing that your organization is joining the Scala community. It also lets the community know that your organization is looking for ways to help promote and sponsor initiatives around the ecosystem. If one doesn’t exist, have someone in your organization take the lead of starting one, showing how committed your company is to the community. This will make your organization's new direction very clear to developers in your area and help generate recruiting leads. If you're interested in having Typesafe help host your meetup, please email firstname.lastname@example.org
Step 2: Enable Book Reading Start an employee book purchase program, and if possible, do it such that no expense reporting by individuals is required so as to remove roadblocks that might keep developers from making the effort. Ideally, when an employee asks for a book on an internal wiki, it should show up on their desk or eReader shortly thereafter. Start a weekly lunchtime book discussion group, where employees either bring a lunch or have it paid for by your organization, and discuss a chapter of a specific book each week. Recommended books include:
- Scala for the Impatient (beginners)
- Atomic Scala (beginners)
- Programming in Scala (free first edition online, more info about theory)
- Scala in Action
- Programming Scala
- Scala in Depth (for experienced Scala developers)
- Akka Concurrency
- Akka in Action
- JVM Performance
Step 3: Learn Best Practices Make the following resources available to developers on your team, and organize study groups around them to share knowledge:
- Scala Coding Style Standards
- Twitter's Effective Scala
- Twitter's Scala School
- Coursera Functional Programming Course with Martin Odersky
4: Get on Twitter Have developers follow daily happenings in the Scala community via Twitter. Twitter is the best source for real-time information about what's happening in the Scala community and elsewhere. *See below for some suggestions of Twitter accounts to follow.
Step 5: Engage the Blogosphere Have developers subscribe to prominent Scala blogs, so that they can find out information about what cool new things developers have learned. They will likely hear about these posts via Twitter, Prismatic or some other aggregator, but a great way to begin getting more Twitter followers yourself is to be among the first to post a link to a great new blog post. Encourage your developers to start their own blogs talking about the challenges they've faced and how they've overcome them.
- Let It Crash, the Akka team blog
- Debasish Ghosh
- Josh Suereth
- Brendan McAdams
- Cake Solutions Team Blog: This Week in Scala
- Typesafe blog
- James Ward
Step 6: Hop on IRC, Google Groups, Stack Overflow and Podcasts Inform your developers of IRC Channels and mailing lists where they can directly interact with top developers in real time, including the creators of the technologies themselves. Eventually, they will find themselves able to answer questions from other people or participate in the podcasts themselves and thereby increase your organization’s presence in the community.
Step 7: Attend and Speak at Meetups Encourage employees to regularly attend Scala meetups, as well as meetups on other topics. Ask them to speak on your company's behalf when they feel comfortable with the subject matter. This will help generate excitement in the community about what your company is doing with these technologies, and help in recruiting new developers interested in what you're doing and the tools you're using.
Step 8: Attend and Speak at Conferences Attend conferences with Scala content where you can network with other Scala enthusiasts. When you feel comfortable discussing specific topics, submit talk proposals for consideration at these conferences. Even conferences not directly related to Scala are clamoring for talks about these technologies, so the rate of acceptance is relatively high. Important ones that focus on Scala and the broader ecosystem include:
Step 9: Get Involved in Open Source Have developers fork the GitHub repositories for Scala/Akka/Play and see if there are features, fixes or functionality they can contribute back. GitHub repos for each project can be found at:
By Jamie Allen, Director of Consulting at Typesafe
*Suggestions of Twitter accounts to follow: @_jamesward; @adriaanm; @akkateam; @aloiscochard; @andrewheadrick; @bantonsson; @brianclapper; @bruceeckel; @bvenners; @corruptmemory; @d6; @dcsobral; @deanwampler; @debasishg; @derekhenninger; @derekwyatt; @dickwall; @djspiewak; @dmarsh; @drewhk; @eed3si9n; @etorreborre; @extempore2; @gclaramunt; @gkossakowski; @h3nk3; @havocp; @helenaedelson; @higherkinded; @hseeberger; @huitseeker; @hywel_evans; @iamwarry; @ijuma; @jaguarul; @jamesiry; @jamie_allen; @jboner; @jorgeo; @jroper; @jsuereth; @jteigen; @kmizu_en; @mabrewer7; @marius; @milessabin; @mircodotta; @missingfaktor; @mkelland; @mpilquist; @mslinn; @n8han; @nescalas; @nraychauduri; @odersky; @patriknw; @philippkhaller; @pk11; @playframework; @pnwscala; @psnively; @pvlugter; @rayroestenberg; @retronym; @richdougherty; @rolandkuhn; @runarorama; @scalaide; @scalathon; @sirthias; @sky1uc; @springrod; @stefanzeiger; @strangeloop_stl; @tbjerkes; @timkirk5; @tlockney; @twittereng; @typesafe; @viktorklang; @xeno_by; @ymasory