A 3 Step Process to Quality

In today’s digitally charged environment, executives leading software development companies consistently walk a tightrope as they balance two very different interpretations of the word, “quality.” Users’ perception of quality focuses on software that meets business requirements, while development teams concentrate on building programs and applications that satisfy product and system requirements. These diametrically opposed perspectives put software executives in the crosshairs of a heated debate as both sides attempt to evaluate quality.In reality, business requirements spring from the minds of customers and stakeholders who seek a software solution to a conceptual business challenge. Business requirements, which refer to the “what” of software development, do not translate smoothly into product requirements. In most, if not all, cases, several technology-based solutions can resolve the stated business problem. To select the most technically appropriate and efficient path to resolution, business requirements must be broken down into detailed capabilities, or “hows,” that align with business needs. The tightness of that alignment produces value for the end user customer. Loosely aligned technical capabilities are seen as less valuable by customers, often eroding the software’s price point and damaging the development company’s reputation.To protect the bottom line and reputation of a software development operations, company executives can take a three-pronged approach to extend quality assurance across the entire development process. This three-step methodology, which embraces a universal definition of quality as contrasted to value, incorporates best practices associated with a “right the first time” development approach, and calls for a cultural shift to reward the early identification and resolution of issues, is particularly relevant in today’s fast-paced marketplace.First: define quality, valueFor software company executives navigating this tightrope of conflicting expectations, it would be useful to distinguish between the concept of quality and its value in the marketplace. Conceptually, quality is a measurable outcome of development. The amount of quality associated with any software development project is constrained by available resources and the business priorities of a software development company.One approach to evaluating software quality uses three dimensions:Quality of design – the functions, capabilities and performance levels required by stakeholders. Quality of conformance – how a software product conforms to design, leverages appropriate standards and is completed on time and on budget. Quality of performance – how the software functions post-delivery, especially as it meets user needs, functions as intended, manages its workload, and is supported and maintained over time.While most customers will agree that some degree of quality is a baseline expectation, it is critical to understand that a high degree of quality may or may not be perceived as valuable in the marketplace. Customers perceive quality as driving value, and value is relative when compared to the software’s cost. For example, a customer’s limited budget can eliminate a high-value software solution from consideration when company finds a lower quality product acceptable because of its price.Second: Implement ‘fail fast’In the digital world, customer expectations change on a dime, which can force development teams to pivot frequently. This rapidly changing environment, which has increased pressure on development companies to deliver software faster and at more competitive price points, calls for a new approach such as “fail fast” and “continuous integration.” However, misdirected emphasis has muddied the perception and value of the widely held fail fast principle. More than a few people place importance on the first word, “fail,” when it’s the second that matters. The success of a failing fast development initiative hinges on identifying issues, bugs and errors early in development, the sooner the better.To support failing fast, taking a “continuous integration” approach can help software development companies increase quality and keep costs in line. In this agile development practice, developers integrate their current work into a shared depository several times each day. Automated builds verify each integration, flagging problems and assuring immediate correction. As a result, the software stabilizes at a faster rate.Additionally, many software development companies share software in development with intended users at regular intervals in development. For example, presenting in-development software to users after major agile iterations can be another way to implement the fail fast approach. These frequent releases to end users brings defects to the surface faster than waiting until the development team is deep into the project to find issues.Three: Shift culture to reward early detection, correctionOften, implementing a fail fast approach requires a culture shift in the software development organization. The importance of this cultural shift cannot be overemphasized. In the fail fast environment, quality assurance spans the entire development process rather than being an exercise that takes place at the end of development. When developers understand that identifying and resolving bugs early in the development cycle is rewarded, improves productivity, boosts quality and saves money, the organizational emphasis continuous improvement will begin to resonate.In the digital environment, customer expectations change frequently, and development teams must pivot quickly to maintain the tight alignment between technical capabilities and business requirements. Applying the fail fast and continuous improvement tenets to the software development process can increase the velocity of response to evolving customer requirements.

Understanding the risks of offshoring in today’s digital marketplace

