— ROELBOB
Category: Blogs
-

The complexity of communication: Are we all Masters of Disaster?
To better the communication between people in tech teams is one important issue in daily work. Although we all grew up with communication from our early childhood on, we know, that communication often fails. But what do we all do about this discrepancy? Why do we accept eyes wide open these frequently painful failures? Why don´t we really care about misunderstandings and their consequences? Are we all Masters of Disaster?
The answer is: Communication is a very complex topic on both sides of the game – on the sender´s side as well as on the receiver´s. To get aware of what is going wrong in our communication we have to do some very hard stuff: self-reflexion (which is indeed sometimes painful and hard to bear), changing familiar behaviors and leaving the comfort zone. This is really hard work besides all the tasks of our daily job! Additionally to a strong will, we need persistence, patience and most of the time aid from the outside to be successful in changing our communication! But in the end this entire struggle is worth it!
In DevOps teams, where “ship fast” is taken over from “ship faster” to fulfill the goals of “continuous of everything”, a well accepted and effective, but appreciating communication is the basic skill for success. This means that building a successful team is comparable with building a house: if you spend enough in a strong and solid fundament, it will carry the house you want to build on it for a long, long time. But you have to consider, which kind of house you want to build to develop the fundament.
In cross-functional teams with high demands – those teams we actually find in the tech industry – communication is the fundament of whatever is built on it. Communication is part of the culture and it is the tool
- people get in contact with each other
- knowledge is shared
- goals and visions are shared
- feedback is given
- failures and success are shared
- appreciation is shown.
People in such demanding environments need to trust and rely on each other. Or do you want to share your knowledge with someone you do not trust? The success of the team depends on the relationships between all teammates including the leader. Relationship and trust are built among other things through the way we communicate with each other. No it is time to say, that communication is not only what we are saying with the words we are using. Communication goes far beyond the meaning of the words. Remember “Cce” – Communication causes emotions! Even in the tech world, which is still a male dominated world, communication causes emotions and feelings – although lot of people may refuse this.
With speaking about the complexity of communication it means that there are on the one hand three different parts of sending a message and the impact on the receiver. On the other hand there are lots of possibilities how to interpret the messages. Lots of possibilities – this seem to be a source for many misunderstandings! Now be aware that an immense part of our communication – sending as well as receiving – happens in our subconscious!
Most probably you have heard about the three different parts of communication: the verbal communication and the nonverbal communication with its subitems ´paraverbal communication
and ´body language.The verbal communication is about the wording, the language, the syntax, the grammar and yes, it is also about the logic! There you are: “Things have to be logical, then everything is fine, isn´t it?” Sorry, but: “No, it isn´t!” It is even not half of the truth. Here is the reason, why so called one-track specialists often have problems to convince others, although everything they say is absolutely right and logical. At this point the nonverbal communication appears on the human playing area! The paraverbal part of communication contains facts like the volume, the speech rate and melody, the intonation and articulation and at least the tone of the voice. This is completed by the body language with the fascial expressions the gestures, the body posture, eye contact, body chemistry and the clothing. If the expression of all three components is the same – then everything is fine! If the verbal communication says “YES” and the nonverbal communication “NO” – then people tend to believe in the nonverbal communication because its impact is much higher than the impact of the words.
Just one example at the end: at one of the DevOpsDays I have joined this year, I saw one young speaker. I guess, he is really an expert in his topic and the idea and content of his talk was excellent. But he didn´t manage to appear convincing and convinced: a wrinkled shirt, a loose jeans, unkempt hair, barefoot in his sandals, a lousy body posture and a bored facial expression. You can say that this is a superficial point of view. Maybe – but that is the way it works! Communication always needs a holistic approach – and seemingly superficial points of view are influencing the our feelings and the way we interpret messages! Or to say it the other way round: if you want to convince somebody and make her/him trust you, you have to focus on all parts of communication! It is the same when you want
to share knowledge, give feedback or want to lead a team. Communication is more than just the words!
In the next blog post you will read about the chain of communication!
-

