Whitepaper: Agile Distributed Teams
Agile Distributed Teams By Belatrix Software | Topics: Software Development
Alignment is core to all Agile methodologies, including SCRUM.
According to author of The Enterprise and Scrum, Ken Schwaber, “the best communication is face-to-face, with communications occurring through facial expression, body language, intonation and words. When a white board is thrown in and the teams work out design as a group, the communication bandwidth absolutely sizzles.”
Research shows that more than 80% of agile teams are distributed across multiple locations. Why? There are lots of reasons. Companies are global. They have global markets and global resources. They need to access global talent. Sometimes that talent is outside of their corporation, as in the case of outsourced partnerships. Gartner Research recently noted that to capitalize on disruptive forces, companies need partners who can help them meet those challenges.
Belatrix offers a pragmatic Agile approach to capitalize on those disruptive forces Gartner references. By multiplying your enterprise’s innovation efforts, Belatrix helps you meet those challenges head on.
How do you assess whether distributed Agile is the right model for your enterprise? What are the practical aspects of a distributed Agile model? We interviewed one of Belatrix’s Certified Scrum Masters. We asked him to address some of the typical questions companies have about working with Agile in a distributed team environment:
1. What are some critical issues to address in working in Distributed Agile?
Software projects require a lot of communication. This is no different with a Distributed Agile software project. When the team is geographically distributed communication can sometimes become a challenge. It’s important to anticipate this and address it proactively. Distributed teams require strong leadership. Leaders of distributed teams should facilitate optimal levels of communication among the members of the team. Team members should also be encouraged and empowered to communicate actively. Removing hierarchical organizational barriers further multiples the flow of information within the project. Open and active communication increases the overall success and velocity of a Distributed Agile team.
2. How do you determine the best size of a team? What’s the best location for team roles?
Team size depends on your project’s specific scope. Team sizes can range from 5 to 12 members.
Belatrix normally requires 4 to 8 weeks from contract execution to project launch. This period of time allows us to recruit both internally and externally to identify the most qualified engineers to join the project. In certain instances that period may be shorter if we have engineers available for your project.
Belatrix has Innovation Centers in multiple locations. That gives us an opportunity to hire and select engineers from multiple locations. That enables us to launch your project faster.
We have large candidate databases, and in-house recruiters who help us quickly identify the right candidate.
3. Is there a certain engineering profile that is better suited to Distributed Agile?
Personality traits are important to consider. Some engineers aren’t a natural fit for doing Distributed Agile. It’s important to recruit for strong personality profiles that will embrace Distributed Agile and contribute strongly.
Belatrix’s Human Resources teams use psychological insights to recruit engineers that are highly suited to doing custom development work. Those individuals welcome collaborative work, and aggressive turnarounds. Understanding both the optimal technical and non-technical people profile requirements for Distibuted Agile allows Belatrix to offer highly stable teams, with extremely low attrition levels. That stability allows clients to achieve higher velocity levels and other metrics.
4. How are workloads assigned across the team(s)?
Maintaining relatively even workloads across the team is an important part of keeping the team rolling. Depending on the product’s needs, Belatrix contributes a team of agile trained engineers (including UX Design, Developers, and QA engineers). The joint client-Belatrix team kick starts the project with a Sprint 0 Session. During Sprint 0, the project is deconstructed in story points, sizing the pieces of work according to each’s complexity.
Since Agile’s major selling point is its iterative approach, the team self organizes, setting up a plan to achieve a viable software delivery at the end of Sprint 1. That initial output is then perfected until it meets all of the goals articulated by the client product owner.
The specific workload assignment depends on each team member’s velocity. At the end of each Sprint we validate each team member’s delivery time rates to calibrate the next Sprint’s plan. At the end of the project, all of the story points are measured and velocity calculated. The goal is to balance the workload so that all of a given sprints goals can be achieved.
5. How do you enforce agile activities such as Daily SCRUMS, Sprint Planning, Sprint Reviews and Sprint Retrospectives?
We have a real advantage here. All of Belatrix’s offices are located in a time zone that maximizes team collaboration and efficiency for optimal delivery. Depending on the location of our client’s teams, we usually have a workday overlap with the entire team. Lima, Peru is located in the US Eastern time zone and Mendoza, Argentina 1 hour ahead of the US Eastern time zone.
Building on the time zone advantage, we actively use VOIP tools to facilitate audio calls, as well as instant messaging.
We also frequently do face-to-face interactions by tapping into videoconferencing tools like Skype, Webex, Google Hangouts, Team Viewer, and Join.me. Also, screen sharing is a great way to help connect people and get things done more efficiently.
We avoid relying on email as a communication tool. This slows down communication.
6. Where do you save SCRUM Artifacts like Product Backlog, Sprint Backlog, Burndown reports?
We use a collaboration portal to support storing the SCRUM artifacts. We assure 100% transparency with real-time feedback and visibility throughout the development process to the whole team using Agile Project Management tools like JIRA with Green Hooper, Rally, VersionOne, Mingle or PivotalTracker.
7. How do you implement Code Reviews and Demos?
We do code reviews with video and screen sharing to increase the richness of the experience. This activity is also supported by specific tools like Gerrit or Code Collaborator.
Code comments are very important for the team interaction. JIRA, for example, provides a helpful plug-in that tracks comments and relates them to a particular ticket and also the specific piece of code.
8. Which is the role of the Subject Matter expert?
The Subject Matter Expert (SME) is a key role in our successful distributed team delivery model.
The SME is a person with special expertise in a particular area (QA or Development). The role helps teams achieve their fullest potential by applying best practices to their work. S/he is in charge of removing any issues that might impede the progress of the team. That may involve helping to solve a technical issue, or helping a team member expand his/her perspective on a given problem.
SMEs also support our HR Department with the recruitment process by adding a technical perspective, as well as contributing to training plans for specific skills needed by the teams. This role has been very useful to architect a culture that supports early feedback and open sharing of ideas.
9. What’s your advice to someone exploring a Distributed Agile Team?
Client commitment is crucial. Because the distributed work is occurring in real time, it’s important to realize that any questions that arise need to be addressed quickly.
Other key point is that companies starting agile and aiming to lower costs would rather choose nearshore model over offshore model.
10. How does Nearshore Agile vary from Offshore Distributed Agile?
Distributed Agile works best where there is real time collaboration. It’s therefore crucial that the client and the distributed team’s time zones overlap for a significant part of the day. Nearshore provides this. Offshore makes this significantly challenging.
It’s highly recommended that clients visit their Nearshore distributed teams to ensure close alignment. Belatrix’s clients report easier travel to Argentina and Peru which require just an overnight flight from the US, for example. There is also no jetlag so visits can be more productive.
Agile product development also relies heavily on a core understanding of what the product is intended to do. Without strong alignment, cultural differences can lead to misinterpretation of goals and result in lost productivity. Belatrix offers Agile engineering teams that have a western business, and product orientation. Belatrix’s engineers have been trained in Design Thinking and Creativity techniques which allow them to put themselves in the user’s shoes. That then serves as a strong basis for development and testing.
Effective Distributed Agile accelerates software velocity. Distributed Agile helps companies tap into a rich global pool of engineering talent. To ensure the caliber of that talent, companies should evaluate how much the Distributed Agile invests in ongoing training. Belatrix offers its engineers more than 120 hours of training a year.
Distributed Agile partners also offer significant process excellence in Agile projects. That knowledge and insight on how to do Agile well can not only contribute to an existing project, but improve the internal operation of the client organization.
Talent, velocity, expertise. Distributed Agile contributes to the overall project and quality outcome of the partnership.
Whitepaper The Five Planes of UX Design
By Belatrix Software | Topics: Software Development
User centered development is a must for a software developer that’s looking to establish a solid foundation in their chosen market segment.
There is no one-size-fits-all approach for UX design, but there are a few best practices that any project benefits from, regardless of its methodology.
Many software companies focus on function over form. They put most of their research and energy into the software features without paying any attention to how user friendly the application is. Instead, they feel that reducing production costs and software cycles requires the UX focus to be cut out of the equation. While software can’t stand on its own without a solid design, it’s also worthless if the users are unable to figure out the software because the UX is unclear, frustrating, or otherwise problematic. Even worse, some companies assume that the developers can put together a design, instead of sending it over to their design team.
When they don’t see the sales that they expect, they blame everything before realizing that a subpar UX is the major issue. There are countless software developers out there, so unless the company has a stellar and completely original idea, chances are they’re in direct competition with at least one other company. It doesn’t matter how many stellar features they offer if they never get used because the UX has end users running away before hitting the buy button.
User centered development is a must for a software developer that’s looking to establish a solid foundation in their chosen market segment. It’s not enough to have better functionality than the competition. It has to come together with a cohesive UX that makes it simple for the end users to figure out which way is up.
What is User Experience?
User Experience has to come in at the beginning of the product’s life cycle not tacked on near the end. The question is, what exactly is User Experience? UX design used to be lumped in with everything else that a software developer handled in their standard workload. It wasn’t until the past few years that it split off into its own design field, as companies began to realize that a great UX makes a big difference in the effectiveness of software.
UX is sometimes referred to as the design methodology behind the visuals. Graphic designers make an interface look pretty, but a UX centric design also focuses on the user accessibility and user friendliness. It encompasses a wide range of how a user interacts with the design, their feelings during the process, and keeping that all in perspective to make a great software experience.
One of the first things a software development team should do is establish what, when, where, why, and how the product is being used. This helps to shape the entire development process around the UX, instead of trying to shoehorn it in a software framework that doesn’t work well with it. Every aspect of the user is considered during this process, down to the psychological responses created by the software. This adds value to the software package overall.
How Does UX Benefit a Business?
There are thousands of applications launched per year, due to the massive growth in software, web, and mobile industries. The amount of competition in the market requires every company to take advantage of everything they can to get ahead and carve out a solid user-base for their product.
The typical user isn’t going through datasheets of hundreds of applications to figure out which one works for the best. They go off several factors, such as their first impressions, whether a software selection looks like it can meet their needs, and what their overall user experience is. Much of the decision making happens on a subconscious level, which is where UX design comes in.
Deliberating designing software with the UX in mind helps create a favorable first impression, even if this particular application isn’t as feature rich as a competitor’s offering. The UX works to meet user expectations from a product.
Some tangible benefits that result from UX design includes positive responses from the customers, higher sales, better conversion ratios, and increased web traffic. If the UX is for a website, some benefits include lower maintenance costs, better user feedback, established brand or industry authority, and better brand awareness.
The Five Planes for UX Design
There is no one-size-fits-all approach for UX design, but there are a few best practices that any project benefits from, regardless of its methodology. These 5 steps go from abstract to concrete and each of them has special tasks, helping businesses develop a workable UX centered application from the ground up.
The first step is strategy. Most software developers have brainstorming sessions where they go over the feature set of an application, the general look, and other important considerations. The UX design comes in during this strategy session so it’s incorporated right from the beginning. Here are a few questions software developers ask themselves when sketching a framework for a UX design:
- What is the big goal of the product?
- What does the user want?
- What does the business want?
The next step after strategy is establishing the scope of the development. In a perfect world, software developers could add every single idea that comes up at the beginning of a project. In reality, maybe 10 percent of these ideas are incorporated.
Determining the scope of the project takes the strategy session and translates it into concrete requirements for a piece of software. A few ways of handling scope creation includes:
- Creating user stories
- List objectives for the software
- How does the product help the users?
- How many clicks does it take to get to each essential function?
- What type of user is interested in this application?
The third step gets down to the nitty gritty of development. The structure of the Whitepaper | The Five planes of UX Designapplication is established. This is the step where development ideas move from intangible data points to actual areas of the application. Some questions to ask during this step of the development process includes:
- How do all the pieces of the site fit together and behave?
- How does the user find what they are looking for in an intuitive way?
- What are the flow of actions and interactions throughout the site?
Two ways to visually answer these questions includes a site map to figure out how every part of the application groups together, while user flow diagrams shows how they move throughout the site or app.
It’s time to make a design blueprint in this fourth step. Typically, software developers utilize wireframes to move from structure building to the look of the entire application. They are basic drawings or renderings that simply have to display how the application looks, what form the navigation takes, the general layout of the software, all of the elements involved in the application, and where these elements go.
The wireframe is not complicated visually. It’s a simple representation of what the major elements look like, before flashy graphics and logos get added to the picture. Here are some essential questions to answer while developing a wireframe:
- What elements are on which page?
- Where do the buttons go?
- What types of calls to action are there?
- How many columns are used?
- How is the text displayed?
- What is the image placement?
The last step of the process is to bring the entire process together with a unified visual design that makes it attractive to consumers. A good visual design should also work together with the rest of the development process to help augment the features, function, and form of the software.
Some elements that are added during this step of the process include:
- Color palettes
- Brand identity
To get a better understanding of the process, we’ll see an example of the complete UX process for facility manager software
Definition of business and user’s needs:
The company has the need for its employees to be able to graphically locate where other employees sit within the various office locations the company has.
This allows for employees to easily find someone for meetings, locate conference rooms in the campus, and allow floor-admins the ability to do space/capacity planning
Creation of user stories:
In this case different site maps were created according to different user’s permits. This is the user’s site map:
Creation of general and specific wireframes emphasizing interaction and workflow:
There were presented two different visual options. Finally, a third version was chosen with the best features of both:
A UX centric design benefits the user and Software Development Company in many ways. The user gets a better experience with the application, resulting in customer loyalty, an extensive user base, increased sales, and other direct benefits.
Incorporating UX planning in each step of the development process guarantees that the user will have their expectations met while the software company also meets its goals. Pick and choose which best practices work with a particular project’s development cycle to achieve success with UX design. This is a value added feature that needs to be included with any app on the market today.
The Design of every day things – Dan Norman
The UX week 2009
Harvard iLab – UX Design: An Introduction with Scout Stevenson