Offshoring, the approach many U.S-based companies take to secure IT talent, has lost much of its original appeal. In the past, U.S. companies sent IT jobs overseas for one key reason: to capitalize on inexpensive labor. In many cases, offshore vendors claimed hourly rates that were 80% less expensive.  IT leaders, originally seduced by offshoring’s attractive bottom-line savings, quickly found out that offshoring’s challenges and risks often increased project costs, eroding the much anticipated savings. A few of these risks include:Time zone differencesLanguage compatibilityCultural barriersDomain expertiseEmployee turnoverGeopolitical riskIT leaders, now familiar with the risks associated with offshoring and its eroding potential savings, are replacing offshoring with a proven alternative to talent acquisition: domestic sourcing or onshore outsourcing. Domestic sourcing taps into talent inside the United States to deliver the speed to market and responsiveness IT organizations require in today’s digital marketplace. In addition, it leverages a deep familiarity of complex business problems, a depth and breadth of capabilities, access to a scalable brain trust, efficient collaboration, and attention to quality. However, determining the value of domestic sourcing has been difficult to illustrate. Today, companies can utilize the Rural Sourcing TCO Calculator, a robust tool that enables the customization of six distinct and commonly accepted productivity factors to a company’s current situation. This allows for a more accurate assessment of their total cost of ownership of outsourcing needs.A key advantage to domestic sourcing however, is its ability to deliver the agility needed to pivot IT priorities in response to changing customer expectations. It allows companies operating in this hyper-responsive digital environment to add and recast IT talent as needed. For example, this agility was recently demonstrated when one of our FinTech software clients asked Rural Sourcing to refocus our existing team and add a second scrum team to meet the regulatory demands of one of their largest clients. Taking a flexible approach allows IT teams to adjust project priorities and delivery timelines on the fly – based on the actionable recommendations that come from real-time analysis of customer expectations.NEED HELP? LET'S TALK.

3 Key Ways to Manage Speed to Market

Today’s age of digital adaptation mandates innovation and quality – at great speed. Way back in 2000, Jack Welch, in GE’s Annual Report, warned us, “If the rate of change inside an institution is less than the rate of change outside, the end is in sight.”For some companies, delivering innovation and quality simultaneously is exhilarating, while, for others, it’s a fast path to disaster. Consider these pivotal questions:Why is it that some companies can marry methods, such as Agile and DevOps, to continuously deliver successfully, while others struggle? What puts some companies at the forefront of market demand, while others strain to keep pace with the pack?Success, it seems, often comes down to the ability to unleash technology’s inherent productivity. ". . . companies have been early adopters of these capabilities and have reaped the benefits. Amazon, for instance, can release code every ten seconds or so, update 10,000 servers at a time, and rollback website changes with a single system command," as Satty Bhens, Ling Lau and Shar Markovitch of McKinsey point out.While most companies' leaders would love to bask in the reflected glory of these technology icons, the reality is most of us are not Amazon or Google. But, we can all learn from these market innovators that speed is an important factor in their success. They are constantly adapting and striving to be first to market.To meet the speed-to-market demands digital adaptation presents, executives should consider:Building collaborative development organizations to expand market capabilities. Empowering a cross-functional mindset that bridges internal and external resources. Creating partnerships that flex and reflect the need for speed.Collaboration is one of the keys to delivering software at speed in your business and getting it right the first time. For example, traditional brick and mortar financial institutions, under siege from digital-only startups, tapped internal development resources to create their own digital products and services – often carving out a competitive advantage for themselves in the process. Marcus, an online lending platform from Goldman Sachs is an example of how digital disruption re-energized collaborative internal development to expand the firm’s footprint in an underserved market segment.Originally begun as a way for retail clients to refinance credit card debt, Marcus leverages Goldman Sachs’ technology expertise to appeal to its smaller segment of retail clients. Smaller banks have little incentive to help retail clients refinance debt, which was the driving factor behind Goldman Sachs effort to build the Marcus platform specifically for that purpose in 2016. Having a cross-functional mindset helped Goldman Sachs identify an untapped market opportunity and quickly develop a solution to meet that need. Today, Marcus has expanded from a one-product platform to a multi-product business, which has created a competitive advantage for Goldman Sachs.Finally, consider combining internal skills with partner capabilities. With the precipitous growth of niche skills, the expense of hiring and retaining these resources on staff may not be feasible for the long term. Looking to partners for these skills allows you to flex your staffing as you grow and keep pace with market demands. In addition, supplementing internal resources with assistance from a partner can enable you to deliver to the marketplace a high-quality product quickly -- likely ahead of your competition.Today’s rate of marketplace change requires innovation and speed to market – a tough order for most companies to fulfill. However, taking a collaborative approach that unites internal and external resources behind shared goals can build the sustainable competitive advantage needed to prevail.