Avoiding Common AWS Security Risks
According to IBM’s Cyber Security Intelligence Index, 95% of all security incidents involve human error. That’s beyond significant, and when rapidly deploying multiple iterations in a DevOps shop, that means there are lots of opportunities to fail.
Our own independent analysis based on customer configuration data shows that security control mechanisms Amazon Web Services (AWS) makes available to its customers are not always being used consistently due to human error, creating unnecessary security exposures while operating workloads in cloud.
In this article, we’ve highlighted the five of the most common AWS security risks detected in the first half of 2015, and share simple steps you can follow to address them.
EBS volumes are missing optional EBS volume encryption…
EBS volume encryption uses AES-256 and is a convenient mechanism for meeting data-at-rest encryption compliance mandates. An unencrypted EBS volume cannot be converted to an encrypted volume after creation. It is a setting that must be applied on creation of an EBS volume.
EBS volumes contain no snapshots less than two weeks old…
Snapshots are a low cost way to recover EBS volumes and they can be made while a system is online. We have seen a number of occasions where clients have benefited from snapshots in IR scenarios by enabling them to forensically analyze systems that had been compromised from recent snapshots in virtual private cloud sandboxes.
Unused EC2 Security Groups…
Keeping your EC2 security groups clean eliminates the risk that an unauthorized security group policy will be used by mistake to open attack surface. Often clients have had relatively new AWS users mistakenly launch EC2 instances using insecure security groups that lead to incidents. Practice good security hygiene and remove your unused EC2 security groups.
Unused or unmaintained ELB Security Groups…
Keeping your ELB security groups clean eliminates the risk that an unauthorized security group policy will be used by mistake to open attack surface. In large multi-tier architectures, ELBs frontend fleets of backend systems, and ELBs have security groups that should use authorized security group policy. Practice good security hygiene and remove unused ELB security groups.
Global permissions to access TCP or UDP ports in a security group that is attached to an active instance/ELB…
Restrict access to known static IP addresses or CIDR ranges within your control. Many clients have experienced scenarios where they found themselves conducting incident response efforts due to unauthorized EC2 instances that were launched using insecure globally accessible security group policies. Monitoring active security groups enables clients to shorten time to detection and time to remediation of firewall related vulnerabilities and enables clients to minimize attack surface.
About the Author/Justin Lundy
Justin Lundy, CIO & CTO, co-founded Evident.io after leading Adobe’s Cloud Security efforts to identify, implement, and manage security controls and strategies during rapid adoption of the cloud at scale. He has spent more than a decade in the infosec industry, and is a subject-matter expert in multiple domains. Justin previously defended the castle at Adobe, MTV/Viacom, Sun, and CA. -

Five must see TED Talks for leaders
We are always looking for new ways to inspire leadership. Here are five excellent TED Talks for leaders that we curated for you:
How great leaders inspire action
In his TED Talk, “How great leaders inspire action”, Simon Sinek (author of Start With Why: How Great Leaders Inspire Everyone to Take Action) looked at how leaders and organizations inspire. According to Sinek, whether it is Apple, Martin Luther King, or the Wright brothers the secret to great inspiration is the same. And how these people and organizations inspired could, if it was possible, be codified. Sinek called his codification “the golden circle,” and the talk is worth watching.
The combination of development and operations teams isn’t the only relatively recent revolution to fuse historically disparate roles. General Stanley McChrystal is known for leading a revolution in fusing intelligence and operations in warfare. McChrystal is the former commander of U.S. and international forces in Afghanistan and the former leader of Joint Special Operations Command (JSOC). In this talk four-star general Stanley McChrystal talks about what he learned about leaders in his many years of military service. Appropriate to DevOps, McChrystal speaks to building a shared purpose – and how to face the possibility of failure. It all starts with listening, and his TED talk is certainly worthy of one.
Learning from leadership’s missing manual
I love stories. I think parables and stories are the best way to communicate ideas and make messages memorable. In this talk, Fields Wicker-Miurin (co-founder of Leaders’ Quest, an organization that brings together leaders from around the world to learn about key trends in their regions, and to explore their role as leaders) says stories of remarkable, local leaders are the next best thing. She shares a few stories of remarkable leaders in this talk.
The power of everyday leadership
We all have the power to, and probably have, changed the life of another. In this entertaining TED Talk, Drew Dudley focuses on the little things in life that can improve the lives of others. Dudley calls on all of us to celebrate this everyday form of leadership.
Lead like the great conductors
Want to know how to lead without speaking? Ask an orchestra conductor. In this talk, Itay Talgam reviews the leadership styles of six demonstrates the unique styles of six 20th-century conductors, illustrating crucial lessons for all leaders. It’s about enabling other voices to be heard along with our own.
-

