Tag

Easy Agile Team

  • Company

    How we work at Easy Agile

    Easy Agile’s purpose is to find a better way to work. Back in 2018 we consciously acknowledged that what got us here👇🏼, won’t get us there 👉🏼. In other words, we have to change to achieve our goals. The real challenge is to proactively seek change rather than being forced into it.

    "We believe there is a better way to work"

    What got us here

    When Easy Agile (then Arijea) first started out in 2016, Nick and I would spend a full third of our day discussing what we were going to do and how we were going to do it, (which is a pretty good idea when you don’t know what you’re doing!). It was these conversations, along with reading Thinking Fast and Slow, Deep Work and Small Giants which formed the basis of some of our company values and how we work at Easy Agile. We still talk a lot, not quite a third of the day, but it’s more around how we’ll work, rather than what we’ll work on.

    A quick history: 2016 - 2018

    A lot happened in the first few years of Easy Agile’s existence. We created some successful products, travelled around the world to Atlassian events and generally had a bunch of fun. We also built huge backlogs of work we’d never, ever start, let alone finish.

    Back then our situation was a little different to most other software companies. We had more products than developers! At one point we had 5 products and 1 developer. This improved to 3 developers and 2 products, but even still, our internal systems and other non-customer-facing work never seemed to get started.

    These early years were chaotic, which was entirely my fault. It was my reluctance to give up coding that meant I was lost in the weeds rather than zooming out and attempting to build a fantastic team. We were just plodding on, looking at our shoes and getting distracted by little things instead of stopping, reflecting and committing to our core purpose. I needed to change my ways to help the team improve. Thankfully I remembered a really cool video which eventually would become the impetus for me changing my focus from code to the team...

    I’ve watched this video countless times over past few years. Every time I do, it makes me feel so lucky that I worked at Atlassian and was able to partake in ShipIt and Innovation Weeks. I highly recommend you take the time to watch it if you haven’t already.

    The importance of Autonomy, Master and Purpose

    The ideas this video presents around autonomy, mastery and purpose propelled me to think beyond simply how we work to think about the reasons why we work. Naturally, the first thing that comes to mind is money. Having enough money is vital to live a fulfilling life (which I’m proud to say we strive to provide at Easy Agile), however, as covered in the video above, more money is not necessarily a great motivator. It’s autonomy, mastery and purpose which provide that.

    So whilst I was taking a step back to create a better way of working, I figured we may as well try to bake in autonomy, mastery and purpose along with a provision to prevent some undesirables from creeping in. The main culprits I had in my sights are bureaucracy, red tape, sacred cows, legacy systems and politics.

    If you’re going to the effort to building an amazing team of talented people, taking time out of their lives to work for you, the last thing you want to do is get in their way with pointless rituals which just stifle their creativity and waste their time!

    Team chatting outside morning coffee

    Gaining perspective by zooming out

    Being a software company, Easy Agile’s heart beat is our software development process. However nowadays we do so much more than develop software. All of our team communicate directly with our customers daily via customer support, we have fantastic marketers, product managers and a data analyst. We needed a way of working which went beyond backlogs and estimation and brought everyone together to push in unison towards our goals.

    We do our best work together in cross-functional teams so I wanted to bake that in from the start, rather than build silos as we grew. We started out by having everyone work off one backlog and scheduled all of our work in Jira (including Sean, our first marketing hire). However, as you can guess, this doesn’t scale. The details discussed at our planning sessions became irrelevant to most of the team. We ended up only skimming over most of the details which made planning and estimation mostly irrelevant.

    In early 2019 I made it my mission to get serious about finding a better way to work. So I stopped coding (it was frightful founder-code anyway). Since then we’ve been through four revisions of our development process. We’ve even made “finding a better way to work” our motto.

    The details of this transformation is beyond the scope of this blog post, however, let’s just say that we’ve gone from a chaotic, unmanaged backlog to a far more organised and considered approach to work. The current revision of our development process allows us to work on (and dogfood) our products and our internal systems simultaneously. It scales with us as we grow, encourages cross-functional teams and bakes in our company values as well as autonomy, mastery and purpose for all team members.

    Shape Up by Basecamp forms the foundation of how we work

    I was first made aware of Basecamp’s Shape Up in a comment Nick made on a blog post I wrote announcing one of the aforementioned revisions of our development process. It was 4 months later when I’d started my hunt in earnest for a better way to work that I remembered it and, upon re-reading it, felt it might just work.

    In Shape Up you work in 6 week cycles which is just long enough to do something tangible, but short enough not to feel that the deadline is too far away. This is followed by a 2 week “cool down” where everyone is free to fix bugs, try out something new and gather themselves for the next six week cycle. At Easy Agile, we already worked in a “product” cycle, where we would focus on one product after another, so this idea fit in well.

    Six weeks is long enough to build something meaningful start-to-finish and short enough that everyone can feel the deadline looming from the start, so they use the time wisely. The majority of our new features are built and released in one six-week cycle.

    Shape Up goes on to propose the concept of “pitches” and “bets”. A pitch is a refined description of a feature or change large enough to have a meaningful impact on the company if it is successfully delivered.

    Shape Up takes its name from the “shaping” process applied to forming a pitch. Shaping a pitch is simply taking the time to focus on the problem and define a good solution. You are encouraged to pull in people you trust to “hammer the scope” of your pitch so it is very clear what it does and does not do. This appeals to our “Engage System 2” and “Commit, as a team” values.

    I’m not a betting type of person, and seeing as that viewpoint seemed fairly prevalent in the team, we came up with an alternative vernacular: Opportunity.

    Teagan and Angad working

    What is an opportunity?

    Opportunities ratify the work of our Product Managers. They may take up to four weeks or longer to shape which is in stark contrast to other workplaces where product managers are responsible for “feeding the beast” (finding, or making up, work to keep the development team at full capacity).

    Opportunities represent either 2 or 4 weeks of work. Anything less and it’s probably not really worth doing, or it is a small improvement, which is done by our Small Improvements team (more on that later).

    Our cycle

    Where Shape Up’s cycle is a total of eight weeks, we’re currently experimenting with a six week cycle. We have four weeks of work on Opportunities followed by a week of paying down Technical Debt, go to market and final Opportunity shaping. We round out with a couple of Dash Days (more on that later too).

    1. How we shape and select Opportunities

    Shaping opportunities primarily falls on the shoulders of our Product Managers, Teagan and Elizabeth. Anyone can raise an Opportunity ticket in Jira, but by doing so it also means taking complete ownership of guiding it through development, testing, production and monitoring its health and metrics after launch. For this reason we usually recommend working with a product manager to flesh it out.

    The process of shaping and scope hammering is generally done with a few collaborators who can provide perspective on all of the moving parts involved in what you’re attempting to do.

    Currently we attempt to select the Opportunities which will put Easy Agile in the best possible position to achieve our goals (aka our quarterly and annual OKRs). Opportunities which are not properly scoped or shaped will be sent back to the drawing board to come back around in another 6 weeks.

    We are currently exploring how we can improve the Opportunity selection process. The betting table meeting described in Shape Up is one way to select what to work on, however we feel there is a better way which we haven’t quite put our finger on yet. Ideally each Opportunity will help us move towards of one or more of our top-line goals. Baking our OKRs into our work planning keeps them at top of mind throughout the year.

    2. Opportunity team formation

    The autonomy part of our development process really sings when it comes to team formation. With only one exception**, all teams are self-selected and formed of exactly three development team members (a senior, mid and junior team member - something we are still actively hiring for). Team members from product management, data analysis and marketing join to create truly cross-functional teams. This means when the Opportunity goes live, all of the required marketing material, documentation and other non-development work is ready to be rolled out allowing us to move on to Tech Debt / Go to Market / Shaping Week.

    We chose three team members per Opportunity as this allows each team to self-serve their own pull requests. Our pull requests require at least two approvals to be merged. Having three team members reduces the disturbances and context switching being forced onto other teams.

    **A small team works on bugs and small improvements on a 2 week Opportunity which is always selected. The team members for this team work on a rotation so everyone gets their go.

    3. Tech Debt / Go to Market / Shaping and Selection week (yes - we need a better name)

    In the week following the completion of our 4 weeks of Opportunity work, the development team takes a week to focus on technical debt or improving their development environment. We also use this week as a rollover buffer to close out any work which was not completed in the Opportunity weeks. We try to keep rollover to a bare minimum.

    The marketing team will roll out any of the initiatives they built in the prior four weeks to support any new features which were shipped.

    The Product Management team will crack on with finishing up the shaping of their Opportunities and have them ready to work through with the team for the next Opportunity cycle.

    4. Dash Days

    Dash days (formerly Inception Week) is a period of freedom and autonomy to work on a pursuit of your choosing which, when successful, will ideally lead us to think “How did we live without this before!?”. They are essentially a mix of ShipIt / Innovation Weeks / 20% Time which I experienced at Atlassian. They’re a great avenue to release the creativity of our team.

    Some recent successful Dash Days projects.

    1. Easy Agile Personas
    2. Our Dev Container vscode setup
    3. “Mr. Tulip” (our Slack bot which almost does everything)
    4. In-product NPS
    5. The Easy Agile Podcast
    6. Our deployment dashboard (showing the number of days since a Cloud or On-premise deployment)
    7. Powering our website with Sanity.io CMS
    8. ea-kit (our own component library)
    9. A new random forest churn model to better understand our customers frustrations
    10. Our own logo/brand design framework

    As you can see, there’s a great deal of diversity in the Dash Days projects we have shipped. Shipping is not a requirement of Dash Days, though. Quite often it’s best to take some time to try out some new ideas or build a prototype to put in front of customers.

    A great example of that is a feature refinement developed by Sam and Angad, two of our newest front-end developers. They worked with our Product team to build a new way to create issue dependencies in Easy Agile Programs. Their definition of done was not releasing to production, but to get it on a test server which we used for customer interviews run by our Product Managers, Teagan and Elizabeth. The following Dash Days Sam and Angad took this feedback, refined the feature with the product teams' help and shipped a version to the Cloud version of Easy Agile Programs. So far the new dependency creation approach appears to be 10 times more popular! Success!

    Dash Days is also a great time for team members to take advantage of their $5000 Learning and Development budget which each team member receives every year.

    Team in kitchen

    Shaping a new way to work

    Introducing a Shape Up flavoured process here at Easy Agile has allowed us to gain focus and certainty in the work we choose to take on. It allows us to have long term goals without the need to build inflexible roadmaps. Our Product Managers are encouraged to take the time they need to focus and design amazing new solutions for our customers. The 6 week cycle grants us the flexibility to react to external changes or take advantage of new opportunities which arise without derailing the plans for the remainder of the year. We can take the learnings from our past Opportunities and feed them into the plan for the next, increasing our chances of success.

    Easy Agile’s development teams are flexible and choose who they work with and what they work on. We constantly pay down tech debt and shun red tape, legacy systems and sacred cows. We work in cross-functional and fluid teams.

    We’ve been able to adopt Shape Up and bake in things like Dash Days and our company values. We love that the way we work allows us (and encourages us) to stop, take a breath and express our creativity every 6 weeks. Tech Debt Week and Dash Days are also a great way to increase the focus of our development team on their main projects by deferring any small tasks which interrupt and distract them.

    We believe a steady, life-inclusive and balanced approach where we bring our whole selves to work each day is better than burning ourselves out in the pursuit of unrealistic deadlines.

    And finally, as we grow, we know that the system which runs Easy Agile will continue to change to help us find a better way to work.

  • Agile Best Practice

    5 Ways Every Development Manager Can Boost Team Performance

    When you take on the development manager role, it can feel like you're doing a little bit of everything. Your job is no longer to focus purely on code — and you're not leading your average team. In your day-to-day, you're representing, strategizing for, and even developing with your engineering team.

    With all the tasks filling your to-do list, it can be easy to forget: Getting quality results depends on the quality of your leadership. Work isn't just about projects — and you're not a project manager. Great development managers are equally as good at working with people, building culture, and supporting their team members as they are at boosting efficiency and working on all things technical.

    To get the most out of your team, here are five tips that every development manager needs to know to get the best from their team.

    1. Offer guidance, not micromanagement

    Have you ever gotten anything done with someone breathing down your neck? It's not comfortable, and it creates a culture of distrust. In an agile environment, this goes against the principle of having a self-organizing team — one in which each team member takes charge of their own responsibilities and timelines.

    A great development manager knows that each team member contributes their own unique work experience and knowledge to a team. Your job description isn't to do other people's jobs for them or boss them around. Rather, it's to ensure the engineering team produces quality products in a timely manner.

    You'll get more out of your team by inspiring them instead of telling them what to do. Instead of dictating deadlines, guide your team in the right direction by illustrating the importance of your priority projects.

    How will each person's contribution impact the broader company? How will finishing one task early unlock new opportunities for the team? Nudge your employees toward better decisions that they make themselves to build a team that's enthusiastic about their work.

    2. Plan with the big picture in mind

    Development manager: Glow Up Make-Up GIF

    While members of your product development team may be diving into the details — writing code, checking off smaller tasks — your job as a development manager is to think big. Development managers play a key role in the agile planning process by figuring out which projects their team should prioritize and how to best complete them.

    Instead of just thinking solely about what's best for your team, you need to consider which projects and tasks best align with your company's broader business goals. This will help you build a development team that creates stand-out results for the entire company.

    At the same time, you should be fully aware of what's possible for your team to take on. Will committing to one new product up one person's workload far more than others? Does your team have the capacity for more work at all? No matter how many years of experience your team has, they — as individuals and as a whole — need room to breathe so they don't burn out.

    3. Keep your technical skills up-to-date

    "Manager" may be the brag-worthy highlight of your job title, but that doesn't mean you can let your technical skills go. Odds are, coding will still make up a chunk of your day-to-day — or at least your week-to-week. Even when you're not directly assigned to a software development task, you'll still need to guide your team members through their individual tasks.

    To give your team the support they need, you need to be able to speak their coding language. This will help you lead code reviews, take part in technical conversations, anticipate (and prevent) roadblocks, and ensure you're implementing the most efficient technologies. Regularly taking courses and joining a coding community are two simple ways to be a problem-solving champion for your engineering team.

    Your technical expertise will help your team stick to your product roadmaps and meet key milestones.

    4. Bolster your communication skills

    Development manager: MasterChef Junior Communicate GIF

    When you take on the development manager job, you become a liaison between your engineering team and other parts of your organization. For example, you might communicate the needs of your developers to senior management or pass on requests from sales managers to your team.

    People without a technical background might think you're talking about music if you start talking about C#. Engineers without business management experience may roll their eyes if you start talking about five-year plans instead of an upcoming product launch. Even though coworkers share the same company culture, they don't necessarily "get" each other all the time.

    Developer managers are translators who represent their team and deliver messages back to them as needed.

    Since you're constantly working with people from different backgrounds, you need to strengthen your interpersonal skills. Get to know how you can best communicate with different people. Which teams prefer email over texting? Who's the go-to contact person for each team? Does anyone listen better when they're not hungry? 🙋

    The stronger your communication skills are, the more likely your team will get the resources they need, and the better they'll connect their priorities to your company's.

    5. Be available to support your team members

    Development manager may be a part-time managerial and part-time technical role, but in this position, you need to be a full-time leader for your team. When you want to consistently improve your team's output, you need to put your top-notch leadership skills into practice day in and day out.

    As a development manager, you need to act as a coach of sorts for your team members. Schedule out recurring one-on-ones with your team members, during which you can chat about career goals and pain points on top of current projects. When you have a new hire, chat with them about their desired career path during the onboarding stage.

    Based on what you learn, you can brainstorm ways to support their professional development. You don't have to pay for their bachelor's degree to help them succeed. Connect them to mentors, send them to conferences, recommend them for speaking opportunities — your options are endless (and simpler than you may think).

    Offering support on both current projects and in long-term career goals is your chance to invest in your employees. It'll help them become better workers — and they'll feel valued, too. Did you know nearly half of employees leave their jobs to gain new skills? Keeping your development team at its best in the long run requires you to help each employee grow.

    Lead your team as an effective development manager

    Leading your development team to success takes an unbeatable blend of people skills, technical skills, and leadership skills. In your multi-faceted role, your ability to communicate and align your team with the rest of your organization is invaluable.

    With Easy Agile Roadmaps for Jira, you can make team alignment simpler by dragging and dropping any Jira issue on a visual timeline. Watch our demo today to see how this tool can help your engineering team shine!