Tech in 2: Akka Reactive Streams
Senior Consultant Josh Mayfield discusses the benefits of Akka Reactive Streams, a customizable set of protocols that can be utilized to increase the performance of your applications. Usable on both Java and Scala applications, these streams can speed up your flow, allow you to process more records at the same time, and provide security for your flow all at once.
Tech in 2: AWS Tools to Optimize Your Move to the Cloud
Moving to the Cloud doesn't have to be difficult. AWS tools, including ECS Auto Scaling, CloudWatch, and CloudFront can help you quickly set up your server, while also ensuring it’s scalable and optimized. Principal Consultant David Sullivan shares some of the AWS tools he’s utilized with clients in their move to the Cloud.
Four Ways to Include Your Users to More Successfully Update Your Legacy System
The thought of updating a legacy system can be intimidating, especially when you have a user base to maintain. I, however, see this as an advantage. Besides select members of your organization, who else knows your product and its functionality better than those who use it? You can save yourself time, money, and a lot of headaches by actually including your users in in your legacy system update. Read on for four ways to make it happen. Segment your users In order to include your users in the process, first you need to figure out exactly which groups of users you’re going to utilize. The most important thing to remember is that you’ll want a representative slice across your user base. You’ll want to include some big and small users, and also make sure you get a range of users that utilize all of aspects of product functionality. You may need to do some data analysis and define your “casual users” and “power users” so you can work with some from each group. Get them the product sooner rather than later The quicker you can get the product in front of your users, the sooner you can get feedback. Even if it’s just a small issue like screen resolution size or element tab orders that slow down data entry, the quicker you can identify these bugs the quicker you can pivot. You don’t want to find yourself months into the process before you identify something that’ll cause your project to have to start from scratch, meaning both time and money lost. I specifically promote Agile sprints with my team for this reason. Determine your marketing research methods Whether it’s focus groups, surveys or hands-on demonstrations, decide the ways and means you’ll be soliciting feedback from your users. Taking a phased approach to product deployment can be a helpful way to do this. Even if you’re still at the stage where you can’t get the product in their hands just yet, you can communicate the types of changes that are coming and ask for feedback or questions. Once you’re farther along, hands-on demonstrations can be a great way to identify any last-minute glitches. Decide how you’ll handle user feedback People in your organization will have varying reasons for which changes they’d like to see. Once you’ve decided which changes you’re going to make and why they’re important, your users might have other opinions. What are you going to do if you experience negative feedback? Are you going to stand firm or change course? You need to plan in advance how you’re going to handle these oppositions, or you’ll be putting your project at risk for derailment. Speed to market requirements keep accelerating. Most organizations no longer have the luxury of taking 6-12 months to design and develop a solution before their users have a chance to see it. By involving your users early and often, and treating them as partners in the development process, you’re more likely to end up with a better product and happy, loyal customers. About the Author:Gary Gealy is a Senior Consultant with 30+ years of experience in programming, supervision and technical support. He feels strongly that software development is as much a craft as it is a science and as such mentoring and training are critical to growing an organization. He has developed software across a number of markets including the Insurance Adjusting, Manufacturing, Food Services and GIS industries. WATCH GARY'S TECH IN 2 VIDEO
Tech in 2: Tips for Updating Legacy Systems
Updating a legacy system can be a big undertaking, especially when you have a user base to maintain. Senior Consultant Gary Gealy shares how to use an evolutionary approach rather than a revolutionary approach, so you can handle your updates one piece at a time.
Tech in 2: Component-Driven Architecture
Imagine being able to introduce new features more quickly, have easier collaboration, and ensure you’re less prone to project-derailing bugs. Component-driven architecture makes these benefits a reality, while also providing more independence for project engineers. In this Tech in 2, Principal Consultant Wes Dollar shares the importance of component-driven architecture and why it shouldn’t just be adopted by developers, but by anyone focused on digital acceleration.
Tech in 2: Machine Learning
Machine Learning algorithms can vastly improve business insights from the huge amounts of data passing through your organization. In this Tech in 2, Principal Consultant Hoke Currie explains how these algorithms will help you process information more quickly, handle larger amounts of data, and truly supercharge your understanding of what's happening in your organization. DISCOVER MORE
Software Development Trends for 2021
As we welcome the start of a new year, we also welcome the excitement that comes with new technology on the horizon. This is especially true in the world of software development. We talked to some of our developers to learn the latest updates and trends that they’re excited about for 2021, and what those improvements will bring to our clients. “I’m excited to see the .NET framework and machine learning coming together. ML.NET (machine learning in .NET) is a ‘neural net in a box’ we can apply to many potential applications to bring the strength of neural net processing to our client applications. It’ll empower our clients to make better business decisions.” - Kenn, Fort Wayne Development Center “I’ve been helping a client transition to using Elixir/Phoenix for their codebase for the past two years. There are changes coming up in 2021 that should improve the speed of code running with the Elixir Virtual Machine. There are also more developments on the horizon within the Elixir community that will make it easier to troubleshoot errors in the codebase. I’m excited about the possibility of us gaining additional expertise in Elixir, and Rural Sourcing utilizing it as a solution for more clients.” - Matt, Albuquerque Development Center “Snowflake has really taken off lately! I’m excited about how it could help our database colleagues offer a more Agile or extreme datawarehousing approach to our clients.” – Margret, Albuquerque Development Center “Deno as the next generation of Node. It’s doing a great job of addressing the security concerns associated with Node applications, and will help prove to any Node naysayers that the technology is mature enough to adopt, even for enterprise level applications.” - Devin, Albuquerque Development Center “A big trend right now is API-first development. I think this is exciting for Rural Sourcing, because it gives us the opportunity to call attention to the contribution that QA can provide for our clients. QA can ensure that the foundation of a complicated system is a solid one and protect a client's brand by providing a reliably positive experience for those who are consumers of these APIs across a variety of platforms.” – Andrés, Fort Wayne Development Center “The new .NET Core means we won’t be working with two divergent stacks any more. The improvements they've made to how their platform works are really exciting.” – Eric, Oklahoma City Development Center “Kibana is a new open source dashboard that provides search and data visualization capabilities within Elasticsearch. The project we’re utilizing this technology on helps our client better understand how their data is being used, what problems are occurring, and how often. I look forward to getting to use this tech stack with more clients in the future.” – Brandon, Jonesboro Development Center DISCOVER MORE
Tech in 2: Pluralsight Flow
Pluralsight Flow is a cutting-edge tool used to measure the performance of software development teams as they’re developing code. Principal Consultant Chris Simmons explains how it works, and why it’ll positively impact your team’s speed, efficiency, and quality. DISCOVER MORE
Tech in 2: Automating the Developer Experience
Software developers are constantly under pressure to quickly produce high quality code to solve business problems. In this #TechIn2, Principal Consultant Wes Dollar explains how automating routine developer tasks can increase speed and efficiency, allowing the developer to focus on what’s most important – developing better code and more features for users. DISCOVER MORE
Software Development Staffing and the Sixth Man Principle
With college basketball season heating up and March Madness right around the corner, I’m reminded of the sixth man concept that Rural Sourcing has used since its early days. As in basketball, the sixth 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 Rural Sourcing’s sixth 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’ll 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 sixth 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? Our rationale is that it’s good for the client, good for the colleague, and in the long run, it’s good for us. 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,” and it keeps them fully engaged in the project at hand. That’s why, as the season progresses and March Madness arrives, pay special attention to the sixth man players. I bet you’ll find that even though they have less time on the court, they still make a big impact on the final score. 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.