5 DevOps Success Factors Surfacing At DOES 15
Two days into a breakneck schedule of energizing presentations at DevOps Enterprise Summit 2015 (DOES 2015) and there are already some common themes bubbling up from the speakers and attendees. As IT practitioners from big name enterprises like Capital One, HP, Target, Ticketmaster and more step up to the podium to share their personal stories about the journey to continuous delivery, they’ve proven that their transformations rely on similar success factors.
Success Factor: DevOps Champions
DevOps change agents and champions are the engine that can help turn an enterprise IT ship around. And while it will eventually take a lot of people to power a large organization’s shift to DevOps, the passion and vision of a single DevOps change agent is contagious—particularly when they can demonstrate and document the results of new process patterns.
“One person can make a difference,” says Sherry Chang, chief architect of DevOps and continuous delivery with Intel, who says when she first started helping her firm in its transformation, she had no formal DevOps title or role, but she believed strongly that changes needed to be made and was determined to drive them. She says she connected with others to start small and spread the DevOps gospel.
Success Factor: The Yin/Yang of Grassroots/Executive Support
Building DevOps momentum can’t depend solely on support from the bottom up or the top down. Those experienced in walking the DevOps path say that buy-in must come from both sides of the coin to truly transform the business.
Most transformations tend to start at the grassroots level—that’s what those champions are especially good for kick starting—because risk-averse executives tend to like to grab onto new initiatives that already look like potential winners.
“Those change agents are important in the early days because they can demonstrate success, which then helps to start growing a grassroots movement, where more and more passionate folks start to get bought into the different changes that are being talked about, and then that got us to gain our tops-down buy-in,” says Heather Mickman, director at Target.
Success Factor: Internal DevOps Events
Many of the biggest enterprises that shared their stories explained that a key component of the culture shift at their organization has been some sort of large-scale internal event—essentially in-house DevOps conferences. These events give DevOps champions the chance to bring in outside thought leaders and practitioners at other companies to demonstrate to people within the host enterprise that there really is something to DevOps, automation, continuous delivery and the like. For example, CapitalOne recently hosted more than 1,200 software engineers for an in-house event it calls SECon and brought in many of the same speakers we’re seeing this week at DOES.
Target has also hosted numerous internal DevOps days, as well as an executive summit that Ross Clanton, senior group manager at Target, called a “tipping point” for gaining top down support from executives.
Success Factor: Empowerment
Giving staff the tools the need to do their job and then getting out of the way to actually let them do it has been another common theme weaving its way through DOES talks.
“Teams crave responsibility,” says Jody Mulkey, CTO at Ticketmaster. “Folks on our development teams, they all want responsibility to run their products. They didn’t all want it in the beginning, to be quite honest. But once they saw how quickly teams were able to deliver and how they were able to minimize these business disruptions based on the ability to quickly make changes to their software, it was pretty incredible.”
He says of the 73 development teams at Ticketmaster in North America, 100 percent push their own code.
Success Factor: Test Automation
Time and time again, presenters have called out the importance of test automation in eliminating waste and idle time in the development lifecycle and elevating the process. On Monday, there was a whole panel dedicated to the topic with representatives from Intel, Quicken Loans and Bluware talking about how to scale this across the enterprise. And as Paul Schmid explained in his description of the DevOps transformation at Sherwin-Williams, like many organizations, his has been learning the hard way that test automation ideally should be one of the first steps to shifting gears to continuous delivery.
“Tests for us are really important, and we are not mature in this at all. So a lot of what was talked about this morning hit right at home,” he says. “Testing is really important and it’s definitely the next step for us, and we’re putting a lot of time, effort, and money into it.”
-

