About the Author:

Interview with Eric Brooke: SpotHero’s Vice President of Software Engineering

July 30th, 2019


Learning and talent management, when done right, should go hand in hand in an organization. The most adept leaders – in any discipline – will make an effort to understand and promote both. 

Take Eric Brooke, VP of Software Engineering for SpotHero, a parking reservation service and tech startup. Brooke joined the company about three months ago. He’s still absorbing information and getting to know the tech staff and team, creating a funding plan for the next five years, and figuring out how to get his engineers involved in both present and future business decisions. Learning plays a key role in all of that. 

With a Computer Science degree from the University of Hertfordshire and part of a Masters’ in Business Administration from Open University – both in the UK – Brooke finds real value in formal, classroom-based training. He’s taken a number of postgraduate classes in artificial intelligence and machine learning at MIT. 

To make effective, high quality training, however, requires a great teacher. When the right person delivers training, the investment is almost always worthwhile. DevelopIntelligence had the opportunity to speak with Brooke about his role, how to motivate and manage the best technical talent and how formal training fits into his talent management strategy. 

The following interview has been edited for clarity and length. 

How has the VP of Software Engineering role changed in the past few years?

We’re learning from lots of other companies, what they’re succeeding at, what they’re failing at, in lots of different ways, whether it be the human, the process, the product or the technology aspect. There’s a lot more examples of information. That’s important because learning from Google is not really helpful for me, or learning from Stripe who are working at a global scale. That’s one piece.

The next area is, data has become a lot more important. It’s always been important, but now people understand how important it is to make sure your data is clean, healthy, accessible. So you can use some of the newer forms of knowledge evolving around data science, machine learning. Machine learning is definitely something on most VPs of Engineering’s perspectives. [For it to work] you have to have enough data. You have to have clean data. And you have to the right people e.g. data scientists and data engineers.

How do you – or how will you – build a high functioning engineering team?

There’s lots of different ways, but the most important thing is you have to have good leaders that allow engineers to have autonomy, purpose and mastery. We’re trying to essentially find the balance between challenging and happy. If you’re too challenging, you exhaust your engineers, and they basically break down and don’t work anymore. If they’re too happy, they don’t work. 

The balance of challenging and happiness which leads to productivity starts with good leadership. In most cases good leadership is finding the road blockers that get in the way, the bottlenecks, and helping engineers get through those process issues. You’re trying to build a culture and a community that keeps evolving all of the time. It’s patching itself here and there, whether it be a human thing or a technical thing. 

You do that broadly by transparency, making sure that information is flowing down, that people understand what is going on and why decisions are happening. Why is a very important. Always fully explain and allow people to dig in and understand. Also, when you’re looking at change management, how are you making sure that people feel heard in the organization? 

The other thing is, you want people in the organization that you can work with. We have this concept of cultural fit. That’s very damaging in that you can end up with a large number of white men being software engineers. What you occasionally need to do is look at is cultural add. How is this person going to challenge our culture and make sure the culture grows and becomes better? That can be many different things: background, race, gender. You’re looking for people who are going to help you all as a group be better. Diversity is key.

How you balance technology and culture?

They are equally important. Conway’s Law comes into play. How you create teams and departments actually is how your code ends up. The divisions in your human aspect are often the divisions in your code and vice versa. Broadly, I’m a strong believer in pushing technical decisions down to a competent person. I do not feel that as a VP of Engineering I should get involved in technical decisions. I should be uplifting and giving the freedom and the ability to fail and learn from it to employees. 

That doesn’t mean I don’t have opinions, of course. But when it comes to those opinions I measure them as a peer, not as a dictator. That decision-making reflects in the code. How do you build APIs? How do you build teams? Which domains do you have working together versus separating? We like to think that technical and human are different, but they have a massive impact on each other. 

How important is formal training for an engineer these days?

It depends on the engineer, and it depends on what you’re teaching them. There are many different things that work in the teaching environment, but there’s lots of things you can learn on the job, and lots of things that work better from coaching or mentoring. But as part of the mix [formal training] can be a very powerful thing. 

Is classroom training valuable?

Yes. Classroom training, we have a bias depending on how good our teachers were when we were brought up. If we’ve had a couple of good teachers, then we can see the value of it. If you’ve had lots of bad teaching, your views can be very set that this is not the way for you to learn. It’s an important part of the mix, but context is very important. 

What about more advanced technical skills like artificial intelligence, machine learning, etc. Is the classroom good for those? 

I took a number of classes in a classroom environment for machine learning. I found that incredibly valuable. Again, it depends how you do it. It really does come down to the quality of the teaching: How interesting is the teacher? How good are the notes? How do they follow up? How do they make sure the knowledge is still in your head? When do you get the opportunity to speak to your peers about the work? As an adult, some of the conversations I have with peers about what they’re doing are some of the most invaluable lessons I could have. If you’re reflecting on the same material that works really well. 

That sounds very similar to DevelopIntelligence’s learning strategy. The company uses practitioners like yourself to teach classes, and it’s not lecture based. Learners actually write code, break it, and have time in labs to talk to one another as they generate ideas on how to solve problems presented. What more can you share about the VP of Engineering role today?

The VP of Engineering role is a really mixed bag. It can be very different for different companies. From a startup perspective, its usually brought in when the cofounder or CTO needs help managing the organization and figuring out, ‘how do I scale this from this size to this size?’ That’s kind of what my job is about. 

For some VPs of Engineering its very much about the technology. It can vary very much. I’m very careful to only get involved in technology if I need to. It’s not that I don’t want to, it’s just that I’m a very strong believer that if you do something that you’re good at, you’re stopping someone else from growing into that position. As far as being strategic about learning, I absolutely do that – leave gaps. That’s fundamental to the survival of any technology company because everything changes all the time.

About the Author:

In an Engineering Director’s Fast-Moving Life, the Only Constants Are Change and Training

June 6th, 2019

For the past two years, Nita Patel has been Senior Director of Engineering at L3 Communications, a global organization that develops advanced defense technologies. Before that she was their Systems and Software Engineering Director.

In her 11 years with the company a lot has changed, and the teams she’s managed have had to adapt quickly. Patel was generous enough to give DevelopIntelligence a look into her work, how she builds an engineering team, and how she keeps pace with the continuously evolving world of technology.

