<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Agile on Andrew Khoury</title><link>https://www.drewkhoury.com/tags/agile/</link><description>Recent content in Agile on Andrew Khoury</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Copyright © 2021, Andrew Khoury; all rights reserved.</copyright><lastBuildDate>Sat, 23 Nov 2019 20:09:40 +0000</lastBuildDate><atom:link href="https://www.drewkhoury.com/tags/agile/index.xml" rel="self" type="application/rss+xml"/><item><title>Things I learnt working for an I.T Consultancy</title><link>https://www.drewkhoury.com/post/things-i-learnt-working-for-an-i-t-consultancy-402bba580361/</link><pubDate>Sun, 06 Oct 2019 21:05:20 +0000</pubDate><guid>https://www.drewkhoury.com/post/things-i-learnt-working-for-an-i-t-consultancy-402bba580361/</guid><description>
&lt;p>&lt;em>This was an old blog post draft that I planned on cleaning up. In the end I decided to post it as the raw stream of thoughts that it is. Each one of these thoughts could be its own blog post.&lt;/em>&lt;/p>
&lt;p>&lt;strong>Things I learnt working for an I.T consultancy, doing the DevOps, building all the platforms, leading teams, and annoying a bunch of people along the way.&lt;/strong>&lt;/p>
&lt;p>aka&lt;/p>
&lt;p>&lt;strong>Ramblings from a “DevOps Engineer”.&lt;/strong>&lt;/p>
&lt;p>Resource Augmentation vs Outcome based work (the ongoing struggle of chasing high-value outcomes for clients).&lt;/p>
&lt;p>The art of getting people to realize stuff (you might know what the “right” answer is for a given technology choice or next step for a project, but how do you bring people along for the journey and give them a chance to input their own ideas).&lt;/p>
&lt;p>Hiring, promotions and bonus/incentives.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>360 feedback&lt;/strong> — getting honest feedback, and getting it much more often that every 12 months&lt;/li>
&lt;li>&lt;strong>how your bonus is allocated&lt;/strong> — and why the worst time to talk about your bonus is when it’s being handed out&lt;/li>
&lt;li>&lt;strong>Why/Why/How you should negotiate $&lt;/strong> — know your value, understand the ‘buckets’ of money in companies and the incentives from the companies perspective. Most important understand what your drivers are and what will make you happy. Is is just money, or do you have other wants?&lt;/li>
&lt;/ul>
&lt;p>Early in my career I used to think that process was the key, and I overlooked people and my teams.&lt;/p>
&lt;p>&lt;strong>Agile gone bad.&lt;/strong> How some so amazing has been weaponized over and over. There are literally hundreds of examples of this e.g: “Let’s start reporting on story points per person so we can compare individual performance”.&lt;/p>
&lt;p>&lt;strong>What’s wrong with LinkedIn&lt;/strong>, and (some) recruiters. And why my inbox looks like a dating app (with message after message of poorly thought out copy/paste solicitations).&lt;/p>
&lt;ul>
&lt;li>Incentive to send messages (to meet quotas)&lt;/li>
&lt;li>Incentive to get you to leave your job&lt;/li>
&lt;/ul>
&lt;p>How you should fill a role:&lt;/p>
&lt;ul>
&lt;li>Ask them what they need done, use that to drive requirements for a role&lt;/li>
&lt;li>e.g fix our pipelines, scale our app, reduce bugs in our app (by half, e.g from 50 to 25)&lt;/li>
&lt;li>write an advanced thank-you letter to give to applicants/new starters so they have a clear goal of what to strive for&lt;/li>
&lt;li>Let people pick their team members&lt;/li>
&lt;/ul>
&lt;p>How do you mange your projects? (hint: It doesn’t matter what software you do/don’t use — it’s more about how you manage blockers and how focused the team can be). Physical wall vs Virtual (JIRA board), this choice will be specific to the team and it’s needs. You may need to compromise on level of detail — that’s okay.&lt;/p>
&lt;p>AWS. Their approach to development teams. Get on-board for building APIs so other teams in Amazon can consume them, and how it launched them into the biggest Cloud provider today.&lt;/p>
&lt;p>&lt;strong>Trust the people you hire.&lt;/strong> If you’re hiring people you don’t trust you’re doing it wrong.&lt;/p>
&lt;p>One thread on LinkedIn from a hiring manger had the attitude “I’ll pay you 50% market rate until I trust you”. I really hope they were trolling.&lt;/p>
&lt;p>As Steve Jobs said: Hire smart people to tell you what to do.&lt;/p>
&lt;p>Train/Grow people. Don’t be worried about “What happens if we train them and they leave?” … be worried about “What happens if we &lt;strong>don’t train&lt;/strong> them and they stay”.&lt;/p>
&lt;p>Remote work. Pros/Cons.&lt;/p>
&lt;p>Pair programming optional, Reviewing code mandatory.&lt;/p>
&lt;p>Platforms. “Built it and they will come” is some of the biggest wastage in I.T departments that I’ve seen.&lt;/p>
&lt;p>Documentation, too often it’s seen as not important but just like testing it should be part of the work you do not an “I’ll do it later” type thing.&lt;/p>
&lt;p>Start thinking of your internal teams as customers (see AWS note about APIs).&lt;/p>
&lt;p>Track/share Metrics. Make decisions through data.&lt;/p>
&lt;p>Vision is important, have one, or follow someone who does.&lt;/p>
&lt;p>Being talented isn’t always a good thing…&lt;/p>
&lt;ul>
&lt;li>e.g being right and proving someone wrong in a group setting&lt;/li>
&lt;li>intimidating someone by showing off how smart you are to them&lt;/li>
&lt;li>challenging tech leads, delivery leads, sec, ops in a way that gets them off-side&lt;/li>
&lt;/ul>
&lt;p>DevOps teams &amp;amp; how they’re AntiPaterns. &lt;a href="https://web.devopstopologies.com/">https://web.devopstopologies.com/&lt;/a>&lt;/p>
&lt;p>The power struggle between Ops Sec and the rest of the company.&lt;/p>
&lt;p>Some people don’t want change.&lt;/p>
&lt;p>There’s no one magic solution, or one magical person that can drive transformational change. Support is needed from the top, but also needed at all levels (It’s great to have support from the c-level, but if ops/sec blocks things you’re not going to have a good time).&lt;/p>
&lt;p>Technology is actually pretty easy to work with, people are more complicated. If you manage teams meet with them regularly, care about them, and get out of that office when you have your catch-up. I had most amazing Delivery Manager who would catchup with every single team in our company every two weeks. He’d ask about what’s good/bad/blockers and what and what he could do help me. He also asked how I was feeling and if I was challenged. Mostly he actually cared about me and my life because each conversation felt like one with a good friend — and years later we still keep in touch.&lt;/p>
&lt;div class="notices info">
&lt;div class="label">Info&lt;/div>
&lt;p>Also posted on medium as &lt;a href="https://medium.com/@drew.khoury/things-i-learnt-working-for-an-i-t-consultancy-402bba580361?source=friends_link&amp;amp;sk=7abe092462910885e17c301e3617e76b">Things I learnt working for an I.T Consultancy&lt;/a>.&lt;/p>
&lt;/div></description></item><item><title>A comprehensive guide to “Being Agile”</title><link>https://www.drewkhoury.com/post/a-comprehensive-guide-to-being-agile-a9563c8c9968/</link><pubDate>Sat, 24 Aug 2019 17:46:36 +0000</pubDate><guid>https://www.drewkhoury.com/post/a-comprehensive-guide-to-being-agile-a9563c8c9968/</guid><description>
&lt;p>We need to talk.&lt;/p>
&lt;p>Today I want to talk to you about Agile, and no I don’t mean Jira boards and sit-down-stand-ups. I want to look into why we do what we do.&lt;/p>
&lt;p>Actually, I wanted to write an article about effective communication and how we (as actual human beings) have significantly more meaningful interactions in person than we do over video chat, real-time messaging or email. Join me on a short detour.&lt;/p>
&lt;p>&lt;strong>How we communicate&lt;/strong>&lt;/p>
&lt;p>Try some of these (at your own peril) next time you’re talking to someone in person:&lt;/p>
&lt;ul>
&lt;li>Stare at them with eyes wide open while you’re in middle of a regular conversation&lt;/li>
&lt;li>Raise you eyebrows in shock as a response to something they’ve said — more fun if they haven’t said anything shocking&lt;/li>
&lt;li>Invade someone’s personal space by inching closer and closer to them&lt;/li>
&lt;/ul>
&lt;p>You’re likely to get a response, and that’s because human’s are complex — our message isn’t just the words we say it’s so much more and the following only scratch the surface:&lt;/p>
&lt;ul>
&lt;li>Facial expressions&lt;/li>
&lt;li>Body movement and posture&lt;/li>
&lt;li>Gestures&lt;/li>
&lt;li>Eye contact&lt;/li>
&lt;li>Touch&lt;/li>
&lt;li>Space&lt;/li>
&lt;li>Voice&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Something bigger than yourself&lt;/strong>&lt;/p>
&lt;p>I used to think all that mattered was code — as an individual contributor if I could just pop those headphones in and achieve flow I’d be able to develop the best solution possible, and life was good. But something happened — I was introduced to “DevOps” and something called “Agile” and I discovered the world of consulting.&lt;/p>
&lt;p>I had accidentally stepped into utopia — companies had identified some sort of issue or need and were calling out for help. They needed people who could code, who could deliver solutions in challenging environments and could help teams transform into better versions of themselves. Well if there was anything I loved more than code it was being in front of a group of people inspiring them and making their lives better one whiteboard or pair programing session at a time — and learning along the way.&lt;/p>
&lt;p>&lt;strong>Continuous Improvement&lt;/strong>&lt;/p>
&lt;p>I take the idea of continuously improving very seriously. I want to improve myself, my team, my consultancy and my clients. I also spend time on helping my friends and family grown and improve. I get an enormous amount of joy out of helping people.&lt;/p>
&lt;p>When trying to introduce the concepts in the Agile Manefesto many questions can arise, consider these:&lt;/p>
&lt;ul>
&lt;li>How often should we do sprints&lt;/li>
&lt;li>Being Agile means that we can add scope with no negative impacts, right?&lt;/li>
&lt;li>Do we need to do standups every day (and why do we need to standup?)&lt;/li>
&lt;li>We don’t think retros are valuable — they’re just another meeting&lt;/li>
&lt;li>Our scrum master told us we’re not allowed to &amp;gt;insert any prescriptive directive from on-high without a rationale attached&amp;lt;&lt;/li>
&lt;li>Do we have to do this meeting face to face — I’m busy — can I bring my laptop so I can work in this meeting?&lt;/li>
&lt;li>We need to write a detailed plan for the entire project ahead of time — then report on it weekly to our finance department, explaining each deviation to them — but you can do that Agile thing within you own team at the same time, right?&lt;/li>
&lt;/ul>
&lt;p>So here’s the thing — Your team gets to decide if they want to “practice agile” or not — and if so, how to do it. But if you are going to do it you (your team, and your company) should understand its origins and get ready for a ride of continuous learning and improvement.&lt;/p>
&lt;p>&lt;strong>How to do Agile right&lt;/strong>&lt;/p>
&lt;p>Here’s my crash course. Ask whatever question you like (like a magic 8 ball), then read the Agile Manifesto (I’ve included it below) for the answer, simple.&lt;/p>
&lt;p>Hint: If you’re looking for more guidance — ask someone who’s done it successfully. Experience beats theory.&lt;/p>
&lt;blockquote>
&lt;p>Wondering why you can’t lock yourself away and code the “perfect” solution on your own? Or why you need to meet with your team so much?&lt;/p>
&lt;/blockquote>
&lt;p>&lt;strong>&lt;em>8-ball says:&lt;/em>&lt;/strong> &lt;em>The most efficient and effective method of &lt;br>
conveying information to and within a development &lt;br>
team is face-to-face conversation.&lt;/em>&lt;/p>
&lt;blockquote>
&lt;p>Not sure why this “retro” thing is happening every two weeks — and wondering if it’s really that important to do at all?&lt;/p>
&lt;/blockquote>
&lt;p>8-ball says: &lt;em>At regular intervals, the team reflects on how &lt;br>
to become more effective, then tunes and adjusts &lt;br>
its behavior accordingly.&lt;/em>&lt;/p>
&lt;p>We can use this method to unpack themes around business value, continuous delivery, environments at work that encourage growth and motivate teams. We explore what it means to produce high-quality working software in a metrics-driven fashion, but we’ll have to save those for another day.&lt;/p>
&lt;h3 id="everything-you-ever-need-to-know-aboutagile">Everything you ever need to know about Agile&lt;/h3>
&lt;p>&lt;a href="https://agilemanifesto.org/">https://agilemanifesto.org/&lt;/a>&lt;/p>
&lt;p>&lt;strong>What is Agile?&lt;/strong>&lt;/p>
&lt;p>A guide for better ways of developing software&lt;/p>
&lt;p>&lt;strong>I’ve only got 30 seconds — What do I need to know?&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Individuals and interactions over processes and tools&lt;/li>
&lt;li>Working software over comprehensive documentation&lt;/li>
&lt;li>Customer collaboration over contract negotiation&lt;/li>
&lt;li>Responding to change over following a plan&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>I need more please, how do I know if I’m doing it right?&lt;/strong>&lt;/p>
&lt;p>Our highest priority is to satisfy the customer&lt;br>
through early and continuous delivery&lt;br>
of valuable software.&lt;/p>
&lt;p>Welcome changing requirements, even late in &lt;br>
development. Agile processes harness change for &lt;br>
the customer’s competitive advantage.&lt;/p>
&lt;p>Deliver working software frequently, from a &lt;br>
couple of weeks to a couple of months, with a &lt;br>
preference to the shorter timescale.&lt;/p>
&lt;p>Business people and developers must work &lt;br>
together daily throughout the project.&lt;/p>
&lt;p>Build projects around motivated individuals. &lt;br>
Give them the environment and support they need, &lt;br>
and trust them to get the job done.&lt;/p>
&lt;p>The most efficient and effective method of &lt;br>
conveying information to and within a development &lt;br>
team is face-to-face conversation.&lt;/p>
&lt;p>Working software is the primary measure of progress.&lt;/p>
&lt;p>Agile processes promote sustainable development. &lt;br>
The sponsors, developers, and users should be able &lt;br>
to maintain a constant pace indefinitely.&lt;/p>
&lt;p>Continuous attention to technical excellence &lt;br>
and good design enhances agility.&lt;/p>
&lt;p>Simplicity — the art of maximizing the amount &lt;br>
of work not done — is essential.&lt;/p>
&lt;p>The best architectures, requirements, and designs &lt;br>
emerge from self-organizing teams.&lt;/p>
&lt;p>At regular intervals, the team reflects on how &lt;br>
to become more effective, then tunes and adjusts &lt;br>
its behavior accordingly.&lt;/p>
&lt;div class="notices info">
&lt;div class="label">Info&lt;/div>
&lt;p>Also posted on medium as &lt;a href="https://medium.com/@drew.khoury/a-comprehensive-guide-to-being-agile-a9563c8c9968">A comprehensive guide to “Being Agile”&lt;/a>.&lt;/p>
&lt;/div></description></item><item><title>The cost of failure is education</title><link>https://www.drewkhoury.com/post/the-cost-of-failure-is-education-5efd9f1a1bd0/</link><pubDate>Tue, 12 Feb 2019 09:40:54 +0000</pubDate><guid>https://www.drewkhoury.com/post/the-cost-of-failure-is-education-5efd9f1a1bd0/</guid><description>
&lt;p>wow, so cool.&lt;/p>
&lt;p>If you’ve ever been responsible for software running in production, you should already be well aware of failure. But it’s not only traditional “operations” roles that are affected by failure.&lt;/p>
&lt;p>Consider some of the changes we’ve seen in IT in the last decade:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>2003: SRE -&lt;/strong> Site Reliability Engineer, a discipline created at Google that incorporates aspects of software engineering and applies them to IT operations problems.&lt;/li>
&lt;li>&lt;strong>2006: AWS EC2 -&lt;/strong> The birth of the cloud “Amazon Elastic Compute Cloud (EC2)” which made Infrastructure-as-a-Service available to developers around the globe via APIs. It paved the way for CloudNative, Serverless, PaaS and the hundreds of services we have available to us today.&lt;/li>
&lt;li>&lt;strong>2009: DevOps -&lt;/strong> The combination of software development (Dev) with information technology operations (Ops)”.&lt;/li>
&lt;/ul>
&lt;p>It’s clear there have been changes in the people and teams who need to be involved in running software for customers. At the same time there have been significant changes to how we build, test and deploy software.&lt;/p>
&lt;p>Culture is a common topic that comes up when we talk about things like DevOps, Lean Software Development, and SRE but what do we mean when we say culture? Do we just give developers pizza and beer until they produce good software and hope they don’t leave for another company offering gourmet pizza and craft beer?&lt;/p>
&lt;h3 id="origins-of-lean-in-manufacturing">Origins of lean in manufacturing&lt;/h3>
&lt;p>&lt;img src="https://cdn-images-1.medium.com/max/800/0*MF6UDNS45Mc66Wb6" alt="">&lt;/p>
&lt;p>To understand the origins that paved the way for DevOps, SRE, and the “Culture/Transformation” we’re hearing so much about in IT we need to go back, back to 1990 and back to car manufacturing. Consider the following quote from &lt;a href="https://en.wikipedia.org/wiki/Lean_manufacturing">https://en.wikipedia.org/wiki/Lean_manufacturing&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>Lean manufacturing makes obvious what adds value, by reducing everything else (which is not adding value). This management philosophy is derived mostly from the Toyota Production System (TPS) and identified as “lean” only in the 1990s&lt;/p>
&lt;/blockquote>
&lt;p>&lt;strong>Steps to achieve lean systems&lt;/strong>&lt;/p>
&lt;p>The following steps should be implemented to create the ideal lean manufacturing system:&lt;/p>
&lt;ul>
&lt;li>Design a &lt;strong>simple&lt;/strong> manufacturing system&lt;/li>
&lt;li>Recognise that there is &lt;strong>always room for improvement&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Continuously improve&lt;/strong> the lean manufacturing system design&lt;/li>
&lt;/ul>
&lt;p>Sound familiar? These themes are present in Lean, Agile and DevOps.&lt;/p>
&lt;p>&lt;strong>The andon cord — Game-changing rope&lt;/strong>&lt;/p>
&lt;p>Back in the early days of the Toyota Production System (TPS), Toyota implemented many unique tools and processes. The Andon Cord was born, and while it was just a rope it was the most powerful rope you’ve ever seen.&lt;/p>
&lt;p>Anyone had the right to pull the cord at any time and pulling it would instantly stop all work on the assembly line. The technology behind this wasn’t revolutionary, but the thinking, culture and trust behind this system is something we can learn from today. The “Safety Culture” around this process was reinforced when the team leader arrived at the workstation, thanking the team member who pulled the Cord.&lt;/p>
&lt;blockquote>
&lt;p>The team member did not, and never would be, in a position of feeling fear or retribution for stopping the production line&lt;/p>
&lt;/blockquote>
&lt;p>Toyota has so much to teach us about working together an respecting each other. Even if the team leader knew a better answer, Toyota principally felt that a solution from the team member was a better outcome.&lt;/p>
&lt;h3 id="postmortums--lean-software-development">Postmortums &amp;amp; lean software development&lt;/h3>
&lt;p>Leaving cars behind and getting back to software, Mary and Tom Poppendeick’s work on Lean Software development in the early 2000s paved the way for the sort of thinking coming out of Google (SRE), and one great example of that is &lt;a href="https://landing.google.com/sre/sre-book/chapters/postmortem-culture/">postmortem culture&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>Writing a postmortem is not punishment — it is a learning opportunity for the entire company.&lt;/p>
&lt;/blockquote>
&lt;p>As an IT professional with a decade of experience I’ve seen how the culture of the company can significantly impact how people, teams and the organisation grow and improve. The great opportunity that exists when failure happens is learning. The companies and teams that truely believe this are the ones that will continuously improve, both their software and their culture.&lt;/p>
&lt;hr>
&lt;div class="notices info">
&lt;div class="label">Info&lt;/div>
&lt;p>Also posted on medium as &lt;a href="https://medium.com/@drew.khoury/the-cost-of-failure-is-education-5efd9f1a1bd0">The cost of failure is education&lt;/a>.&lt;/p>
&lt;/div></description></item></channel></rss>