Four Trends Redefining the Workforce Model

As digital adaptation takes hold, four over-arching shifts are converging to change the way organizations build and evolve their workforces.1. Access to Evolving SkillsIn this era of digital adaptation, organizations’ staffing needs change on a dime as they respond to evolving customer requirements. To react quickly, today’s workforce models need to combine in-house candidate identification, recruitment, and more thoughtful retention with precision-driven third-party staffing utilization. External staffing resources will need to meet the needs for specific technology domain expertise, industry experience, creative workforce models, innovative engagement structures, technical innovation and creativity, and much more. Hiring organizations will prefer third-party partners that can deliver on these increasingly complex staffing requirements while adding value in new and unexpected ways.2. Need for Skill over ScaleIn the past, IT demands preferred scale above all else. That’s because the type of project being staffed required rote repetition of key tasks – an assignment perfectly suited to offshoring. Today’s technology projects demand a wider range of skills in smaller quantities, as well as a heightened need for collaboration and communication. The once-dominant waterfall approach to software development has been replaced with a more relevant Agile Methodology popularized by digital adaptation’s ebbing and flowing needs. Today, the skilled project team – one that has been created and staffed for a particular assignment able to cover everything from User Experience to backend database demands – dominates the workforce landscape. Agile teams are smaller, command a wider variety of technology skills, and require broader “soft” skills such as communication, real-time creative problem solving and collaboration.3. Demand for Innovation, CollaborationCollaboration leads to better outcomes, and that’s true across all industries and markets. In acknowledgement of this widely held belief, market-leaders such as IBM and Yahoo are moving remote workers back into corporate offices. Why? It’s certainly not the opportunity to pay sky-high rent on urban offices. It’s an effort to reclaim the creativity and innovation that comes from sharing close quarters. While not every company can make such a significant investment in expensive office space, many companies are taking time to reevaluate and rebalance their approach to workforce building. Partners with innovative staffing delivery capabilities and those that adopt the latest communications tools and platforms to encourage collaboration are winning favor as hiring organizations seek expert help in balancing cost against the need for quality output, a chief motivator behind the “rehoming” trend.4. Push to Expand Talent PoolsAlthough the US technology-based talent pool dwindled as offshoring started to grow after 2001, efforts to promote STEM-based education have picked up in recent years. Despite that push, the slight uptick in STEM-based hiring that happened in 2016 came about because of foreign-born STEM-educated candidates. While STEM-based hiring is on the upswing, demand for technology skills continues to far outstrip supply. Today, public and private sector hiring organizations are competing with contracting firms, staff augmentation firms, and offshore companies for a limited number of STEM specialists. To rectify that imbalance, hiring organizations are partnering with high schools and universities to foster interest in and pursuit of STEM-based careers for US students.To learn more about how organizations in the midst of digital reinvention utilize workforce partners to build out their staffs, download our white paper, "An Introduction to Digital Adaptation.”

Amazon in “Your Town”: Awesome or Apprehensive?

