Use Wufoo integrations and get your data to your favorite apps.

Category: DevOps

There are 3 posts published under DevOps.

You’ve Landed the Software Developer Job of Your Dreams – Now What?

So you’re a young software developer, and you’ve just landed a great job. You love the company culture, and it’s got all the perks you would want (and maybe then some). But where do you go from here?


The most obvious answer would be “do your job,” and that’s certainly not a bad one. But for young developers, it’s good to always keep the long-term view in mind. You might be happy where you are right now, but the tech industry (and software development in particular) is fast-paced and constantly changing. There are a few skills all software developers — both those recently hired to their first job and industry veterans with decades under their belt — can do to stay at the top of their game.


Operation: Distributed source control systems


Distributed source control systems might not sound exciting – and they definitely aren’t new – but they are becoming more and more important to software development. These systems are a great way to get exposed to a wide array of projects in development, and failing to become acquainted with them can limit a career in software development. It can be easy to become complacent and disconnected from current trends, especially in a closed development house. BitbucketGitHubGoogle CodeSourceForge and other similar services are handy tools and are a great way to build a collection of personal projects. Even more, potential employers may even ask to see if you have a profile with these systems. An active profile signals initiative and drive for these employers.


Commune with open source


Working with open source code is really only one part of being a part of the open source community. There are tons of projects to work on, and you can build your GitHub or StackOverflow profile with project after project to keep your skills up. However, if you only focus on the code and not the collection of other people also working on open source projects, you’re missing out on a lot of what open source has to offer. Being part of the open source community means socializing with other developers. Honing skills and collecting projects is all well and good, but the ultimate goal of being a part of open source is to influence and participate in the evolution of software development. The open source community can keep you abreast of the newest changes and trends.


Be a master of time (zones)


Technology is making it easier and easier to work remotely and collaborate with people across the globe. That software developers need to be at the forefront of this new way of collaborating may seem obvious, but it’s also one of those things that’s easier said than done. It’s not just about coordinating schedules across disparate time zones. It’s about being able to work with people of a variety of backgrounds and experiences, about coordinating across language barriers, and of being able to organize and divide work when there’s no one to motivate and watch over you.


Landing that first job is an exciting step in your career, but you probably have goals above and beyond that. Only you will know what skills you’ll need to reach your specific goals, but regardless of where you want to go with software development, these are skills software developers, newly-minted or veteran, all need.


TechCrunch Disrupts Battlefield Winner Announced!

On the final day of TechCrunch Disrupts, the final six startups duked it out in the Startup Battlefield—they were: Regalii, Ossia, Fates Forever, SoilIQ, Dryft, and Layer. Each of these teams took part in the Startup Battlefield earlier on against 23 other finalists and came out on top.

To determine the winner, the startups’ impact on the world are reviewed by a panel of judges consisting of: Michael Arrington (Founder of TechCrunch), Roelof Botha (partner at Sequoia Capital), Chris Dixon (Andreesen Horowitz), David Lee (founder of SV Angel), Marissa Mayer (CEO of Yahoo!), and Keith Rabois (Khosla Ventures). The startup that wins the Startup Battlefield will bring home the Disrupt Cup along with a $50,000 stipend.


Regalii’s goal is to maximize the efficiency of remittance. Their product functions through SMS; essentially, the sender can send an SMS to somebody and the recipient will get a pin number that works like a gift card. This is an improvement to current forms of remittance such as Western Union in that the recipient gets the money immediately—this means that, along with speedy money delivery, both parties minimize the deductions made by a third party. Thus far, the startup has experienced a growth of 67% per week, showing signs of success in the market. Regalii claimed that this product “is the future of global remittance.”


Ossia created a product named COTA. This device is the first of its kind as it is able to remotely send power anywhere within a 30 feet radius to devices and charge them. COTA will detect the device location via a secondary attachment and send power to and only to that location. A demonstration was shown in which a light bulb lit up when held near a prototype, but went out the moment it was moved—the consumer model is expected to be able to charge a moving device as well. Imagine a world where wires are no longer needed—everything will be charged wirelessly. That is the future that Ossia offers with COTA.


