Monday, July 11, 2016

Open Source in the Enterprise - Part 2 of a 2-Part Series

By: Paul Marcinkiewicz, Solution Architect for Slalom Consulting

How Your Company Can Become An Open Source Organization

In Part 1, I talked about the history and the many advantages of utilizing open source. The advantages outlined are numerous and the more advanced companies are not only utilizing open source, but creating it as well. Part 2 will address how your company can not just leverage open source, but become an open source organization and an active user and contributor.   

Hurdles and Challenges

Overcoming the Legacy Wall

The foremost challenges surrounding a shift to open source are related to platform legacy and existing company culture. Most organizations are using or have built software applications and platforms that are tied up with licenses from big corporations like Microsoft, IBM, and Oracle. This is often a large annual cost burden. These applications and platforms cannot be torn down and replaced overnight. Software professionals are trained and often have lengthy backgrounds in legacy technologies, so introducing them to an entirely new stack and development approach can be challenging. Operations are also in place to monitor and deploy these older technology stacks. So, you may ask, then how do we get started?  


Enterprise Processes and Regulations

Netflix is a sterling example of a company that has not only grown into a large enterprise but has created and adopted a strategy to overcome enterprise processes and regulations. Netflix relies on a model that lowers process and regulation, which will increase innovation and speed of delivery. Rather than creating more process to prevent problems, Netflix relies on individual and team responsibility. This same philosophy holds true for open source adoption. Many enterprises are reluctant to use open source because of the lack of enterprise support. However, if each team is responsible for their development, testing, deployments and service level agreements (SLAs), they are free to explore and build as long as they deliver quality. 

Your Company’s Open Source Strategy

Think Like a Startup

Startups have traditionally been early adopters of open source for a number of reasons. Startups are often cash-strapped and do not have the resources to acquire software licenses, so using open source is often a decision made out of necessity. As a result, startups usually lead the way in terms of innovation and time-to-market. How do they do it? It’s done through constant experimentation and tremendously fast iteration cycles achieved by quickly leveraging and adopting these tools ad hoc. Unlike large companies that are often limited by vendor software, startups are able to choose the right tool for the job at the right time. This is especially important in the technology industry, where software release cycles are accelerating as quickly as ever. In an ecosystem where frameworks, tools, and technologies are falling in and out of favor virtually every day, the advantage of being a startup is not necessarily in the tools they choose, but in their ability to rapidly prototype, iterate, and swap technologies as they see fit. This is in stark contrast to many large companies, where adding layers of complexity to combat legacy software is the status quo.

While it’s unrealistic to advocate for the same level of flexibility often achieved at startups, it is imperative that companies approach open source in a similar spirit. We’ve seen numerous examples in recent years of large, seemingly invincible companies suffocating under the weight of a legacy tech stack. Organizations looking to join the open source movement must not expect to find a “golden hammer,” but rather build their systems to be as flexible and loosely-coupled as possible.


Find or Hire Your Own Open Source Mavericks

These open source mavericks are often hidden gems within your company. These are the developers who work nights and weekends at home and tinker. They often have their own GitHub pages showing what great work they’ve done.  A lot of them have an entrepreneurial spirit and many are working on their own side projects.  

Sometimes, these open source mavericks are professionals who have been working with the same technology for a while and want the opportunity to work on something new and challenging. Some people in your organization are happy with working on the legacy systems, while others want to be challenged. Recognizing these mavericks and giving them the opportunity to work on what’s new and shiny can change a stale culture into a fresh and exciting one and can transform your company into a destination that is desirable for the best and brightest.  


Offer Incentives

Companies such as Yahoo will offer incentives for developing technology that will either make or save the company money. In some cases, these will be in the form of offers that will give employees a direct percentage of revenue or savings generated from the initiative.  Innovating will take a lot of blood, sweat, and tears. Employees will often ask “what’s in it for me?”, other than building a good resume to allow them to move on to a better opportunity somewhere else.


Hackathons

Hackathons are another great method to market and find talent for a specific technology. Open source skills are some of the most sought after in the marketplace both from the employee and the employer perspective, so this is a great way of matching potential prospects with an opening. This is also a great way to market to the masses that your company is using these technologies.

Don’t Be Afraid To Fail

More often than not, teams and organizations are under constant pressure to deliver. This can cause enterprises to fall back to what we know and often take us to the path of least resistance. However, this approach will never spur innovation. If we keep patching the same legacy systems, we can never move forward and will only build the legacy wall even higher. Well-run organizations understand that consistent investment in their software is paramount to their success as opposed to constant band-aid solutions.  It’s OK to fail as long as you learn and iterate and do not spend an undue amount of time. This is what R&D is all about.  


Organize Into Small Autonomous Groups

It is often the case that not everyone will have the same opinion within an organization on how to best solve a problem. While many of your teams may be trying to solve similar problems, the backgrounds and skillsets may vary greatly. Many companies have found success with a Microservices architecture, providing their engineers with the autonomy to create the best solutions for themselves in the context of the support network that large companies benefit from. Yelp and Spotify are two examples of companies that have found success with and written about this approach.

Pick a Pilot Project

The best way to get started is to find a project that is either net-new without legacy dependencies or a project that can be retrofitted into your existing architecture. This will allow you to do "bake-offs" and "A/B performance tests" against different technologies.  To start, try something small to experiment with the new technology stack. Don't be afraid to try a number of competing technologies such as MongoDB vs Couchbase or NodeJS vs Tomcat.  Do this for every layer of your stack, from client tools through the database.  This will allow you to find the lines of demarcation within your organization.  


Create a Layer of Abstraction

Since each technology has its own tooling and modules, the last thing you want to do is be tied to a particular product because it's all wired together too tightly or has too many dependencies.  To account for this, design an API for each tier of your application to develop layers of abstraction. This approach is consistent with Microservices architecture patterns and best practices.