How Will You Compete for Tech Talent?Most people’s first response to the prospect of Amazon coming to "Your Town" is awesome. Amazon is considering twenty top-tier cities as the site of its HQ2, which will inject 50,000 high paying tech jobs into the local market. The construction of offices, facilities, and infrastructure can be expected to provide more jobs. Finally, the projected growth in support businesses results in, guess what? Yes, even more, jobs. The question for established companies already operating in the community is this: How are you going to recruit new hires and retain tech employees when they're all flocking to Amazon?For employers in all industries, the war for talent, especially technology talent, is difficult – considering as US employment continues to grow with payroll employment up by 261,000 in October alone. According to UPP Technology, the high-tech employment rate in the US is approximately 97%. This information is not new news for most. There's a shortage of high tech talent and has been for some time. The prospect of Amazon showing up in your town seems intuitively attractive. Everyone wants to get behind it – at least publicly. So much so that 238 cities submitted proposals to become the next Amazon HQ2.Now that 20 cities have made Amazon’s short list, fear and trepidation about hiring in a new competitive landscape have begun to set in. Corporate headquarters already located in the 20 cities under consideration are reevaluating their hiring plans, knowing that they will be competing head-to-head with a new corporate citizen with as many as 50,000 six-figure jobs to fill. Employers are asking, “What are the unintended consequences of the inevitable imbalance of that much demand on a local technology labor market?”As Amazon contemplates its potential HQ2 sites, the local availability of talent is a critical factor driving site selection. Amazon may be a pioneering retailer, but it is not alone in this strategy to chase the talent pool. Companies, such as McDonald's, Aetna, GE, and Marriott, are abandoning their suburban offices in favor of millennial-friendly locations in large urban centers as market leaders embrace this relocation trend.Chicago Mayor Rahm Emanuel pointed to technology’s growing influence on nearly every industry as the driving force behind urban offices. Highly sought-after technology-skilled employees often prefer the convenience of a live/work/play environment in or near an urban center to a time-consuming and expensive commute. The appeal of urban offices signals a reversal of company executives’ previous preference for offices located near their homes. Today, the ease of recruiting and retaining technology workers is driving top-level corporate decisions."It used to be the IT division was in a back office somewhere," Emanuel said. "The IT division and software, computer and data mining, et cetera, is now (located) next to the CEO. Otherwise, that company is gone." While Emanuel’s words are strong, we get the point.Long ago, many organizations paused their on-campus recruiting of Computer Science majors in favor of outsourcing their technology work overseas. These companies now realize that re-engaging that corporate recruiting muscle is easier said than done particularly when targeting highly discerning millennials who are as interested in what you stand for as what you pay.The pervasive digital adaptation of business means that not all companies will compete and win in the war for technology talent. Once you add to this uber-competitive race for tech talent the allure of Amazon’s 50,000 positions, then the competitive landscape becomes downright daunting.To increase your company’s chances of prevailing in this complex hiring environment, consider enacting some or all of the following recommendations:Implement effective strategies to reactivate your on-campus recruitment program. Consider bringing recruitment back in-house or taking a more “hands-on” approach rather than delegating this important function to an outside recruiting firm. Closely examine your retention rate. It'll take more than increasing a few salaries and throwing in a ping-pong table to win the talent retention war. Take a long, hard look at what your competitors are doing and consider doing more than matching them step-for-step. Survey your current employees to understand why they stay and interview millennials to understand how they make their employment decisions. Look at the models you can use to manage the risks of an overheating local labor market better. Understand which skills you absolutely, positively, must keep close to the center and which you can distribute. Take a critical look at those remote or dispersed models such as remote onshore development. Can you manage remote software development yourself or do you need an expert partner who might not be in the building but is situated in-country?To learn more on how you can create mitigating strategies for tech talent in a highly competitive market, contact us today.

3 Essential Software Development Skills I Learned on My Own

While an undergraduate computer science degree may be a good starting place for learning how to be a successful developer, it’s the real-life application of these skills that will set you apart from a typical graduate. Although I don’t expect the university setting to be able to teach everything, there are still some areas that I found my education to be lacking. Here are three skills that I consider fundamental to software development that I ended up teaching myself outside of the classroom.DebuggingIf you’ve ever worked with C++, you know that trying to track down a segmentation fault without debugging tools is much like trying to find a needle in a haystack. As an undergraduate, I spent countless hours commenting and uncommenting regions of code and writing variables to the console when simply loading the binary into gdb and entering the correct series of commands would have pointed me to the exact line where my error was. With a little direction, students could save hours of time and learn valuable debugging skills by using modern visual debuggers.TestingNot surprisingly, when students don’t learn how to debug their code they rarely know how to test it. I didn’t start writing out test cases myself until I was a teacher’s assistant in grad school. It was out of necessity rather than convenience; a reliable way to grade homework assignments from students who used the phrases “it works” and “it compiled” interchangeably. If agile patterns like Test Driven Development are to gain a foothold, it is imperative that developers learn testing as a cornerstone of their curriculum.Version ControlTools like Git and Subversion are wonderful for working on teams, but I hadn’t even heard the word “Git” in university until explaining to an instructor how I’d lost a project to a hard drive failure. When I started an internship at RSI, one of my first fumbles was to commit merge conflicts into my mark-up, but thankfully the commit was easily reversed. Considering how I pieced together group projects with copy and paste, I’m disappointed these tools weren’t taught as an alternative.Overall, I’m very happy with the knowledge that I obtained as part of my undergraduate education, but I encourage those in school now to take the opportunity to be open to beyond what they hear in lectures and labs and continue to learn outside the classroom.NEED HELP? LET'S TALK.