SAFe and DevOps – a recipe for a delivery smoothie!
DevOps brings you the deep pink color of fresh strawberries and SAFe the rich, creamy texture of blueberry yoghurt!
‘Agile’ delivery is not always smooth. If not managed well, it can be a nightmare, as those of us who have seen rogue agile processes run amok know. That’s where the Scaled Agile Framework (SAFe) comes in. It blends with DevOps to bring agile delivery to the enterprise.
A quick word about SAFe: Those familiar with SAFe would know that it divides the work of building a system into small time-boxed units. Each unit must typically be deliverable in around two weeks.
For instance, if you run a factory then receiving and issuing material is likely to be part of what you want to automate. You may want to provide users with features, such as the ability to create issue vouchers online, modify vouchers, cancel vouchers, or search for a particular item while creating a voucher. Some of these features may be small enough to be delivered in two weeks. Others may need to be split up further into sub-features, and so on. Let’s suppose the item search feature is tiny enough to be implemented in a couple of weeks and can therefore be considered a unit (or ‘iteration’ in SAFe parlance). The system would be the sum of several similar units, each capable of being implemented in a couple of weeks. Typically, one would assign the units to various teams, and schedule them based on their inter-dependencies and various staff, infrastructure, and other resource constraints. This composite set of small units is called a ‘program’ in SAFe. More about SAFe in a later article.
The DevOps culture: The SAFe methodology requires that each unit be made usable within the two week interval. That is, the unit must be developed and deployed to a production-like environment. The ‘agile team’ creating the unit must therefore have an ‘end-to-end’ perspective of the unit and not be constrained by artificial boundaries of development, testing, or operations. The members should have the skills, and be willing to work in each other’s domains, collaborate actively, communicate frequently, and provide feedback quickly and clearly.
This active collaboration between developers, testers, and operations is what DevOps is about. An organization that has a DevOps culture will therefore find it easier to implement SAFe.
Developing on cadence: A factor which makes project managers reluctant to use agile methodologies in large enterprise scale projects is the number of multiple units (and teams) operating in parallel. SAFe attempts to simplify the process of synchronization between teams by aligning the two-week windows so that they all start and end together. By ‘developing on cadence’, as this practice is termed in SAFe, the different agile teams can align common activities like planning, review and system demos. This makes it easier for the program to identify inter-team dependencies and assess how unit-level feedback and change requests can affect other units or teams. The cadence mitigates the complexity of synchronizing work across scores of teams.
SAFe DevOps tools: While work synchronization helps, there are certain activities that still need tools. With often several hundred code changes being checked in every day, enterprise scale projects need sophisticated configuration management and deployment tools capable of tracking and maintaining the multiple versions of code, intelligently scheduling and triggering builds and automated tests, communicating feedback about test status, configuring and creating environments, creating installers, and deploying the builds to the appropriate environments. Tools like Docker make the deployment process quicker and more flexible. IBM® Rational® solution for Collaborative Lifecycle Management (CLM) provides a suite of tools capable of working across the spectrum of tasks and managing the complex delivery process end-to-end.
Agility over the last mile: Because of the need to deliver usable code at short intervals, testers and operations personnel need to be as nimble as developers. While developers may have achieved success in using Agile methodologies and have efficiently been churning out byte sized chunks of code at short intervals for a while, it is only more recently that operations teams have begun to accept agility as an achievable goal. DevOps, assisted by various collaborative and automation tools like CLM and Docker, has played a significant role in changing mind sets and transforming capabilities over the last mile.
It is this end-to-end blend of the DevOps culture with SAFe, along with the various tools that are part of the DevOps ecosystem that will propel enterprise level software delivery towards the goal of smooth, continuous delivery.
About the Author / Vidhya V Kumar
Vidhya is an advisory software engineer at IBM. An evangelist and practitioner of agile methodologies, continuous delivery, and documentation, she has around ten years of experience in the IT industry. She is a subject matter expert in DevOps, Application Lifecycle Management, and Search methodologies.
-

To Be Continuous: The Fear of Shipping
In this segment of To Be Continuous, Edith Harbaugh and Paul Biggar talk about the fear of shipping and if code is an asset.

