Tag: testing

  • Removing the Wall Between Dev and Ops

    Removing the Wall Between Dev and Ops

    Welcome to the new devopsy.kinsta.cloud Q&A series on Enterprise DevOps. In the first post in this series, I answered five key concerns for adopting a DevOps approach in a large enterprise. Now, I want to address a more specific question from an admin at a large enterprise about the silos and barriers between dev and ops …

    Q. How do you work with customers to remove the imaginary wall between dev and ops to create that DevOps environment?

    This is perhaps the core of a DevOps transformation – dev and ops teams working closely together toward common goals, rather than in isolated silos. I have seen several methods have substantive impacts on these entrenched silos, so I will take you through some of the more effective approaches.

    Familiarization

    In many organizations, dev and ops barely know each other – a huge barrier to the empathy at the centre of devops. Breaking this wall down may be as simple as getting both departments together for some social activities. Some successful approaches I have seen include:

    • Sponsor a one-off or regular shared non-work team activity, like paintball, a pool tournament, team picnic, LAN game, or cooking classes. Bring both teams together in a non-workplace environment to work together. Remember to mix up the teams – you do not want to reinforce any us vs them mentality;
    • Schedule sessions for team members to present to each other in short sessions (think lightning talks like Ignite or TedX) beyond technology to any areas of interest – like ‘My Sports Team,’ ‘Steampunk in the 21st Century,’ ‘Restoring Train Carriages,’ or ‘Strategies for TF2 Domination.’ Share common interests to create empathy for each other as people, not just functionaries;
    • Initiate informal knowledge sharing, with regular ‘lunch-and-learn’ or ‘brown bag’ sessions, where team members can explain what their role is, why they do it, how they do it. Offer a ‘Day in the Life…’ presentation, a Q&A session, or a whiteboard over pizza and sodas and your technical staff will come out like vultures, ravenous for … knowledge!

    Co-Location

    Telecommuting has many benefits, but standup meetings are hard to achieve across five time zones, ten locations and six languages. People communicate better in person, so physically co-locate teams as we at CA and others have done, to enable them to connect and talk in person, not just via e-mail or IM.

    Geo Alignment

    In multi-national enterprises central developers often push code to global operations, reinforcing the silo mentality. Align local devs and ops with local business users instead to facilitate customer-centric agile development, and enable smaller, closer, more agile teams with more immediate shared goals.

    Secondment

    Consider seconding team members into the other team e.g. for one day a week, one week a month, or one month in six. When ops learn firsthand the basics of their dev counterparts, and vice versa, they will better internalize how to work together, and the impact of each role on the overall process.

    Restructuring

    Some enterprises have combined dev and ops into one team. While often seen as an ‘anti-pattern,’ for some organizations this is working well. Others have adopted a flexible org structure with hierarchical management for administration (reviews, goals, training, etc.), but loose teaming for functional duties.

    Shared Technologies

    Beyond cultural and attitudinal shift, technology can also help. A shared toolchain for the end-to-end service delivery lifecycle can bring teams together too. Common tools for planning, testing, release, monitoring, or triage will help break down barriers with a common terminology and shared experience.

    Other Approaches?

    While there are no silver bullets, these are some ways I have seen enterprises break down these silos. But perhaps you have seen or been a part of other approaches? If so, other readers and I would love to know more, so please take the time to leave a note in the comments below, or drop me a line directly.

    And remember, if you have questions about Enterprise DevOps, let me know and I will try to answer them for you. If I can’t answer them myself, I will find someone who can! Please leave your questions in the comments below; hit me up on Twitter at @AndiMann; or send me an e-mail to me at andi.mann@ca.com.

  • 8 tips on how to best manage distributed teams

    8 tips on how to best manage distributed teams

    More and more organizations are using distributed testing teams yet many are hard pressed to know how to manage teams that may be separated by thousands of miles away or on another continent. Too often, companies think about offshore product development only as a means to cutting costs and accelerating time to market. Such an approach can produce poor results with your projects if you don’t take into account certain issues like cultural barriers, metrics and workflows.

    The smart strategy is to focus on the needs and skills of the team and to implement procedures that will help manage them better. Your standard bottom-line goals — cutting costs and accelerating time to market — will take care of themselves if you can follow these 8 tips for managing distributed teams.

    1. Know Your Team

    It’s important to address people correctly. People respond well when somebody knows how to spell and pronounce their name. To infuse a sense of team spirit, attach a face to the person who is communicating via email, phone or IM. Have a kick-off meeting for a project team, where each person introduces themselves with some basic personal information such as a hobby or interest, to help establish a ‘human-side’ to the offshore team. While meeting in person might not be a possibility, the liberal use of video conferencing can really improve the relationship with remote teams.

    2. Eliminate Language Barriers

    Working with remote teams on different continents/countries requires strong communication. It’s critical for the key contacts between teams to familiarize themselves with the pronunciation and grammatical styles of each other, while also ensuring that your team members obtains International English certifications, such as TOEFL. In addition, when possible, I recommend that the team leaders from the vendor side and client side visit each other’s offices to understand the culture of the companies and to instill a sense of partnership.

    3. Clearly Define Roles and Responsibilities

    To ensure that all members of the project team understand their expected tasks, it is vital to establish clear roles and corresponding responsibilities early on. Create a collaborative, pyramid-style team structure for the offshore team, so that the key people responsible for daily communication with the rest of the project team are identified, along with an obvious reporting hierarchy.

    4. Create Strong Communications

    The distance between remote teams working on the same project can be eliminated by use of communication tools such as IMs, VOIP-based phone calls, online meeting tools and other electronic mediums. However, communication is only as good as the information provided. All relevant documentation and domain knowledge must be continuously shared with all team members.

    5. Track Detailed Onshore/Offshore Planning and Tasks

    To ensure that your teams understand the assigned tasks and is progressing as expected, it is very important to have a milestone-driven WBS (Work Breakdown Structure) that identifies the effort associated with each task, and identifies the timeline of when the tasks need to be completed. This level of detail ensures that everyone is clear on their assignments, and that any delays (and corresponding affects) can be identified as early as possible, so that a mitigation plan can be implemented if need be. Team progress on assignments and activities should be followed up with daily, weekly and monthly reporting, leveraging defined templates where possible.

    6. Establish Process Workflows

    A clearly defined testing activity workflow should be established and reviewed with the offshore team, to ensure that all team activities are synchronized. Documenting a process workflow allows the team to streamline, validate and verify expected activities that could impact the project delivery timelines.

    7. Don’t Forget Metrics

    Offshore team deliverables and activities should be gauged with quantifiable metrics such as timeline delays, actual-to-estimated effort, QA-to-production defect ratios, and so on. Metrics should be established under at least three categories: timelines, productivity, and quality. These metrics should be established at the beginning of the project, and tracked either by release or on a monthly basis.

    8. Establish Roadmap for Refinements

    To ensure that the offshore team continues to increase its value to the project team, it is important to leverage the daily, weekly and monthly reports/metrics to identify areas of improvement/streamlining for testing processes and test strategies. These refinements should be prioritized and scheduled for implementation by the team, and tracked for progress along with other project deliverables.

    In summary

    Establishing and managing distributed teams is a complex challenge. Cultural differences, time zone variations and lack of face-to-face time contribute to the intricate nature of this model. In addition, some companies focus too much on cost-cutting objectives. To successfully manage distributed testing teams, a company needs to focus on people, processes and communications.

    About the Author

    dave-keil-QASymphony CEO_cropDavid Keil is CEO of QASymphony, a leading provider of test management platforms for agile development teams. He previously served as CEO at Digistrive and at Integrated Broadband Services. He holds an MBA from The Wharton School and a BS in Applied Mathematics and Economics from Brown University.

     

  • A/B Test with Caution

    A/B Test with Caution

    When the morning news starts talking about A/B Testing of course my ears perk up, and I eat my cereal a little slower. But when it becomes a conversation about how ethical it is to use customer usage data to iteratively improve the product, it spawns this blog post.

    (more…)

  • Releasing your team from Release Thinking

    Releasing your team from Release Thinking

    How much time do you spend optimizing your delivery pipeline?  My guess is none. Many teams have figured out great ways to automate their releases, and some even automate testing and monitoring.  But they don’t often take the next step and learn from those results to refine the delivery processes.

    (more…)

  • Episode 2 of devopsy.kinsta.cloud Podcast

    Episode 2 of devopsy.kinsta.cloud Podcast

    Mitchell Ashley and I are joined this week by Stephen Wilson of Compuware. Stephen is a regular blogger here on devopsy.kinsta.cloud, but is also the technical evangelist at Compuware.  Steve gives us his background and a brief description of what Compuware does.  Then we all talk a bit about Steve’s last article here on devopsy.kinsta.cloud,  Don’t worry testing team, DevOps is here!. While some say that testing is a big loser in DevOps and many testing/QA teams feel a threat to their job security, Stephen says not true.  In fact DevOps makes the testing team superstars. Tes.com ting teams should embrace DevOps as it will make their job easier and more powerful, but not less important.  Steve talks about the concept of “continuous testing”.  All of this in just about 13 minutes.

    Enjoy!

    [soundcloud url=”https://api.soundcloud.com/tracks/142563047″ params=”color=ff5500&auto_play=false&hide_related=false&show_artwork=true” width=”100%” height=”166″ iframe=”true” /]

    Also if you would like to be a guest on a future devopsy.kinsta.cloud podcast write us at podcast@devops.com

  • VMware IT Private Cloud — DevOps Provisioning

    VMware IT has deployed a private cloud based on the vCloud Suite. Dev and Ops teams are one tenant using the cloud to automate dev test provisioning and streamline application development. Automated provisioning has improved how these teams work together. And here is how.