What do you do?

My role is about leading an organization of interdisciplinary development engineers – including hardware and software,  – to achieve our customers’ missions. We typically focus on two core technology areas: imaging systems using different wavebands to enable users to see better in the dark, and laser-based systems to enable range finding, marking and pointing.

Our systems are designed for the individual warfighter. We typically start an idea with the special ops community and migrate more mature designs to larger Army, Air Force or Navy contracts. My job is to make sure we continue to align with our warfighter’s missions and the latest technology to achieve those missions.

How do you build a high functioning engineering team?

Open communications and lots of it: communications with our customers, communications among the team, communications with production teams, communication within the department. We also work hard to provide the tools and data needed to accomplish the hard tasks we ask our teams to complete.

How important is culture to team performance? How do you build yours?

It’s very important. We purposefully build, small integrated development teams with a lead engineer and project manager in order to make sure they have the autonomy to make decisions rapidly. Teams work very collaboratively. Teams need to know they have the responsibility and accountability to execute. Therefore, we are clear about their goals and their constraints, and then we ask them to deliver with as little overhead as possible. 

How has the Director of Engineering role changed in the past few years?

Development cycles need to be faster. Not only do the design cycles need to be faster, the production timelines and duration of production is shorter, so we have to design the next iteration faster. We have to manage insertion of new technology, addition of advanced features and quick production ramps to meet our customers’ demands. 

You mentioned the need to move faster and to manage new tech, production ramp ups and customer demands. How do you do it?

It’s tricky. Sometimes we ask our teams to do more with the same resources; that’s obviously hard. It forces different thinking because ultimately we can’t do the same things. So, there’s a lot of posing questions: yes, this worked for us. Yes, this has been very successful. Yes, it’s very good, but we have new expectations now. How do we change to meet those expectations?

It’s a little bit of change management and asking people to think differently. It’s hard for people to change. That’s where asking questions, finding what else is out there, having people attend conferences and events, or look at different sources of technical information comes in.

How is somebody else doing it? We’re not the only ones who have harder demands. Other people do too. What can we learn from them? Eventually, by pushing and pulling and maybe suggesting, everybody gets the idea. Not that it’s easy, it’s really reminding people that we did well, but now we have to be different.

You talk a lot about different ways of thinking. Does training play a role in prepping people to meet new, greater demands?

Training definitely plays a role. Especially with new tools that can help facilitate work or new techniques, like the software development community moving to more agile techniques. But it’s also reinforcing training by adopting and implementing what makes sense. Then, make sure you tailor the training and then repeat elements of that tailored piece to integrate it into the team.

On the job, you mean.


How important is formal training for an engineer these days? Is classroom training valuable?

To some extent, yes. The dilemma with classroom training is it attempts to be very conceptual, but then there’s an element of taking that concept and applying it to your actual workplace, your people, processes and workflow. Classroom training is helpful to give people that initial sense of the possible, what’s different. But then you absolutely have to do some informal on-the-job training because you can’t take that concept and automatically have it make life magical. Somehow it has to be applied. Application tends to very tailored to your work environment, your people, your skills, products.

DevelopIntelligence systemically creates a classroom environment that’s more like a lab. They work with their clients to find out your strategic business objectives so that we can create a curriculum that will build on those things. It’s not just theoretical or conceptual. People in the class will work on the same things on the job. They’re on their computers writing code, breaking code, etc. Is that unusual? It seems different than the classroom environment you just described.

I think that is unusual. I don’t see a lot of people developing that kind of classroom training that’s very hands-on and very tailored to the group you’re trying to address. 

I think that’s awesome, and it’s valuable because it’s good to hear a theory.

But until the engineering team can actually see it in practice, use it, give it a try, it’s hard to adopt. If you want people to change – which is the whole point of training – you have to make it adoptable, and sounds like that your training meets that!

About the Author:

What machine learning is today, and what it could be soon

February 18th, 2019

If AI is a broad umbrella that includes the likes of sci-fi movies, the development of robots, and all sorts of technology that fuels legacy companies and startups, then machine learning is one of the metal tongs (perhaps the strongest) that holds the AI umbrella up and open.

So, what is machine learning offering us today? And what could it offer us soon? Let’s explore the potential for ML technologies.

Intro to machine learning

Machine learning is the process of machines sorting through large amounts of data, looking for patterns that can’t be seen by the human eye. A theory for decades, the application of machine learning requires two major components: machines that can handle the amount of processing necessary, plus a lot (a lot!) of gathered, cleaned data.

Thanks to cloud computing, we finally have both. With cloud computing, we can speed through data processing. With cloud storage, we can collect huge amounts of data to actually sort through. Before all this, machines had to be explicitly programmed to accomplish a specific task. Now, however, computers can learn to find patterns, and perhaps act on them, without such programming. The more data, the more precise machine learning can be.

Current examples of machine learning

Unless you are a complete luddite, machine learning has already entered folds of your life. Choosing a Netflix title based on prompted recommendations? Browsing similar titles for your Kindle based on the book you just finished? These recommendations are actually tailor-made for you. (In the recent past, they relied on an elementary version of “if you liked x, you may like y”, culled from a list that was put together manually.)

Today, companies have developed proprietary algorithms that machine learnings train, or look for patterns, on, using your data combined with the data of millions of other customers. This is why your Netflix may be chock full of action flicks and superhero movies and your partner’s queue leans heavily on crime drama and period pieces.

But machine learning is doing more than just serving up entertainment. Credit companies and banks are getting more sophisticated with credit scores. Traditionally, credit companies relied on a long-established pattern of credit history, debt and loan amounts, and timely payments. This meant if you weren’t able to pay off a loan from over a decade ago, even if you’re all paid up now, your credit score likely still reflects that story. This made it very difficult to change your credit score over time – in fact, time often felt like the only way to improve your credit score.

Now, however, machine learning is changing how credit bureaus like Equifax determine your score. Instead of looking at your past payments, data from the very near past – like, the last few months – can actually better predict what you may do in the future. Data analysis from machine learning means that history doesn’t decide; data can predict your credit-worthiness based on current trends.

What the future holds for machine learning

