Software Development Staffing and the 6th Man Principle
In the midst of watching the NCAA March Madness tournament, I was reminded of the 6th man concept that RSI has used since its early days. As in basketball the 6th man concept is all about having a ”non-starter” prepped, practiced, ready to enter the game and immediately start contributing to the team. This concept is core to RSI’s 6th Man principle. For many of our strategic accounts we deploy an extra colleague to participate in the upfront strategy and design sessions, kickoff meetings and daily stand ups so that when their time comes they will be prepared to hit the court at full speed. Their time may come due to an injury, an illness, paternity or maternity leave, or maybe just a packed sprint that needs the extra help. Whatever the cause we know that this 6th Man will be able to step in, run the offense and execute the game plan because they’ve been to all the practices. But wait, why would an enterprising, software development firm place a non-billable colleague onto a team? The rational is that it’s good for the client, good for the colleague, and in the long run it’s good for RSI. For the client it’s the assurance that they know there’s a backup waiting to get in the game in case something happens. For the colleague it’s a better use of “bench time” than creating a “make work” internal project or watching another PluralSight video. For RSI it’s a way to keep both clients and colleagues engaged and happy. As March Madness enters the Sweet Sixteen and Final Four rounds take notice of how those 6th man players ultimately impact the game and success of the eventual winners.NEED HELP? LET'S TALK.
Scrum Master Vs Project Manager: Different Roles, Different Individuals
A common misconception among those new to Agile software development is that the Scrum Master role is identical to the traditional Project Manager role. In reality, this is demonstrably untrue and differences between these roles is illustrated when we consider scope of influence and ownership. While there are some shared tasks and similarities between these roles, they are at their foundations, separate roles with incongruent fields of influence.A Scrum Master is a facilitator focused intently on a Scrum Team and its deliverables. The term facilitator is used specifically because the Scrum Master does not lead the team, dictate the work they will do, or the order that the work will be done. A Scrum Master’s role is one of support. Decision-making powers within the Scrum Team are decentralized; the Scrum Master facilitates conversations that lead to solutions. The Scrum Master coaches the team and the Product Owner in Scrum processes, but does not make standalone task level or feature decisions. Essentially, the Scrum Master is embedded within a Scrum Team and is responsible for the work that the Scrum Team develops and launches.In large projects with multiple Scrum Teams, a Project Manager is usually positioned to track the project as a whole, managing project timelines, budgets, contracts, and risk. In this position, the Project Manager is a leader, a decision maker and is empowered with dictating the priority of work, cutting/adding features and adjusting resources while the Scrum Master is concerned with budget, contracts, and timelines as they relate directly to the Scrum Team and their deliverables.The Scrum Master and Project Manager roles are both important in their own way. Each project is unique and as such, management should exercise careful consideration when creating staffing plans for non-development task owners. It may be that a project requires a Scrum Master to help facilitate execution, along with the dedicated contract negotiation skills of a practiced Project Manager. In this case, it would be preferable to have a Scrum Master who also happens to be a Project Manager selected for that role. Many times, the Project Manager and Scrum Master roles are staffed by different individuals to prevent overtasking and conflicts of interest that could break down the Agile process.
The Top 5 Reasons Your Company Should Go Agile
Agile development is not new. In fact, it’s been 15 years since the was created as an alternative to software development processes, such as waterfall. At this point, agile is not a passing fad and if you haven’t adopted it yet, 2016 may be the year. Here’s five reasons why:1. It enables a faster time to market. Every business wants to get a new product to market as fast as possible especially when that product will help drive revenue. In contrast to the waterfall development approach, in which each phase of a project must be completed before the next phase can begin, agile development breaks projects down into smaller increments with short timeframes called sprints. Within each sprint product development occurs across the various phases simultaneously. This allows development teams to bring products to market much faster. The resulting product does not need to reach its full functionality or include a complete set of features before being released. Development teams put effort on specific functionality during each sprint, setting short time periods during which work is to be completed and made ready for review. This allows for the release of software more frequently and with greater focus on the features and functionality that will deliver the highest return on investment and/or are most critical for the business.2. It allows for continuous improvement. Organizations are always looking for the best software development method, but implementing a new process or tweaking an existing process can have a big impact on the business when sequential development approaches, such as waterfall, are employed. Agile development makes it possible to continuously improve processes, which in turn drive efficiency. You will be able to identify inefficiencies and improve processes within each sprint because Agile’s short development cycle allows development teams to try new approaches and ideas while they are developing, leading to innovation and improved efficiency.3. It is user focused. You want to bring products to market that users want and need, right? At the end of the day, these products drive your business in more ways than one. Bringing products to market more frequently and in shorter intervals means that you can iterate and improve quickly based on customer feedback. In this regard, development becomes more user focused and considers direction from the end user. And when those changes need to be made, the shorter agile development cycle means you’re able to get valuable feedback early in the project and make additions or changes in the next sprint.4. It’s flexible. Unlike traditional software development methods, Agile allows you to better adapt and meet changing needs. This eliminates getting to the end of a long development cycle only to realize the product you have created does not meet your current business needs.5. It drives transparency. Frequent communication between the development team and the business helps discover issues and other challenges early, providing opportunities for quick resolution. In contrast, a lack of transparency makes it difficult to adjust to changes, keep track of the work being completed, and identify and eliminate potential roadblocks. Transparency helps the team make sound, informed decisions and keeps projects on track.More and more businesses are realizing that with Agile development comes tremendous benefits. In today's fast paced, competitive business environment, Agile can help drive your software development efforts to realized business success.
Your Team’s Not Agile Unless You Are Doing Agile Testing
For many software testing professionals experienced in traditional development processes, working in an Agile project can be a foreign concept. Testing in older development models often only takes place near the end of a major development phase by a team of dedicated testers. As a result, test phases can be seen as a bottleneck since a multitude of bugs can be (and most often, are) found when QA analysts start looking at previously untested software. In order to meet deadlines, testing phases may be shortened or eliminated altogether, resulting in increased numbers of potentially severe issues at worst, or increased customer support workload at best. Utilizing Agile development practices can alleviate these problems by integrating testing throughout the development process, allowing for a higher quality application.Agile processes can seem chaotic or time-consuming at first, especially if the team is unfamiliar with or still adapting to the shift in thinking required. Whereas traditional development cycles will have a definite start and end, Agile projects are often treated as a continuous endeavor made up of iterations, or sprints, which often last around two weeks. Team members decide on what issues or functionality they will deal with in each iteration, and once that sprint is finished, the next one begins. Testing is not performed in only one phase of the process, but is integrated into each phase to varying degrees, starting as soon as code is created. Members of an Agile team are often expected to utilize different skills, so it is not unheard of for developers, stakeholders, and other roles to perform some types of testing duties along with the QA team.Testers should be well-versed in a variety of testing tools and techniques. Commonly, testing will be exploratory in nature, but understanding how to perform acceptance, UX, load/performance, and even unit testing can be beneficial in an Agile project. Since regression tests can become burdensome over time, many teams implement some form of automated testing. In order to decide whether to add automated tests to a project, team members should weigh the time spent on regression testing against the time that will be spent maintaining the automated test scripts, which can become a problem if the system changes too much, too frequently.Agile processes are not flawless. Acceptance criteria can change unexpectedly based on stakeholder feedback, and a lack of documentation can create knowledge gaps for the team. Luckily, these types of problems can be avoided if Agile methodologies are properly used. Continuous communication between team members, along with having everyone as involved as possible in each step of the process, can reduce communication issues and help the team to be more adaptable to any changes that can come up. Understanding the nuts and bolts of a system or application and how it should behave under certain conditions is essential to any testing efforts, and with the continuous testing integration that Agile methodologies provide, that type of understanding can be achieved with relative ease.
User Experience (UX) – Whole Team Involvement
Sometimes I find that there are multiple ways to describe my job position: user interface designer, user experience designer, and graphic designer can all adequately describe the roles I fill at Rural Sourcing, but what do I actually do? A large part of what I do is help clients discover the best way to visually display and interact with their product. Often I am labeled as the person who just “makes it look pretty.” User experience (UX) is much more than just making something “look pretty.” UX is about making interactions simple and visually providing users with the best solution they will easily understand. Another thing to remember is that it’s not always just about the user; the overall experience should meet as many goals and requirements as possible for both the business and the user. A similar understanding of the role of the UX designer can help businesses, designers, and developers provide the best service to clients.Developing and designing around a great user experience can be a problem. The best way to achieve a great user experience is through collaboration of everyone on a team. If designers want their designs to be built, they need to be involved through the whole process – especially when issues arise and when the scope changes during development. It’s easier to understand the end of the story if we’re there to hear the beginning, right? Involving designers early, when products are still in the development stage, helps paint a clear picture of what the end product is intended to be. Developers can work out design issues by interacting with designers and collaborating on clear documentation. As quality assurance (QA) testers verify that a project has met its technical requirements, designers can also utilize them through identification of issues with front-end design implementation. The entire project team can benefit from collaboration between designers, developers, and testers. Early team collaboration can help eliminate time wasted on tedious corrections and edits.Jared Spool, founder of User Interface Engineering, one of the world’s largest usability research firm, says that the most common flaw he has found is that companies think “good experience design is an add-on, not a base requirement.” There are always unanswered UX questions that arise, and utilizing a UX designer early can save time on ramp-up and rework for any project. For example, a small change to a design that supports reuse of components can help make development faster, which in turn frees up time for work on more complex areas. Everyone sets out to achieve the best product they can; success can be attained through collaboration between the entire team, early involvement of UX designers, and a cohesive understanding of what UX can bring to a project; so how do you engage your UX designer(s)?