A Few of My Favorite Things (As a Systems Developer)

My job as a developer at Rural Sourcing goes beyond code on a computer screen. There are so many exciting and rewarding things about it, like:Developing a solution that stands the test of time makes my job that much more worthwhile. Years back, I developed some reports for a client company, and then I found out they were still using them a few years later! This means the technology matched their business need and the solution was relevant for a decent amount of time.I like helping the business user define requirements and how the solution might be implemented. A lot of times, I’m able to help users think of specific details, related situations, and/or other requirements that might have been left out. Depending on the requirements, different technical designs will be used. If all of the requirements aren’t known and all the “what-ifs” not accounted for, the wrong technical design might be selected. If that happens, there could be two results. Either the solution won’t match what the customer really needs or the project will have to be reorganized during development and probably end up costing a lot more. So, it’s best to form a partnership up-front while requirements are defined and the solution is designed.I like creating prototypes for our clients. A prototype could be as simple as a PowerPoint presentation that shows how a screen might look. It could be a diagram that shows relationships between different screens. A more advanced prototype could use the technology that will be used to implement the solution to show the basic solution including screen layout and navigation. Sometimes a prototype will demonstrate that the technology works for the business need. Sometimes, it will show technical challenges where “work-arounds” are needed. It could even show that the technology originally selected is not the best one to work with! That’s not necessarily bad news… It’s best to know that all kind of stuff up-front as much as possible.Many times, upon seeing a prototype, users will come up with more ideas for their application. It’s good to get those ideas up-front also.When I participate in helping to define the requirements as part of designing the solution, then I learn more about the users’ real needs. It gives me more depth that I can draw upon when making those countless small technical decisions that need to be made when doing actual development. Sometimes I get to work with more people; in that case it helps me know who to ask when questions come up in the future.I also like to automate routine tasks. I like to provide the user with immediate access to more combinations of information. Providing computer software to do this helps people and it helps the business.Good software frees up users to exercise their brain power in creative ways. It helps them use time more effectively. It empowers users to respond to the needs of internal and external customers better.NEED HELP? LET'S TALK

4 Things Developers Should Consider Before Accepting Their First Job

The first “real” job that a developer accepts will become the foundation upon which their whole career will be built. Imagine this: After sending out her resume, Jill lands her first job at an in-house Java shop. The company gives her the tech stack she’ll be using: Java EE, Hibernate, and MySQL and with that, it’s time to get to work supporting their application. Fast forward. Three years have gone by and Jill is still supporting the same application with the same tech stack. The work is getting monotonous. But where can she go from here? Jill has only worked on a single project with a few technologies. Do you see her problem? Jill can look for a new job at a higher position based on the skills she has acquired, but where’s the challenge? Where’s the growth? If she wants to work with a different tech stack, she’ll likely have to search for another entry-level position to continue to build her skill set. But, what if that company who hired her had encouraged continuous learning? What if she had gotten to work with several different tech stacks over those same three years? Jill would have built a more solid and extensive foundation to her career. One way to obtain diverse experience is to join an organization similar to a professional services company, and not necessarily the consulting kind. According to MindTools, a professional services company is “any organization or profession that offers customized, knowledge-based services to clients.” In the technology field specifically, a simple definition could break down to “a company that hires developers to do contract work for various clients.” At a professional services company, continuous learning is highly encouraged. Developers with 20+ years of experience are willing to teach, and you’ll most likely be able to work with multiple clients which means learning both the programming languages and the business tools to support development. So why is this so important, especially as a first job? There are several reasons. 1. It can offer twice the experience in half the time. Think back to that earlier example. Three years spent learning the ins and outs of one company using specific technologies. Imagine if Jill had instead been hired by a professional services company. Her first year she would potentially be on a client project that uses those same technologies (Java EE, Hibernate, and MySQL), but that client contract only lasted for a year. Then what? She is then assigned to a different client that needs a REST-ful web service using the Spring framework. What just happened? Jill was given the opportunity to learn twice the amount of skills in less time than our previous example. 2. Employees are constantly encouraged to learn These types of companies are constantly encouraging their employees to learn and grow and keep up with new technologies. It makes sense if you think about it. Professional service companies are only selling one thing: services. The more extensive knowledge that their employees have, the easier it is to sell their services. 3. Expert resources are only a desk away. Developers who have been in the field for 20+ years are usually sitting nearby. Got a question about .Net? That developer two feet away, is an expert. Need some SQL help? That guy across the hall worked his last job as a DBA. And the best thing about it? Most experienced developers want to share their knowledge. At a professional services company, there needs to be a wide range of knowledge so there can be a wide range of clients. These companies thrive when their developers are highly trained on a variety of technologies. 4. Communication skills will expand. It’s easy to see the benefit of working with different clients to learn new technologies, but what about the benefit of working with different clients to learn about different clients? Because many developers move from project to project, they have the opportunity to learn the business tools of a variety of clients. Maybe one client uses Slack to communicate and JIRA for task management and the next prefers Skype and Asana. Being a developer is two sided. Knowing how to program is just one part. Knowing how to communicate and how to work well with a team are equally if not more important than just being able to write code. Starting your career at a company that encourages learning and the exploration into different technologies will put you on the fast track to success. For developers specifically, working at a professional services company is one of the next best steps to take.INTERESTED IN JOINING RURAL SOURCING?