Machine learning is just getting started. When we think of the future for machine learning, an example we also hear about are those elusive self-driving cars, also known as autonomous vehicles.

In this case, machine learning is able to understand how to respond to particular traffic situations based on reviewing millions of examples: videos of car crashes compared to accident-free traffic, how human-driven cars respond to traffic signs or signals, and watching how, where, and when pedestrians cross streets.

Machine learning is beginning to affect how we see images and videos – computers are using neural networks to cull thousands of images from the internet to fill in blanks in your own pictures.

Take, for instance, the photo you snapped on your holiday in London. You have a perfect shot of Big Ben, except for a pesky pedestrian sneaking by along a wall. You are able to remove the person from your image, but you may wonder how to fill the space on the wall that walker left behind. Adobe Photoshop and other image editors rely on an almost-standard API to cull other images of walls (that specific wall, perhaps, as well as other walls that look similar) and randomize it so that it looks natural and organic.


This type of machine learning is advancing rapidly and it could soon be as easy as an app on our phones. Imagine how this can affect the veracity of a video – is the person actually doing what the video shows?

Problems with machine learning

We are at a pivotal point where we can see a lot of potential for machine learning, but we can also see a lot of potential problems. Solutions are harder to grasp as the technology forges forward.

The future of machine learning is inevitable; the question is more when? Predictions indicate that nearly every kind of AI will include machine learning, no matter the size or use. Plus, as cloud computing grows and the world amasses infinite data, machines will be able to learn continuously, on limitless data, instead of on specific data sets. Once connected to the internet, there is a constant stream of emerging information and content.

This future comes with challenges. First, hardware vendors will necessarily have to make their computers and servers stronger and speedier to cope with these increased demands.

As for experts in AI, it seems there will be a steep and sudden shortage in the professional manpower who can cope with what AI will be able to day. Behind the private and pricey walls of Amazon, Google, Apple, Uber, and Facebook, most small- and medium-sized businesses (SMBs) actually aren’t stepping more than a toe or two into the world of machine learning. While this is due in part to a lack of money or resources, the lack of expert knowledge is actually the biggest reason that SMBs aren’t deeper into ML. But, as ML technologies normalize, they’ll cost less and become a lot more accessible. If your company doesn’t have experts who knows how you could be using ML to help your business, you’re missing out.

On a global level, machine learning provides some cause for concern. There’s the idea that we’ll all be replaced in our jobs by specific machines or robots – which may or may not come to fruition.

More immediately and troubling, however, is the idea that imaging can be faked. This trick is certainly impressive for an amateur photographer, but it begs an important question: how much longer can we truly believe everything that we see? Perhaps seeing is believing has a limited window as a standard truthbearer in our society.


About the Author:

AI in Training: What You Need to Know About Now

December 4th, 2018

Artificial intelligence is no longer just the stuff sci fi movies are made of. It’s quickly filtering into our everyday lives thanks to increasingly sophisticated machine learning applications.

Andrew Schwartz is Chief Technology Officer for software development startup Catchi Inc, and an instructor for DevelopIntelligence. He’s building an AI-powered real estate app that will bring machine learning and AI to individual cell phones to match prospective renters and buyers lifestyles, desires and budget with available options. It’s practical and useful, yet the technology behind it is quite creative, as it’s never been done before.

So, if you’re waiting anxiously for cyborg technology, digital empathy and robots as friends, you may have to wait a bit longer. AI is more foundational in nature, which is why many organizations have aggressively adopted predictive analytics. Meaning, they use machine learning to infer customer needs and make it easier for sales and marketing teams to individually target potential customers.

As an example, when someone downloads a white paper from a corporate website, data analysis and machine learning algorithms cooperate to infer where the downloader works, match that information with transaction information in corporate databases, and figure out how likely that company is to purchase specific products. Then AI processes will layer on context information automatically so a human sales rep can individually target the right people and sell the most profitable product bundles.

Full AI acts interchangeably with us humans. In enterprise situations, we’re not there yet, but the race is on. Therefore, it’s important for technical talent to learn more about AI technology and its application.

AI Now – AI Soon

Why? Strong AI applications generally involve organic developments from within the engineering organization, Schwartz said.  “One off product management requests won’t create AI applications,” he explained. “The engineering organization has to understand what data they’re sitting on and how to use it.”  Machine learning depends on a consistent flow of data throughout the value chain, and an engineering team that classifies, marks, and builds features from that data.

Let’s say engineers are programming a SaaS server farm for an enterprise software provider. They’re asked to use AI to automatically improve machine efficiency and reduce the cost of shifting data as machines fail or overload. Schwartz said a good AI solution will generally leverage all the underlying system data and context information, whereas a standard engineering pipeline will only mark and save a small fraction of exception or state information in one-off log messages.

As AI systems provide richer features, Schwartz said you need an organization-wide understanding of what data to archive, how to catalog it, and how to feed it in into the right models. Over time, we may also encounter some interesting confidentiality problems, even in cases where we think that privileged data has been aggregated and obfuscated.

“There are a lot of challenges in data management, massaging and collection, cleansing and securing to simultaneously maintain security and privacy while still enabling rich analysis,” Schwartz explained.

The first step in teaching AI involves helping students understand pure data management and data cleansing pipelines. Machine learning algorithms leverage a lot of data, and people need to understand how to work with these large data sets. “When I teach AI or machine learning classes I also help students understand information content,” he said. “Then I put that in a standard, day-to-day context to help them understand how to think about information in general, and how to match that information to different algorithms.”  

Schwartz said it’s often helpful to students to think in terms of visual systems before discussing more abstract computer systems. “I find that people very easily grasp the visual. From that you can move on and talk about text analysis, predictive analytics and things like that.” Then, when someone in an organizational context provides requirements, engineers can understand the relationship between what they learned in class and that particular business requirement

The Value of Understanding

Schwartz said the goal in teaching this kind of subject matter is to help students understand the fundamentals, and to give them a framework for ongoing learning. To that end, DevelopIntelligence offers a two-day course, Machine Learning Data Foundation, and a three-day course, Machine Learning Algorithms and Applications. Both are 40 to 60 percent lab-based. Students come to class, work intensively in groups solving different problems, doing analyses and writing code. “We have ongoing conversations to gauge what students understand, their gaps and to communicate very specific information to facilitate them solving real problems,” he explained.