Edith is CEO and cofounder of LaunchDarkly, a continuous delivery tool of “feature flags as a service.” LaunchDarkly powers software teams to quickly launch, measure and control their features.
Paul is the CEO and founder of CircleCI, a continuous integration and deployment platform that automates development workflows and IT operations, allowing developers to ship quality software significantly faster.
[soundcloud url=”https://api.soundcloud.com/tracks/229127881?secret_token=s-fslKp” params=”auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=false” width=”100%” height=”166″ iframe=”true” /]
Paul: Okay, so one of the things we wanted to talk about this week was the idea of shipping velocity and how it’s affected by team structure, sort of miscellaneous factors that aren’t part of continuous delivery.
Paul: So at the end of the last episode, Edith, you said, I think this was a quote from Yammer VP, “The organization you design is the software you built.”
Edith: Yeah, it was actually from the CTO Adam Pisoni and it really struck home from me because I see this at so many companies, they have a lot of engineers and they wonder why they have a lot of code but not a lot of product. And it ties back to what you just said of specializing the product management role.
Paul: Right. I think that this a name. I think it’s Conway’s Law and the way that I saw that expressed is that if you have, if you’re building a compiler and you have four different teams that are building a compiler, you’ll end up with a four-pass compiler.
Edith: There’s no one vision.
Paul: Right. When looking at lots of different teams and team structures, the interesting one that I found was the Heroku one.
And they have a language team and they have an add-ons team and they have sort of sharp delineations in their software, or in their stack, that allows them to really focus on one particular area because they’re such sharp demarcations between the different areas of the product.
Edith: I think that’s good if you’re a fairly mature product. I think in the early days of Heroku that would not have worked at all.
Paul: I wouldn’t say it’s quite from the early days, but relative to now it was quite early, I think they had that sin Cedar, which was around 2010.
Edith: I just more meant when you’re an early stage start-up, sometimes you change your entire product.
Paul: Well okay, yes, yes. I mean, absolutely. I think once you get into, once you get past the first stage of the product, and if you’re able to draw very good interfaces between how your customers understand what your product is.
Edith: I don’t know, I mean I’ve seen this go bad in so many organizations, where you have entrenched engineering organizations that care more about staying on their current project, then actually about where the market is going.
You know, like we’ve always worked on this, so we need to stay here because we don’t know anything else versus being able to evolve to where the market is going.
Paul: Right. This reminds me a little bit of something that I’m working on at the moment. We brought in some UX experts to look at our app and to help us sort of transform it into something that was a little more usable.
And they did a fantastic job and I spent this afternoon reading some of the reports. But what was difficult was understanding where the product needed to be. So for us in particular, there’s not enough focus on the deployment.
There’s a lot of focus on the build and there isn’t really sort of a broader look at what do engineers actually do when they’re trying to do continuous delivery. And so we ended up with what was in the product was redone in a really fantastic way, but there wasn’t much affordance made for here’s the thing that actually needs to be in the product.
And when you talk to customers, it’s hard for customers to tell you oh here’s the thing that you actually need to be or they look within the box you’ve drawn for them.
Edith: Yeah. I say this ’cause I had a similar evolution to you, I actually started off in engineering. And when I was in engineering it was very obvious what we should built next, extremely obvious. And so I always thought that our product manager was an idiot for not seeing as clearly as me. When I became a product manager, I realized how myopic I had been as an engineer.
Paul: Can you give an example of what was the next thing to build that in retrospect was wrong?
Edith: I would see all the little bug fixes that we should be doing instead of the next big features. Or not even the next big features, but the next big product.
Paul: I think big or small, or big picture versus small picture, is a good way to distinguish these two. I think that it’s very easy when you’re talking about product management to get the idea that a product manager knows everything and the engineer is just an implementer.
And I think this is where a lot of the resistance to product managers comes from with an engineering organization’s the idea that they’re going to be relegated to mirror kind of peasants in the…
Edith: Code monkeys.
Paul: Code monkeys, there we go.
Edith: You know, nobody wants to be a code monkey. That doesn’t sound very fun.
Paul: Right, right. I would disagree with that, but I think that’s–
Edith: Wait a second, we never disagree.
Paul: It is very frustrating trying to understand everything. And on the other hand, it’s very satisfying to ship things and to get your stuff in front to customers. So very often, the ability to just be a code monkey for a certain period of time is this sort of soothing feeling of just shipping software that fixes a lot of small problems.
I remember reading one of the famous GitHub guys, I don’t remember which one it was, but let’s assume it was Kyle Neath, that spends a lot of time on big projects. And in between the big projects, he needs to find what is the next big project to work on.
And it’s often very frustrating, or very you go down certain rabbit holes and whatever, and you end up kind of not shipping things, or you end up getting frustrated or whatever. And what he likes to do then, is just reach to the back log and just take a bunch of small fixes. And he spent like two weeks of just like implementing very small things.
You don’t need to think about it, and it’s cathartic and it lets you ship and so a couple of weeks as a code monkey I think is a very useful thing to sort of refresh the head and that sort of thing.
Edith: I agree, but I think nobody wants to do that full-time and I’ll also challenge something else you said, which is everybody wants to ship.
I think there are a lot of people who find shipping terrifying. and they’d rather keep holding stuff on until it’s perfect.. Like, I’ve certainly been with in situations like this where it’s like–
Paul: Right, where we can’t ship because it’s not perfect yet or it’s not complete.
Edith: Yeah, and as an engineer you have this real battle of well what if people want this, or what if they want this or this might be not quite right.
Paul: Yeah. The personal strategy that I use to manage that is to try to write the blog post that you’re going to launch this with and to, cause very often you’ll be like, “oh I can’t launch this cause it hasn’t got this feature, it hasn’t got this feature.”
And in the blog post, assuming that you’re going to tell people how to use it, or you’re writing the doc maybe, if not the blog post. You get that sort of feedback as you’re trying to explain to your user how to do this you’re going to say, all you need to do is this, and you’ll realize that this is seven steps long instead of one step long.
Edith: Yeah, the Amazon model. So at Amazon, they actually start with writing the press release first.
Paul: Okay, right.
Edith: And everything and that’s a really good guide back.
Because too often, people do the other end of they’ve built this gargantuna thing and they’re trying to write a press release or blog post and they’re like, woah, we’ve built all this stuff but there’s nothing actually to talk about.
Paul: Right. And part of that, and something which I think engineers have a difficult time thinking about is how to get this widely in use. So you can build the feature, but its no use having built it if no one uses it. So you need to build the bread crumbs, you need to figure out the ways that are subtly hinted that this is the feature that you want when it’s the feature that you want and to draw people’s attention to it.
And sometimes that’s putting it in docs and sometimes that’s doing a big announcement, but more often it’s trying to get the product in a place where the UX naturally implies the right path or the right direction for users to discover parts of the product.
Edith: Yeah, I mean the whole idea of responsive design, and I think even more, and this goes back to why I started LaunchDarkly, is you might have built it, but nobody might want to use it.
Like, you could have put all this effort into building it and done all these bread crumbs that nobody follows. So that’s the idea of you actually start doing the bread crumbs first and see if people start following that path.
Paul: So with LaunchDarkly, I’m guessing that the way that you see whether someone is using it is whether it’s enabled for them. Is that right?
Edith: Well no, so what we do is we allow people to turn on features for certain users.
Just turning on a feature for a certain user doesn’t necessarily mean that they start using it.
Paul: Right, exactly. So do you tie this to mixed panel usage? Or some sort of analytic stuff?
Edith: We could tie it to different back ends, like we tie it to New Relic, we tie it to actually optimize so you can see if people are even, and we have our own internal analytics.
Paul: Gotcha, okay. So this is the thing for me, that I started a project recently, and the first thing I did is built the dashboards for adoption. And we’re still at the stage in the project where there’s no adoption, or there’s tiny amount of adoption amongst early users.
A trickle. A trickle that you can’t even see on the graphs.
Edith: So it’s more like a fine mist.
Paul: A fine mist. But what you need to get is you need to get to the place where everyone is using this. ‘Cause if you just build it, they’re not going to come.
They need to be told about it, they need to understand how to use it, and getting those first customers to using it and where it’s deployed amongst them is it gives you incredible feedback about how one actually ships that software to the larger customer base.
Edith: Totally agree. I mean, this is classic Lean principles of just making sure some people can use it well before rolling it out further.
Paul: We discovered a part of the product that exactly three customers were using.
Edith: How did that make you feel?
Paul: Well, we didn’t actually know it was a feature. This was the idea that you could do deployments in parallel. So at CircleCI we paralyze your build and so the idea is that basically we take your test suite and split it across 20 or 50 or whatever machines.
But it turns out that that applied to deployment as well. And there were exactly three customers using that. And one of them had a valid use case for it. Out of thousands of customers, exactly one valid use case was there.
Edith: So what did you do with the feature?
Paul: We killed it.
Edith: Did you tell him?
Paul: I hope so. Yeah, I know. I think we reached out to that guy. There was another way for them to do it.
Edith:
The painful part of project management is also when you have a feature that you like to kill but that a subset of power users loves.
So like at TripIt, we’re a mobile travel itinerary but we let people do a printout. And one time we’re like, oh nobody prints anymore, let’s just kill it. Turns out that people print and they really really like printouts.
Paul: Right, right. I understand that, yeah.
Edith: Like particularly if you’re traveling to a foreign country.
Paul: Yeah, you’re not going to have internet or your phone’s going to be dead.
Edith: Or you want to show something to a passport guard.
Paul: Yeah, or a local. Without handing over your phone, like here’s what I’m doing.
Edith: Yeah, so they were furious with us.
Paul: Right. So, had you killed it at that stage?
Edith: Oh we killed it. Like we were just like oh, we didn’t have good analytics on people printing, so we just said oh nobody’s printing, let’s kill it.
Paul: Oh, wow wow.
Edith: So our analytics later was that people complained. Quite loudly.
Paul: And so had you properly killed it at that point, or had you merely disabled it to see if it went away?
Edith: Let’s see. We disabled it. I think we could get it back but people were really really upset.
Paul:
I like the thing of shipping something turned off, rather than actually deleting the code. Even though it’s incredibly cathartic to delete the code and to hide and it and remove it. But the turning something off with a feature flag is just a lot better way to sunset something.
Edith: Why do you think it’s cathartic?
Paul: Oh deleting code is amazing. It’s like my favorite thing to do.
Edith: It’s funny. My cofounder John, he was from Ex Atlassian, and he said the winner of their hack competition was always the person who deleted the most code.
Paul: Right, right. That makes perfect sense.
Edith: Cause that’s what they wanted a reward is tidiness.
Paul: Yep, yep. It’s very much related to the idea of product management and validating things and making sure that you don’t build too much of the product. Code is not an asset.
Code is an asset in the financial sense of it in that you think you want it but you actually don’t. You actually want the best performance with the least amount of code slash asset available.
Edith: Yeah it’s like, so a friend asked me once, should I pay my developer’s more if they write more lines of code? I was like, no. It was like no, that’s a really easy metric to gain.
Paul: Right. So we were talking about deleting features by feature flagging them. I think that this is an awesome way to delete a feature because it’s very, very easy to get back. It’s much easier to get back than a rollback.
Rollbacks are this thing that nobody wants to do because they’re very, very painful. Especially if a ton of code has come in between. So if you ship something, or if you delete something by literally putting a feature flag in around it, and then you ship the code and then it’s still on, and you turned it off for a certain amount of people, see if anyone complains, see that it still works and that you know, show it to ten people, and then you delete it for everyone just by flicking the flag.
And then if you get someone saying, you know, we really, really, really need print it, You can turn it back on for them while you have a think about how you really want to solve this problem.
Edith: Yeah, I think feature flags is a really misleading term.
So feature flags implies that it’s always on or off, when really it’s more of a feature control.
It’s a way to encapsulate a portion of functionality such that you have total control over it, from the sunrise of it, you know, from launching it to certain people, seeing their reaction, getting analytics, and then all the way to the end, as you said, every feature eventually you want to kill.
For more on Continuous Delivery and to find out about new episodes you can follow the show on Twitter at @continuouscast.
-

Survey says network agility is still immature
At least that’s the word from SDx Central’s Cloud Management, Orchestration and DevOps 2015 Report in which 76% of respondents said the network was the most immature component in the cloud management stack.
Now to be fair, the network is one of the last components (I’m looking at you, security) to get on board the “automate or die” train, which has already left the station. That’s partly due to pressures from increased DevOps adoption in general and more specifically thanks to greater enterprise penetration which is continuing to up the amperage in the data center with respect to velocity and ease of deployment of all the network bits, bytes, and pipes needed to support each and every application.
It’s also partly due to the complexity of the network environment and the blast radius of potential errors or misconfigurations as well as the broad set of differences in the object models (and therefore APIs) used to configure, manage, and automate provisioning of network services. The more features and capabilities, the more differences between them.
OpenStack manages this difference by forcing standardization; that is, it defines the interface for LBaaS and if you want to be a part of the stack, you have to conform. Cisco ACI manages the difference by taking a declarative policy-based approach that let’s plug-ins define their own interfaces and expose them to ACI in a standardized way. VMware NSX and related technologies take yet another approach, leveraging its ecosystems’ APIs to integrate and orchestrate the network.
All are relatively new to the game (OpenStack may be the exception but even its network implementation has lagged far behind other components of its system) and thus the perception that the network is the most immature in the cloud management stack would seem to be reflective of reality.
But at least it’s heading in the right direction.
The network was going to have to be included at some point in this grand journey to transform the data center through automation and orchestration. At some point Agile and DevOps methodologies being embraced by dev and ops were going to start paying off in the form of more applications with more frequent deploys. Eventually that was going to overw
helm the network (and its staff) and give them cause to start figuring out how they were going to transform the network from the static and very fixed methods of scale and management to a more modern dynamic and fluid method.Eventually is now. Whether it’s DevOps expanding into the network or SDN or cloud management stacks, the network has to mature in terms of its orchestration and automation capabilities if organizations are going to continue on their journey toward the agile network.
We’re still trying to move out of the first phase in that transformation; toward a culture inclusive of measuring and standardization with templates (or configurable policies, if you prefer). We’ve got a long way to go toward a sustainable, agile network and just as it’s taken years for Agile to truly envelope most projects within the enterprise, it’s going to take years for the network to get from where we are today to where we suddenly want to be yesterday but accept that we won’t get there till tomorrow.
-

How to accelerate your production integration activities
IT Operations is often accused to be the bottleneck in application release processes and a general constrain to agility. But why is that, what are the root causes of this issue and how can we address them?
There is indeed a very big gap between the desired world of DevOps with Infrastructure-as-Code, Docker, Microservices Architectures, Private Cloud and the Software-Defined Data Center and the realities of most software delivery in enterprise IT today.
Ideally tools are shared between dev and ops, information flows in real-time, everything is measured and visualized through dashboards and release pipelines are fully automated.
In reality, however, each major release of enterprise software requires a myriad of preparation activities from IT operations and infrastructure to ensure the operational readiness of the release in production. We call the set of these activities production integration.
We put these activities into four groups:
- Batch automation. New application releases often require new jobs and changes to jobs and job plans. Their impact on existing production chains must be assessed and controlled.
- Data Migration automation. Operations and infrastructure frequently has to support the data migration process and provide the technical foundation and automation.
- Deployment automation. Changes to deployment plans and application components will impact existing deployment scripts and routines. They need to be updated and re-tested.
- System Provisioning and Configuration. In the course of a new release, it is often required to add infrastructure such as servers, storage and network bandwidth. On top of it, middleware and databases need to be prepared for the new release.
Through over 300 customer interviews we identified the main reasons:
- Lack of software engineering methodology: Employees with sound software engineering skills are very rare in ops departments. However, sound software engineering practices are critical to build re-usable and modular automation frameworks and libraries. Without that, the risk is high that automation is created again and again for similar purposes without cleverly re-using what is already available.
- Priority Conflicts: In many organizations, the same teams work on production integration and production support. Urgent production issues cause shifts in priorities and delays in integration activities. The problem is exacerbated, because specifications for production integration tasks are often received late in the process, not leaving enough of time for the teams to deliver.
- Organizational Constraints: Over-specialization causes bottlenecks. We all know this database administrator, who is the only person in the company able to identify and find the root causes of performance problems, or this application server expert, who exclusively owns the deployment scripts. Also, dislocation of teams causes communication overhead and slows down the process.
We have identified a set of measures to address the most obvious obstacles to more agility and speed in the production integration process and increase its transparency. We call this the DevOps Production Integration toolkit. It is based on three pillars.
Agile Enablement of ITO: We recommend organizing the delivery of production integration tasks through a tailored version of Kanban. We have developed a methodology to integrate Kanban-driven ops with SCRUM-driven development in a scaled organization.
Kanban is based on managing a pipeline of tasks and visualizing their flow. With Kanban, team members pull from a prioritized backlog, and available delivery capacity is managed to avoid the occurrence of bottlenecks. Kanban allows for constant re-prioritization of tasks in the pipeline.
All activities of a team – including both the analysis and resolution of production problems and production integration tasks – are managed through a single pipeline of tasks. Color-coding helps to separate different releases and production issues, as well as identifying dependencies. The Kanban board is organized by swim lanes to account for different roles and skill sets in the team, for example database administrators, middleware administrators and production control experts.
A single prioritized backlog may be implemented either each Kanban team or across multiple Kanban teams. The backlog contains all items these teams are responsible for: all production integration requirements (we call them automation stories) and all production issues, which need to resolve.
The backlog is managed by a product owner (PO), who has to collect and maintain requirements from all stakeholders – development, operations, security, first line support and others – and is responsible for their constant (re-) prioritization to create and maintain a fully ranked list of items. Requirements from development are typically retrieved in the development sprint planning meetings.
The PO writes automation stories, which cover the “what” and the “why”, adds them to the backlog and works with the Kanban team on the creation of tasks.
Version Control for ITO: While advanced version control is part of every application development team today, it is not yet wide-spread in IT ops and infrastructure. However, with an increasing release velocity, the number of script versions and other automation artifacts, which are created, used and modified within different environments, increases significantly and automated version control becomes very important.
Modern version control systems support storing, tagging, branching, comparing and merging of multiple or many versions. The most recent generation of these tools such as git is based on the concept of de-centralized repositories and pull rather than push.
However, IT administration UIs and consoles of ITOM (IT Operations Management) software often do not support out-of-the-box integration with git or other version control systems. They usually store objects in proprietary databases. Quick and easy integrations of version control with these UIs and consoles become elementary.
Agile Metrics and Dashboards for ITO: Today, availability indicators such as MTBF (Mean-Time-Between-Failure) are the most commonly used performance indicators in ITO. However, to incentivize and motivate your teams towards more agility, it is important to combine them with agile indicators. Examples of agile indicators are:
- The wait time of a requirement in the backlog until it is processed
- The cycle time of a task through the development pipeline
- The relationship of idle time to processing time for tasks in the pipeline
Most agile collaboration tools make it easy to measure and extract this data. It is useful to
- Combine selected agile and availability indicators into KPIs; their relative weights depend on the context and the objectives of the organization
- Measure their current baseline
- Set realistic KPI targets
- Implement an automated measurement system
- Extract and visualize consolidated data through a dashboard
- Perform regular performance reviews or improvement meetings to analyze performance and performance trends, identify root causes for weak performance and measures to improve it
The DevOps Production Integration toolkit will not solve all agility constraints in ops, but complemented by automation tools and other measures it can be a powerful answer to many DevOps challenges. It can be implemented locally in ITO and does not require a major replacement of tools or organizational re-design.