Three Ways to Overhaul the H-1B Visa Program

The Trump administration’s focus on immigration has brought the H-1B visa program to the forefront of the news. This visa program was originally intended to import talent to meet the void between the growing demand for high tech skills and the lack of available U.S.-based talent. Unfortunately, over the years, the program has been abused to the point that some American workers have been forced to train their replacements who lacked the skills and experience to take over their jobs. It goes without saying that this program needs a complete overhaul and a redirection of its intended purpose. Following are three ideas that could help the U.S. build a sustainable workforce strategy. First and foremost, the Trump administration should create an import tariff similar to the proposed 2008 legislation on oil companies that would’ve encouraged development of alternative energy sources. Levying a tax on H-1Bs of $10,000 per approved application would generate $650,000,000 in funds that could be used to train individuals with base-level competencies for a career in technology. Putting a program such as this in place would enable displaced workers from, for example, the coal industry to reskill themselves; it would enable military veterans to gain valuable training to jumpstart their tech careers; and it would enable the underemployed to increase their earnings potential. This workforce enablement strategy could produce enough U.S.-based talent to cut in half what Code.org said will be a 1,000,000 shortfall of tech talent by 2020. Second, Trump’s senior policy adviser, Stephen Miller, proposes that we should scrap the H-1B lottery system that is inundated with applications from large outsourcing firms. I couldn't agree more. Would Nick Saban (University of Alabama’s highly successful college football coach) recruit the best football players in the country by picking their name out of a hat? No way. I believe we should import truly talented individuals to the U.S. as needed to fill the shortfall in our workforce and to put the very best team possible on the field. In order to do this, we need to validate that the individuals granted H-1B work visas possess the skills needed and are qualified for the job. Third, Congress should incorporate the portion of the “Protect and Grow American Jobs Act” which raises the minimum salary of the H-1B worker from $60,000 - $100,000 into a broader, long term solution. This salary raise (which hasn’t changed since 1998) would help ease some of the abuses of the H-1B program by reducing the economic incentive of companies to replace U.S. workers with cheaper foreign labor. While this simple act addresses the “Protect” portion of its title, it does not address the “Grow” portion. In order to do this, Congress should incorporate the tariff mentioned in point one to fully address the intended desire to make the U.S. more reliant on our own willing and able workforce. By implementing these points, the Trump Administration would effectively enable U.S. workers to gain the skills needed to launch a career in the tech industry. It would also identify the best talent to enter the U.S. while eliminating the abuse of the H-1B program that undercuts U.S. talent and leads to offshoring the work.

My Internship at Rural Sourcing