Students are usually software engineers who are actively working on data intensive applications, and they often bring ideas about applying AI in their current projects with them into class. They’re either working on, or about to join, a machine learning project, and are either seeking architectural help with these projects, or they want to explore the underlying concepts. Sometimes, they’re engineering or product managers working to roll AI into their products or teams.

“Students already working on machine learning projects often have working knowledge of some or all of the techniques but may want to learn more of the theory,” Schwartz said. “They might not understand how to put it together, or how to think about the data flow that you need.”

Students with an educational background in software engineering but who are not currently writing code mingle with students who are currently writing machine learning code in the same class. This is useful because instructors can match up each group’s needs and discuss practically how information flows through an organization, and how they could modify it to make better machine learning products.

“For example, if I have a product manager and a hands on software architect in my class, they may not yet realize that the way the requirements come in doesn’t make it automatic for the background data to be preserved,” Schwartz said. “Or, even if preserved, the important data elements may not be stored in an accessible manner for machine learning. It’s a way of setting up a conversation between product management and system architecture after the class to make the organization AI-ready.”

Schwartz said because we’re still very early in the enterprise roll out of machine learning and artificial intelligence, training is largely focused on getting engineers up to speed on existing tools to perform predictive analytics. “The future is probably going to be a lot more like self-driving cars,” he explained. “Meaning, there’s a transition you can see coming as enterprises roll out closed loop optimization applications. In this world, the software learns from the data as it comes in, and automatically improves the end user experience. That is a very different software life cycle.”

It’s something to look forward to.


About the Author:

It May Soon Be a Serverless World. Are Your Developers Ready?

November 23rd, 2018

It goes without saying that what training you offer your technical talent is as important as how you train them and when. But in the fast-moving world of technology it can be tough to discern which trends to follow, and which to let pass you by. Making these kinds of decisions is critical, however, because in most organizations there are only so many training dollars to go around. They must be spent carefully and strategically.

David Linthicum, Chief Cloud Strategy Officer for Deloitte

David Linthicum, Chief Cloud Strategy Officer for Deloitte Consulting and author of “Cloud Computing and SOA Convergence In Your Enterprise: A Step-By-Step Guide,” spoke with DevelopIntelligence recently to discuss a trend learning leaders and technical talent should definitely pay attention to in the world of the cloud: serverless container orchestration.

What is the state of serverless container orchestration currently?

People are experimenting and crossing work streams between the serverless world, which is the stuff provided by major cloud providers to decouple developers, and dealing with infrastructure and the ability to leverage containers. As we move forward with both technologies, we’re realizing that containers are very powerful. We’re able to extract native platform differences from applications, and write serverless applications to support them.

How are organizations using it?

Organizations are experimenting right now as well. They’re dealing with Docker-based containers and container orchestration systems such as Kubernetes, and they’re dealing with serverless systems offered by the various cloud providers; they’re not necessarily combining the two.

They have DevOps shops and people who are dealing with new technology and trying to figure out where it’s going to fit within the enterprise. They’re doing some prototype applications using it, they’ve gotten some early versions of the systems out there and are waiting to see how it bears out in the market. Number one, does it work for us and provide value within the space? Number two, do they think the market’s going to pick it up? Someone’s got to fund it for the next 10 years since you’re walking down the aisle with a particular platform.

Will the market pick it up?

It’s a no brainer. Serverless is a good idea. Containers are a good idea; combining them both is a great idea. It takes normally a year, a year and a half before the technology is understood, and it gets to adoption cycles in some of the enterprises. I suspect most of the issues will be solved, just like they were with serverless orchestration and containers in general. Serverless computing had issues when it came out, the ecosystem grew around it, and everybody picked it up.

What other changes are forthcoming and why?

Adoption will accelerate in the next six months to an extreme level. The container stuff is of big interest to people in the space. It’s going to grow. I wouldn’t call it an explosion, but developers will leap onto it, and suddenly it will be systemic to a lot of things we do in DevOps. Going forward, it’s going to be a serverless world.

We’re going to have serverless databases; we see those popping up now, moving us from having to deal with infrastructure as we build these systems. Serverless containers are the same way. I don’t have to guestimate how many servers I’ll need, how much memory those servers need, what kind of processors and storage I need.

If we extract developers from doing that, we remove many of issues in over- or under-allocating resources, and the big thing I’ve found in my world, not putting the resources back. You provision them, forget to deprovision them, and suddenly you get a big bill at the end of the month. Serverless is about leveraging what I need for a particular task, and then returning resources back where I found them instantly after we’re done.

In the case of containers, we can create a container that may be distributed in nature, made up of many different applications or even many different containers that run within a container orchestration layer like Kubernetes. The benefit is it’s easier to deal with, easier to distribute; we can also move it from cloud to cloud without doing major ports. The portability is going to come along for the ride.

This is the next big trend. Eventually this will boil down to development stuff. There’s probably no world that’s faster moving than developer technology, and cloud-based stuff is accelerating everything right now. As we adopt it, like continuous integration in the DevOps world, it becomes part of the infrastructure.

It sounds like a sure thing.

I think so because of the trends I see with larger cloud providers leveraging serverless everything. If it’s easier, it’s not going to cost you more money, it will even cost you less money, and you can do things faster, it’s typically going to win. Container-based stuff, a better way to architect a system that forces you to think about a distributed computing paradigm, that’s a slam dunk. The downside would be you’re going to spend a few more dollars on development costs building a container-based application whether it’s serverless or not, but you have something that’s completely portable, and in the orchestration layer, completely scalable.

A lot of people are willing to make that upfront investment if the ROI will be substantial.

Yeah, pretty much everybody that I’m dealing with is of that opinion. It’s my recommendation. I’d rather see people leverage cloud native features and the right enabling technology versus just take a lift-and-shift approach where we throw the application code as quickly as we can and the data as quickly as we can on public cloud-based systems and hope for the best. That’s never a good strategy because you’re going to have to revisit those applications at some point in the future and fix them. Do it right the first time.

How should organizations train their technical talent to deal with this new technology?