Fates Forever is a gaming startup. What makes it so special is that it proposes to bring a MOBA (multiplayer online battle arena) to the growing tablet market—this has never been done before. The touchscreen will add even more to the gaming experience. While some of the judges questioned the novelty (and, thus, the ability to get a large enough market) of reintroducing a popularized genre to the tablet, founder, Jason Citron, countered by stating that many successful games are essentially a reintroduction of previous games with a different spin. In this case, the use of a touchscreen and an under-saturated tablet gaming market will bring Fates Forever far.


SoilIQ aims to revolutionize the farming industry. They created a device that can be stuck into the ground where it will measure various aspects of the soil: pH, temperature, humidity, sunlight, etc. The device is solar powered and sends the data to the cloud, where it will be analyzed. The software will make crop suggestions based on the state of the soil. Additionally, when the parameters of the soil changes such that the crop will die, a message will be sent to the user’s phones. The company measured a 15% - 20% increase in crop yield, showing proof of concept. With this, crops can be grown in larger bulk, sold more cheaply, and, most importantly, can feed more mouths.


Dryft was the runner up of the TechCrunch Disrupts Battlefield. Their plan is to optimize texting efficiency for the tablet. The product is essentially a tablet keyboard. The on screen keyboard will take advantage of the accelerometer and touch screen to detect typing based on the vibrations made from tapping the screen. As a byproduct of easier typing, the front end (e.g. autocorrect) won’t be as messy, either. While there is a transition from notebook to tablet, this product can possibly push the rate of this shift even faster!


This leaves the winner of the TechCrunch Disrupts Battlefield, Layer. This startup offers a product to all app developers; a code that can allow them to easily and seamlessly integrate SMS, voice, and video communication to any app. Not only that, there is no phone to phone restriction—multiple devices can take part. While many other companies have tried this, they’ve only been able to succeed at the beginning stages, because of the underestimated difficulty of this undertaking, resulting in scaling problems. Layer could potentially maximize the efficiency of communications between all mobile devices.


All of these startups had amazing ideas with proof of concept—unfortunately, only one could win. This doesn’t mean the end of any of the other companies. A backstage chat said that, “as long as these startups don’t [mess] up, they will be very successful.” While Layer won, not everybody is in agreement with that decision. Who do you think should have won?


The Road To DevOps ROI

Understanding the interplay between best practices and the tool chain.

DevOps is gaining traction as a software development methodology.  Though it may not be the right fit for every development organization, the idea of collaboration between developers (Dev) and IT operations (Ops), as well as testers, solves a lot of problems inherent in organizations that must release code in rapid cycles.  It’s pretty intuitive. Who wouldn’t want better coordination and tighter, more productive connections between the people who develop code and those responsible for testing and making it work in the real world?


Making DevOps pay off can be a little tricky, however. Return on the investment (ROI) in DevOps derives a combination of faster rollout of quality code to customers, increased productivity in both Dev and Ops teams, as well as potential labor cost savings across the entire process.  To realize these outcomes, it is necessary to keep quite a few moving parts running in a coherent structure. In our experience, getting to success with DevOps involves mastering the methodology itself with best practices as well as the tool chain that is used for its implementation.


The need to align practices with the tool chain makes DevOps different from other IT paradigms, where the methodology and tools can be distinct.  An organization can pursue cloud computing, big data or event-driven architecture, to name a few popular trends, and get away with selecting any number of tools to get the job done.  DevOps is different.  In DevOps, practices and tooling are deeply intertwined.  The unique nature of software (it either works or it doesn’t) and the fragile connections between distributed stakeholders put pressure on tools to make practices work.  Channeling Marshall MacLuhan, consider the notion that the tooling is the practice and the practice is the tooling, so to speak.  The following aspects DevOps show the value of this fusion between best practices and tool chain:


Making early, instant feedback available in a single pane of glass for all roles

DevOps is based on collaboration between developers and operations teams. This represents a cultural shift for larger teams, where it has been historically difficult to get everyone to share goals and metrics. When it works, though, people get more productive and agile. Developers, testers, product managers and system engineers all deliver great results and see improvement in the qualities of their work lives. Collaboration becomes the norm of the work culture.  The only way to ensure that every developer, tester, and system engineer is a high performer is to make sure they get early and instant feedback. When a developer pushes code into the repository, he or she should get immediate feedback on that it. A product manager needs to be able to create a sandbox to show the new feature to business stakeholders to get feedback on day one. System engineers have to be able to simulate new features in a production environment while the code is still in development.