As an example, Node.js provides excellent asynchronous API orchestration. A NodeJS layer can stitch together compound requests into a single asynchronous request. These requests can be written in any blend of technologies and languages. For instance, high computational requests can be written in something like C++ or Java and be fronted by a Tomcat/Spring server.   


MVP (Get Your Win)

Projects often suffer from overdesign and extensive  timelines. Think long and hard about determining what your project's minimum viable product (MVP) is. The principles of Agile will support iterations before and after the initial MVP release. Getting your open source-based project released will allow your team to put a “stake in the ground” and begin to establish an open source culture within your organization. If you can eliminate the need to renew licenses or replace them with less expensive licensing deals, then that’s a big win.    


Cloud Agnostic Approach

Building an application or platform that will only run on a specific cloud provider’s infrastructure like AWS or Azure can lead to the same legacy wall issues. Your organization will become dependent on a provider’s proprietary tools.  Certainly leveraging these tools can provide benefit, but a design around a specific cloud provider’s tooling can also lock you into that specific vendor. Avoid this pitfall by leveraging tools that work on a number of cloud providers. Good examples of this are Docker for deployment containers and Node.js.  Some organizations will require certain assets to remain within their walls, so there is usually a need to think agnostically. Doing so will also allow you to burst out onto the public cloud in the future.


Use Licensing Where It Makes Sense for our Organization

There are situations where it may make sense to license certain software. If your company’s lifeline depends on a highly-available application, then buying an open source support contract may be the right decision. This license agreement can be temporary as your organization ramps up its internal skill set.  This is why it’s best to build software that does not have a strong dependency on versions that are only available in a licensed product.   


The Benefits to Contributing and the Power of Community

As you become proficient with open source, consider contributing back. This can be achieved in several ways. For one, you can submit pull requests directly to packages’ repositories on GitHub. NPM (Node Package Manager) is a great example of this. The NPM community has grown exponentially over the years and new modules are uploaded constantly.  Of course, this can also create a bit of a minefield, so proper QA and due diligence is a must.  Contributing back to open source can also provide a great way to attract talent and advertise your organization as a destination of open source innovation.


Get Bootstrapped By Getting Help

If you truly feel your company just doesn’t have enough experience with open source in-house to get started, then you can always scaffold the effort with a consulting firm.  This can provide the benefits of rapid building and allow your in-house talent to pair up with consultants to learn and sharpen their skills.  Again, this can be a transitional step once your company feels comfortable with your level of background, skill, and proficiency.


Final Thoughts

Open source provides many good options for your organization and should be seriously considered as an option to utilize. My suggestion is that you proceed in incremental steps and try to create a technological and cultural shift that will make your organization more innovative and adaptable in the fast changing marketplace. 

Paul Marcinkiewicz is a Solution Architect for Slalom Consulting - Boston and is an AWS Certified Solutions Architect. Paul has worked as an architect ranging from startups to Fortune 500 firms and has experience designing, building and migrating onto platforms utilizing open source technologies. Connect with Paul on Twitter or LinkedIn.


Wednesday, July 6, 2016

Talent Retriever Puppy Love – Supporting a Great Cause at Boston TechJam 2016


Woof! If you came down with a case of “Puppy Love” with Talent Retriever’s Pet My Puppy booth at TechJam, you’ll be happy to learn that the rescue group they partnered with, Sweet Paws Rescue of Essex, MA, raised over $800 (100% of that goes directly back into the costs of saving more dogs’ lives), gained 300+ Facebook followers and had several TechJam attendees personally reach out to Sweet Paws to volunteer! Sweet Paws Rescue only exists by donations; every dollar counts to help their rescue pooches! And to give you an idea of where donations go- take a look at this amazing video of Sweet Paws SuperStar Elinor last week taking her first steps! 


The attending pups, Austin, Margo, Willie the Wonder Doxie and the amazing Elinor, were a hit with TechJam attendees and we are happy to report Margo has found her adoptive “furever” home.

Elinor continues to thrive in her foster care and does hydro therapy daily and continues to inspire as all. She even has a very interested adopter that is hoping to one day take her home! If you would like to follow Elinor’s progress, like her page on Facebook: Saving Elinor


And get involved! Sweet Paws is always looking for volunteers, fosters, etc- www.sweetpawsrescue.org

Tuesday, July 5, 2016

Data Governance in the Cloud

We continued our data governance series on June 22 with the topic Data Governance in the Cloud. Our moderator, Rashesh Jethi of Amadeus North America, was joined by panel members: Michael Lemire of QuickBase, Samir Mehra of CloudHealth Technologies, and Shawne Robinson of Pegasystems.

While governance is substantially easier to manage on premise, the fact is most companies are migrating to the cloud. The panel began with identifying the drivers of data governance in the cloud:
  1.          Regulatory compliance
  2.          Contractual obligations with your customers
  3.        Risk assessment: what are the data types and classification


For CloudHealth, their main driver is about providing visibility for the user and setting up automated governance plans based upon need and usability. For many of their customers it is not only an accessibility issue - the right people with the right access - but also about optimizing their cloud use.

All panelists agreed that governing data in the cloud is complicated but there are general guidelines. Michael made mention of 10 generally accepted privacy principles that were released by the AICPA. And Rashesh spoke about technological advancements in machine learning that allow for better automation and detection to ensure that governance rules are being followed properly.

Shawne suggests for companies that are skittish about moving to the cloud to start small. Move those data sets that are not as critical and secure as a way to build and test your strategies.  


Inevitably more data is going to be stored, accessed, and processed in the cloud. Companies and service providers must work together to create policies that make it safe and cost effective.