2016 High School STEM Intern My high school offers a unique opportunity to graduating seniors like me: instead of taking classes for the last four weeks of school, we are able to participate in a month-long “senior project” to learn more about an industry in which we might be interested in working. Some of my fellow classmates are using this time to record studio albums, learn about financial investing, and work at bakeries. I chose to gain experience in IT and spent a month interning at RSI in Albuquerque. I had been interested in software development for a little more than a year before I started my internship. I remember the excitement of using Python to get the phrase “Hello, World!” to appear on my screen, and the satisfaction of creating multi-class inheritance hierarchies in Java. I knew that I’d just scratched the surface; there was so much more to be learned. My goal was to pick up enough programming knowledge to create something useful to others, so when my Java teacher shared an email with me about interning at RSI’s Albuquerque Development Center Director, I jumped at the chance. Below are a highlights from my time at Rural Sourcing. Week 1: The first time I walk into RSI, so many things are new to me: the dual-monitor computers, the rows and rows of desks, the professional environment. I spent this week meeting new people and getting my feet wet. I received an overview of the company and an introduction to the fundamentals of Agile and Scrum. I also started taking HTML and JavaScript classes on codeschool.com in preparation for my long-term project: to create a website based on framework that the team had already developed. Week 2: Week two was quiet, but very productive. I continued the Code School classes, moving from HTML to CSS and from JavaScript to Angular, and got started on web design and GitHub courses. I was showed the framework on which I was to build my website. I started brainstorming different ways I could change the site to make it my own. The original site was created with the intention of showing popular tourist attractions and restaurants in Albuquerque. I liked the idea, since at times the city can get very boring, but I wanted to change the focus and create something different and more useful. I eventually opted for a site titled “Ethnic in Albuquerque,” which would allow users to search for ethnic restaurants and shops. In addition to creating the web site, I shadowed team meetings and was able to see how Scrum was used in a real-world setting, as well as how a project manager of the team, interacted with his coworkers and clients. Week 3: I started making adjustments to my website. At first, my progress was slow. The code seemed overwhelmingly large, and I felt like I didn’t understand the majority of it. Combining trial and error, experimentation, and help from the RSI team, I started to understand the code, piece by piece. Two things about the framework surprised me. Although some of the properties had long, confusing names, the roles they played in the website were fairly simple to understand; second, everything was interconnected. All of the program’s files interacted with each other to form a living, breathing network, whether they contained HTML, CSS, JS, Bootstrap, or database entries. By the end of the week, I felt very familiar with each piece of code and my head was spinning with all of the possibilities for the website that were literally at my fingertips. I was also able to meet with members from the QA team this week. I hadn’t really considered that aspect of software development, so it was interesting for me to see just how important QA is for a client-based company like RSI. Week 4: In my final week, I added the finishing touches to my website, prepared a presentation of my work for the Albuquerque team and updated my resume. Overall, I’m very proud of the amount of information that I learned in these few short weeks, and I feel indebted to everyone at RSI who’s helped me get to the end of my internship. I’m glad that I chose this internship as my senior project. Although I’m still not sure what I see myself doing after college, working at RSI has helped me to realize what I enjoy doing most and how I can use this to shape my future.LEARN MORE ABOUT CAREERS AT RURAL SOURCING

Why Throwing More Bodies at Your Web Application Development Project is Not the Answer

A lot of companies find that competitive advantage comes with cutting costs and increasing speed to market. And that often works except if they’re launching a new web application development project. This brings a new set of challenges, especially since the first reaction is to see who’s on staff who could do it. Throwing additional internal resources toward an IT project might not give you the competitive advantage you’re looking for. In fact, it could very well slow you down. The first potential impact is overextending staff by pulling them onto yet another project and moving their focus away from important, business critical tasks they were hired to do in the first place. Next, lack of expertise can become a roadblock. This can be costly when a project slows down due to errors or delays needed by staff to ramp up and learn something new. Another solution to consider is outsourcing because it can provide the flexibility and scalability that you need to innovate and get to market faster. Companies such as Basecamp, Squawker and Github, were created with outsourced development. Why? It’s smarter. The benefits of outsourcing are numerous. Let’s take application development as an example: 1. Experience – you’ll get the expertise you need, when you need it. Outsourcing means your development will be done by professionals who live and breathe development and are constantly learning and applying the latest IT trends to projects 2. Scalability – outsourcing allows you to rapidly scale up or down your development needs without the expense and long-term commitment of hiring additional full-time staff or overextending existing IT staff. 3. Efficiency – a team that is 100% focused on your IT project will increase your speed to market, getting the job done without spending unnecessary time and money on the development phase. 4. Reduced costs – increased efficiencies alone will reduce development costs but you’ll also reduce overhead costs and pay for the services you use, allowing you to save money during periods of low activity. The next time you’re faced with a new IT project with limited resources, you could save time and money by rethinking the reaction to simply throw more bodies at it and consider outsourcing instead.LEARN MORE ABOUT OUR APPROACH