Bringing early, instant feedback practice to life involves tooling.  The tooling is the practice, in three senses: There has to be ongoing intelligence of the code in development. Operational intelligence and an automated dashboard for analytics are also essential. Development and operational tools should be configured to generate metrics. For example, a Continuous Integration tool could record when a build occurred, how many tests ran, how long the tests ran, whether the build was successful, how many tests were successful, which files are frequently changing and so on. This data can then be analyzed and displayed in automated dashboards.

 Figure 1:  DevOps dashboard for cross team data viewing


Operational intelligence is an aspect of application and infrastructure monitoring. It provides a mechanism feedback across all functions and roles in a single dashboard so that everyone can see it and act upon it as needed.  Analytics and an automated dashboard provide real-time insight to the entire team across roles so that they can get early and instant feedback on all aspects of their respective tasks. If done right, the result is a productive, efficient DevOps team.


One-Click Access to the Entire Application Lifecycle

With DevOps, collaboration needs to be seamless across Dev and Ops teams.  It has to function smoothly across the entire application delivery value chain. Good DevOps starts with setting up automated processes and systems for Integrated Configuration Management, Continuous Integration, Automated Testing, Deployment Planning, Infrastructure Provisioning, Continuous Deployment, Integrated Change Management and Monitoring. These practices are inextricably linked to tooling. The practice is the tooling.


It essential to integrate all these tools in a full stack DevOps platform so that everyone shares common tooling and won’t need to hand off artifacts between teams and risk creating gaps.

 Figure 2:  An integrated toolchain ensures seamless handoff


It means testing and deploying application code and infrastructure code in the same pipeline. Productivity and quality problems inevitably arise when DevOps teams create a patchwork of mixed toolsets. Things may work well at first, but as scale and complexity grows, the tool chain starts to break and ceases to provide the visibility and metrics the team needs to make better decisions. Making things worse, scale and complexity typically trend up with the success of the Continuous Delivery model. Multiple deployments every day are not uncommon as new features are released.  As DevOps flourishes, the business gets used to more innovation from IT and the cycle grows more intense.  This is known as having a rapid innovation culture. It arises when DevOps best practices and the tool chain are one.  Having a fully integrated DevOps tool chain with one-click access to the entire application lifecycle has been proven to help teams scale effortlessly.


Develop and run seamlessly

Applications have to be designed to morph with business needs. This best practice is the essence of DevOps, one that is realized through the tool chain. A company may start with an application running in a public cloud but soon needs to move it behind the firewall or have the back end moved to a big data platform and so forth.  When a DevOps team starts developing applications, it usually has a target environment in mind.  However, the best practice is to ensure that there is flexibility in both development and runtime environments so the application can change as the business evolves.  For instance, the team might use a public PaaS today but tomorrow it will need to shift to an internal private cloud.


Tooling the DevOps team for flexibility involves elastic provisioning of systems for Contiguous Integration, automated testing, deployment and production environments. The tooling is the practice. It is imperative to have the flexibility to develop/test/run in any environment seamlessly. The only way to do this is to provision the infrastructure and tool chain anywhere and carry the application stack across these environments.

Figure 3:  Enable provisioning to anywhere

Projects and profiles can be tracked and versioned so that previously configured systems can be re-created with a single click to easily test new code, revert to previous configurations, and compare system versions. A fully searchable repository must be available to facilitate standardization and reuse.


DevOps ROI: Making the Tooling and the Practice One and the Same

The DevOps platform is the connection between the tool chain, best practices and DevOps ROI.  A DevOps platform should enable the DevOps team to plug a large number of different development tools, PaaS platforms and production environments into the core platform.  Centralized as a platform but multi-faceted as the team requires, it needs to give each participant access to, and the ability to give, instant feedback on any aspect of the process.  Ideally, there will be the much sought-after one-click access to the entire application lifecycle and the potential for flexible movement of applications between diverse production environments.  These practices enabled through tooling drive efficiency and productivity, which in turn leads to the kind of rapid deployment and low cost DevOps that the methodology promises.

To learn more about DevOps ROI, read the full whitepaper.