The two things I recommend for people who want to move faster with technology, building their skills and knowledge and doing things in an experimental, hands on kind of way, is video training as well as bootcamp training. A weekend class on how to do serverless, another one on containers and another one on how to do continuous integration and security systems, things like that. Cram the information into your head as quickly as you can, and back it up with learning exercises and real use cases.

You’ve also got to use it right away. Part of bootcamp training is you use the technology as you learn. You have your laptop in front of you, and you’re logging onto a cloud account, building applications with everybody else in the room. You can ask expert trainers about issues and getting around certain things.

In essence, you get your first project experience under your belt without actually having a project. By the time you’re ready to go off and work you’re very fairly well seasoned in the technology and understand how to use it. It’s not just knowledge that you regurgitate during a test, which is an issue with certifications sometimes. Ultimately your ability in the developing world is your ability to build an application. Focus on that.

Understand that it’s a combination of two technologies. Therefore, everything you’ve learned in the world of serverless and in the world of container orchestration is still applicable. Understand how they’re being combined, how they’re being leveraged and the new features and functions around that. Don’t be afraid. Also, back up and learn some of the basics of serverless and containers if you don’t have the fundamentals, or you’ll be left behind. [/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” background_color=”#f57e25″ background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” margin_top=”0″ margin_bottom=”0″ padding_top=”30″ padding_right=”10″ padding_bottom=”20″ padding_left=”10″][fusion_builder_row][fusion_builder_column type=”4_5″ layout=”1_1″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” undefined=”” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” padding_top=”0″ padding_right=”” padding_bottom=”0″ padding_left=”” margin_top=”” margin_bottom=”0″ animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_title hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” content_align=”left” size=”2″ font_size=”” line_height=”” letter_spacing=”” margin_top=”” margin_bottom=”20″ text_color=”” style_type=”none” sep_color=””]

Create Your Internal Cloud Academy

About the Author:

Is Agile Working For You? Metrics For Agile Success

November 14th, 2018

Making the decision to move to an agile environment is tough enough, but opting to stay the course when agile gets difficult is even harder. In fact, it isn’t uncommon for companies to revert back to what they used to do; it is easier.

Like anything, determining whether agile is working is impossible if you’re not measuring for success. Likewise, it’s easy enough to think you’ve adapted enough of the “agile culture”, without tracking actual output and change. But most people who fail at adapting agile in their work environment do so because they haven’t tracked their successes.

So, why did you switch to agile anyway? The promise is big – reducing risk across the business and delivering results quicker and more efficiently, which results in greater customer satisfaction. Agile means that things change, but that you (all of you!) have to actually do the work. Talking about change and actually changing are two very different things, which is how these metrics will help you determine whether you’re actually changing to be more agile.

Measuring Agile Success

Metrics have a bad reputation, most of which is unwarranted. One sticking point? Choosing which metrics mean success for you.

There are a lot of ways to measure input and output, speed and efficiency, process improvement, and customer satisfaction, so which ones are most important? It’s less about which ones are the most important, as many measures similar things in different ways, but which are best for your team:

  • Which metrics resonate the most?
  • Which metrics make the most sense for your business?
  • Which metrics can be tied to your overall KPIs?

The following sections provide an overview on product, process, and business success.

Achieving “done”

Turning to agile is supposed to make it easier and more efficient to reach a finished product. Agile relies on pre-determined sets of time, commonly a series of two-week sprints, and the team sets a goal of what to accomplish within each two-week sprint that will set them up to finish the product over the whole series of sprints. A common agile approach is that the product goals can shift over the series of sprints, but the project scope should not be changed in the middle of a single sprint.

Agile metrics, then, can tell you exactly where your development process is improving – or not.

The biggest, most popular way to track success is on-time delivery, but that metric may come a little too late. Here are common ways to track and achieve “done” while working towards the finish line:

  • Sprint burndown, which tracks how much work the team has completed within a single sprint in comparison to what the team said they’d accomplish. Constantly finishing the work before sprints’ end means your team may not be taking on enough work, whereas rarely completing what you set out to do is a sign that you’re overcommitting.
  • Version burndown, which is similar to a spring burndown but tracks progress over several or all sprints (epics), not just a single sprint. This metric can help determine whether you’re making zero progress or if the scope is changing too much or too frequently for meaningful work to be completed.
  • Cumulative flow diagram, which tracks the workflow across all teammates involved. This is important to see who blazes through work and who is stuck on a problem, which can allow more teamwork to accomplish the sprint’s goals.
  • Defects, which shows current problems and bugs that exist. Tracking these helps determine how much current time you can or should dedicate to address defects during development or whether you should push some off to a post-release fixing or saving certain defects for future releases.

Process improvement

The goals of agile are clear – efficient, speedy deliver that results in customer satisfaction – but the how is trickier. How do you improve? How do you get faster? How do you get more efficient? The answer lies in continuous improvement. If you’re seeking to implement an agile culture, then the team and management must support continuous improvement.

Here are two ways to track whether your process is actually improving:

  • Control chart. Though this chart can be used in tandem with measuring “done”, a control chart shows the progress of individual pieces or components. This is useful because it immediately reflects whether your tweaks and changes (being agile) are actually helping, hindering, or having no result on the work.
  • Velocity, which tracks the average amount of work over a sprint. Also useful in measuring for “done”, agile experts also know that tracking velocity over time confirms whether a particular change actually improved your process.

Business success

Of course, a finished project isn’t enough. Your entire development system may be agile but if your clients or customers aren’t satisfied with the working and final products, what’s the point of it all? Only business metrics can tell you whether your products are meeting the client’s or market need for it.

The best way to track this is to engage your customers in several ways and at different points of the process. Metrics like the ubiquitous net promoter score (NPS), sales figures, and stats that consider usage or support calls versus delivered features are essential to gauging whether successfully implementing agile culture also successfully improves your business – that’s the whole point.

About the Author:

How to Choose The Right Technology Stack

October 24th, 2018

When you’re building a new app or software solution, before you can begin the actual development, you have to decide just what language, framework, and technology will power your development and your product. Choosing the right technology stack for your project, team, or entire company can feel daunting, especially if you’re not exactly an expert on all this.

Luckily, we’ve got you covered with some strategies and approaches on choosing the technology stack for your new product.

What is a stack?

A stack refers to any combination of software products and programming languages. Technically, there are two types of stacks: a technology stack and an application stack. A technology stack is a more generic term of any software that serves as the infrastructure for a computer, depending whether it supports a server or a client computer.

Today, though, we are usually talking about application stacks, the programming languages and frameworks that developers rely on when building an application.

Two sides of application development

From a developer’s perspective, applications are divided into two sides: the server-facing side and the client-facing side. The server-facing side is often known as the back-end, as in back-end development, because it’s not something the client or user will see or engage. The client-facing side, on the other hand, is known as the front-end.

Back-end stack

Software that supports the server side and drives the functionality of the app includes the web framework, chosen programming language(s), database, web server, and OS that builds on the server.

Choosing a program language can be tricky, but each language has an associated framework, which provides tried-and-true application program interfaces(APIs) of common apps and functions, such as data access and authentication, so your developers can tweak the wheel instead of reinventing it. Common examples of languages and their frameworks include:

  • Ruby uses Ruby on Rails
  • Python uses Django
  • JS uses Node.js
  • PHP uses Laravel
  • C# uses .NET

Front-end stack

The client side relies on software like user-facing languages, such as JavaScript, CSS, and HTML, that run the web browser or the native application, if the application is a native software for the phone, tablet, laptop, etc.

Frameworks on front-end are optional but can help build rich interactive experiences or provide a standardized format for clean, responsive web pages.

Tips for choosing/determining your technology stack

Choosing a technology stack is overwhelming, especially when non-techies are involved or in charge of it. There are a lot of theories behind how to choose your technology stack, but no clear-cut answers. Instead, let’s explore some common approaches:

  • The path of least resistance. If you’re just getting started with developing an app, keep it simple. Industry experts know that a new product is more likely to fail than to succeed, so testing potential interest before spending pouring tons of cash and countless hours into developing something. For this, stay agile: create a basic product landing page, build a single feature using a common language and – voila – you’ve begun development!
  • Size matters. Similar to keeping it simple, the size of your software solution matters too. If you’re building a small project or want to test the waters, start with a simple solution like a content management solution (CMS) or WordPress, which support multiple programming languages and already have a lot of out-of-the-box APIs so you don’t have to reinvent the wheel. This won’t work for large or complicated projects, but you’d be surprised how quickly you can reduce your time to market with these options.
  • Tried-and-true stacks. Skip the rigmarole of decision making and opt for a tried-and-true stack. One of the most common stacks is LAMP, which means you’re using Linux, Apache, MySQL, and PHP. Or, if you’re inclined to Ruby oy Python, you can use these in place of PHP. Other common stacks include:
    • .Net
    • Ruby on Rails (ROR)
    • MEAN, comprised of MongoDB, Express.js, AngularJS, and Node.js.
  • Open-source options. A lot of developers favor open-source languages and frameworks because they have built-in options and tend to be more secure – because so many people are using them and updating them, you don’t have to build everything from scratch. A big bonus is that you can refocus your energy and resources on the business side, not the technical side, of your project.
  • Get technical. If you’ve got enough knowledge and know-how to choose a custom stack, you already know that it’s not only about professional, functioning software. Instead, consider these criteria, too:
    • Users. Know who your users are, who are they and how will they work, what browsers do they use. This helps you determine whether you should design for mobile first/later/only, or perhaps your web design is more relevant.
    • Processing size. The more processing and data your app handles, the more it needs a language and framework that supports speed and high performance.
    • Low latency.
    • Scalability and maintainability. As customers buy and use your product, is your app ready to be scaled up for size and performance? If not, you may lose customers who aren’t willing to wait around for updates.
    • Security. This component becomes more important by the day. Is the stack you’re choosing the most secure it can be? Does it update its security protocols often?
    • The ecosystem. You may want to choose a brand-new language and framework that seems perfect for your goal – but if there’s no ecosystem (experts, online tutorials, conferences, community), you may struggle to find the support and answers you need to use it effectively.
    • Long-term support. All technology has a lifecycle – as it grows, there are more resources for support and the vendor is likely in business, offering customer service and updates. But if you’re going with a newer company, their technical support may not be reliable or, worse, around for long.  
    • Cost. Last but not least, the cost of your stack is vital – if it’s too pricey and you spend too much time on developing and testing, you won’t make your launch date, adding significantly to your overall cost.

Ultimately, the best guidance may be this: Consider your product, consider your myriad options, and then just get started. You could spend months determining the best technology stack, and in that time, you’ve lost any competitive edge. Or, you may think you’ve built the best stack for your needs, only to actually get to work and none of it feels or goes quite right.

About the Author:

Traditional Learning Analytics Provide No Value

October 22nd, 2018

If you ask any LMS administrator what they report on a regular basis, you might hear things like course completions for e-learning modules, assessment scores, or class attendance. Historically, these things mattered – a number that proved the learner did something and got credit for doing it. The problem with those types of metrics is that they don’t really demonstrate whether learning actually took place. When it comes to true learning analytics, very few of the traditional levels of assessment provide value anymore. Technology has advanced in such a way that learning analytics is now comprised of tracking the transfer of knowledge and the effects that transfer has on a business.

Let’s take a look at Kirkpatrick’s four levels of assessment, one at a time. First, there’s Reaction. Did the participant find the learning event to be enjoyable and relevant? Answering this question on a survey tells the evaluator that the event wasn’t boring, the trainer was likable, or there was an above average catered lunch because that’s all that stood out to the participants. There’s nothing in this data that tells the evaluator whether learning actually happened. Participants can fully engage within a class and still walk away no more educated than they were when they walked into the class.

To really assess whether learning happened, let’s move on to Kirkpatrick’s second level – Learning. This level is meant to measure how well participants acquired the expected knowledge and skills based on participation. A typical assessment strategy that demonstrates an increase in knowledge and skills could be a pre-test followed by a post-test. Surely if participants score higher on the post-test than they did on the pre-test they have learned something, right? Those numbers are undeniable. Except that all that demonstrates is a participant’s ability to recall and then recite the information presented.

How many of you reading this ever crammed for a test in high school or college? How much of that information did you retain after the test was over? Let’s check the science on this one. According to German psychologist Hermann Ebbinghaus’s forgetting curve, humans tend to lose their memory of freshly learned knowledge in a very short time if they do not make the effort to retain it. In other words, use it or lose it. If you don’t apply what you’ve learned, the training will not stick. So, when we assess learners immediately after a class, chances are they will forget what they learned as soon as they click the submit button on that test.  

This is where most learning evaluations stop. The learning event occurred, and the session was evaluated, so the job is done, right? Wrong. Where you can really begin to see whether learning stuck is through Kirkpatrick’s third level – Behavior. Did the participant changed his or her behavior based on what they learned? The idea that you can observe this behavior change is exactly what can demonstrate whether learning has been transferred.

For tasks that don’t require decision making, repetition is the key to increased performance, or changed behavior. Think about a basketball player practicing his jump shot. Technically, the execution is perfect. Swish after swish alone in a gym. But what happens when he gets on the court for the first time, his team is behind by one point, the clock is winding down, and he has to choose to either take the shot in the face of a defender, or pass the ball to an open teammate? The behavior he has been training to perform may seem like it’s all about the shot, but it’s not. The goal of his training is to score points. The player’s decision making competence is what demonstrates his learning.  

Author and research translator Will Thalheimer is an out of the box thinker when it comes to learning transfer. He developed a Learning Transfer Evaluation Model (check out the full paper here, or the one-page summary here) that speaks to what learning evaluations should look like. Given a situation where a decision is necessary, assess the situation, and rely on an individual’s training to make the right decision and take the right course of action.

Let’s put it into a customer service context, for example. When the phone rings in the call center, there’s no way for the support rep to know who’s on the other end of the line. It could be an angry customer, or it could be someone with a general support question, but once they say “Hello,” it’s time to act. They have to think, decide, and act in a matter of seconds in order to solve the customer’s problem and keep them satisfied.

Getting back to Kirkpatrick, let’s move on to Level 4, Results. This level shows us where true learning analytics live. It all starts with the desired outcome for the learning event. It’s not about whether the learner passes a test, or whether or not they enjoyed the training. It’s about can the learner perform a task that drives business results? Can the learner sell more widgets? Can the learner handle customer inquiries faster with less errors?

It takes a fundamental shift in how you design a learning event to think through what the ultimate outcome should be – up front.  As learning professionals, we’re tempted to look at levels one and two as the golden ticket, but that’s only half the battle. Those metrics tell you whether people like what you’ve built. Moving on to levels three and four truly demonstrates what impact a learning event has on the business. That’s where companies start to realize how valuable learning is for their bottom line.

About the Author:

Training Is the Key to Technical Career Longevity

October 16th, 2018

Training is a perk in some companies, and that works for them. But for savvy technical talent, training is more like blood. Developers and engineers need it to survive. It’s the key to having a long and viable career, and it’s key to most businesses survival in terms of innovation.

Samantha Bureau-Johnson, vice president for business process solutions and the Project Management Office at Blue Cross Blue Shield North Carolina, said if learning leaders want to effectively package training as a career development tool – and let it do triple duty as a retention aid and innovation driver – it has to be part of the initial employment offer. Essentially, in addition to salary and benefits, technical talent should know they will get an annual investment in continued development.

“Technology is advancing and evolving at such a rapid rate, you can’t learn, say, Java and then be relevant with just Java two years down the road,” she explained. “It’s more how do you build a career ladder around a particular topic of technology? For example, if you have a development team doing mobile applications, what are the technologies in mobile? How are you helping your talent get time and capacity to learn them, and innovate, and have formal training to learn new types of technologies?”

Training Is Good for Talent and for the Business

Bureau-Johnson painted a compelling picture of what can happen when an organization doesn’t prioritize training, and it’s expensive.

“Think about how costly it is to bring in a new hire, train them on your business, and build depth and breadth of experience,” she explained. “Every time you turn over, it’s exponentially more costly than to keep your staff. If you’re training and developing your talent, helping them uncover their potential, uplifting their skills and capabilities as well as giving them a path to more and more challenging work, that builds employee satisfaction and loyalty.”

Providing technical talent with continuous learning opportunities will not only help serve your customers via the new products and services they will create, it will save the organization money by keeping attrition low. For instance, Bureau-Johnson said a company in a growth mindset doesn’t want to constantly deal with the churn of attrition because employees don’t feel they’re learning, growing, able to add value, be creative, and work with colleagues who are learning new tools and technologies and using them to solve organizational issues.

But training ROI isn’t just about saving recruiting and retention dollars. There are benefits in engagement, innovation and branding as well. Bureau-Johnson said employees will not only stay, they will tell their colleagues to join them in an organization that makes a real investment in its technical talent.

“Years ago when .net was a new, emerging technology for us, our IT leadership worked with our learning arm and brought in a Java bootcamp,” she said. “They had COBOL programmers who wanted to learn the new technology and put them through the bootcamp. Many of those folks are still with us doing meaningful and important technical work. It says: ‘You’re interested in developing me and helping me learn these new technical skills. Therefore, I can remain relevant and continue to provide value for the organization.’”

Bureau-Johnson has started programs in robotics, digital process automation, and is currently collaborating with IT on an AI pilot. That type of training activity is good for the business, taps into talent interests, and promotes that sense of loyalty that leads to low attrition numbers and high performance levels – if leaders weave it into the organizational culture. “If you do that they know, ‘I’m not going to be stuck in a declining technology. I might be working on that, but my organization is also looking ahead, and I’m able to voice that I want to work in a new technology.’”

Training Begins and Ends with a Strategic Workforce and Business Plan

To implement technical training strategies that build long and satisfying careers, promote innovation and performance, and advance an organization’s employment brand, Bureau-Johnson said leaders should have a strategic workforce plan that understands intimately the enterprise strategy. Where does the organization want to go over time? What is the gap between the current and future state?

Maybe there isn’t a gap. Maybe the focus is ensuring that technical talent are fully aligned to future business plans and working effectively with the HR and learning functions to identify the necessary abilities, skills, talent, and emerging technologies. Then the learning leader has to have meaningful performance conversations that are focused on employees’ career goals and interests, and have a roadmap ready to address talent development and talent management concerns.

“For my team, we look at our talent quarterly,” she said. “We look at our talent profile both in the near- and long-term. We work on the macro training that we need, then we look at each individuals’ micro training. You have to look at multiple facets, and spend time doing it. Then you have a framework and a cadence so it’s not a one-off thing. It becomes a tapestry, the fabric, your DNA, something leaders just do and your employees start expecting – in a positive way.”

It’s not about training, Bureau-Johnson said, it’s more. Positioning training as a multi-faceted career development and talent management tool is about building a culture of continuous learning. “It’s how you help your employees stay relevant, and create an environment where they seek out how they can be relevant. To do that there has to be interest and motivation at the leadership and the employee level.”

Companies should think about training their talent strategically, as an investment they need to build and grow not unlike they would a financial portfolio. “This is the key to executing my strategy and to my team’s growth so we can activate the corporate strategy,” she explained. “This is how I’m going to achieve whatever outcomes the business wants.”

It requires a significant front-end investment, but Bureau-Johnson said the rewards are definitely there on the backend.

About the Author:

Adopting a DevOps Culture May Solve Your Problems

October 4th, 2018

As it goes in technology, DevOps is one of the latest trends in the worlds of IT and software development. But it can be a bit wily – sometimes hard to define and measure, companies and managers may balk at adapting DevOps, unsure if it’s the right solution for their business needs.

We understand this confusion because DevOps is more of a culture and way of communicating than an easy-to-understand software solution. You can’t simply install some pieces and say that DevOps is working or has changed your environment.

But DevOps may be just what your company needs when it comes to a shift of something. Follow along to see how DevOps can be a helpful lens for shaking things up – plus some examples of well-known companies that have already put it to good use.

What is DevOps?

The proliferation of technology in the workplace has organically divided into two areas of technology operations (hence the name Ops in both terms):

  • ITOps, which houses a lot of the back-end technology that supports the workplace. Can include network infrastructure, help desk, computer operations, and server and device management.
  • DevOps, short for development operations. This area includes technology that ITOps likely supports with infrastructure, but DevOps instead drives software developers (and other business units) who focus on designing, coding, and testing solutions for business products and business analysis.

While ITOps may be most successful with a series of processes and standard implementations and budgets, DevOps is less controllable because the outcome is often unknowable: how long, how much money, how much manpower will it take to build the right software solutions for the company?

Usually when companies talk about DevOps, they are making a change in how a team, or many teams, communicate about software development. Though DevOps is often mentioned in the same breath as agile development methodologies (as opposed to the older, slower waterfall method), DevOps and agile are not the same things.

Instead, agile and DevOps are often used in tandem. DevOps is a wider cultural shift than the specific processes of Agile methodologies. Think of DevOps as a workflow – it takes the tenets of agile (people, frequent deployment, and automation), but adds in a very social element: communication.

Indeed, communication is the heart of DevOps, which encourages communication across teams and silos, and bringing in the customer when appropriate. DevOps encourages documentation (sometimes a dreaded word) but in the spirit of making things easier: how can we automate processes, how can we share what has been tried and worked (or didn’t), all in support of a larger goal: company growth and success.

This large goal doesn’t immediately offer up clear solutions, but instituting a DevOps approach, whether to a single team or the entire company, often means adding or improving on the following elements:

  • Automation
  • Rapid testing
  • Continuous deployment and delivery
  • Security
  • Organizational culture with a focus on the community, particularly between developers and IT, though the entire company can get on board, too

What Can DevOps Do For Me?

Because it’s not a single software solution, DevOps goals are not single-minded. A successfully integrated DevOps culture can result in improved software and IT processes, sure, but it can be a lot bigger than that. Needed a tech-friendly attitude change? Want to show your customers that you’re pivoting to become a product that truly embraces technology, making their lives better? DevOps may be the answer.

A lot of articles touting DevOps are theoretical in nature. But we want to show you how DevOps can make changes – large or small. In fact, the success of DevOps can be measured in both technical and business metrics. Common markers of successful DevOps implementation include speedier time to market, thanks to shorter development cycles which allow for increased development frequency. (Changes that both your employees and your customers appreciate.)

Here are three companies who are crushing it at DevOps:


Back in the day, Netflix shipped DVDs of shows and movies. But when they wanted to wade into the streaming world (a very small world at that time), there was no path, infrastructure, or commercial tools to ease this transition. Netflix struggled initially with solutions, which is why consumers were slow to adapt this streaming platform thing. A DevOps culture allowed them to wade into open source solutions and then get really creative: they actually relied on hundreds of volunteer developers to test out what they were building. This approach helped them both identify and resolve problems proactively, most before they reach the consumers.

Today, Netflix continues its commitment to open source and automation, with devs deploying code countless times per day over a hundreds of microservices.


Major software developer Adobe was used to doing things a certain way: building heavy-hitting, pricey programs and releasing updates a couple times a year. But a few years ago, Adobe began embracing the cloud as a way to gain more customers: subscription plans made Adobe products like Reader, InDesign, and Photoshop more affordable, but it also meant that had to learn to continuously deploy software updates. Using a DevOps platform, the company began to better manage and automate deployments. Today, they have rapid development alongside better product management and it has resulted in 60 percent more app development than its pre-DevOps approach allowed.


The vintage and handicraft marketplace is a good example of DevOps as an overarching culture, not limited to a specific team or department. A decade ago, Etsy had a loyal fan base but their slow website and frequent downtime keep them from gaining real momentum and revenue. In a significant shakeup, the company hired a completely new technology management team that quickly replaced its waterfall approach to software development with a more agile approach that has spread across the entire company. This resulted in speedy, frequent software development and today they continuously deliver more than 50 deploys a day.

Getting Started With DevOps

So, shifting to a DevOps way of life can in fact be measured, and its success may easily spill over into areas you weren’t expecting. But how do you get started with DevOps?

Most companies start by bringing in leaders who are familiar with DevOps. Personal training is also essential, however, because no single software solution can usher in a culture shift. Instead, training helps employees understand DevOps ideas and build workflows that are specific to your business or product needs. Because the goal is to increase and improve collaboration and innovation, DevOps training by necessity must be specific to your organization and long-term goals.