There are no lemon laws for bad software, but that doesn’t mean bad software doesn't matter. The QA role is one of the last chances to stop from shipping bad software. Contrary to what many think, the fact that it comes near the end of the development process doesn't mean it has little importance; it makes it crucial to producing quality products that boost a company's reputation, as well as its sales.
QA analysts develop test plans, execute tests, and evaluate a product's readiness to ship – but they can do so much more. QA can take on role that goes beyond verifying code quality to perform functions that ensure the product addresses the underlying user needs.
Involve the QA Team During Requirements
This means involving QA during the requirements phase, not waiting to bring them in until coding is complete. Like business analysts, QA staff understand both technology and business needs. They can help address developers' questions when the business isn't available. They also have a comprehensive view of what the application needs to do, keeping in mind some of the less common scenarios business users tend to omit. By reviewing the requirements early in the development process, QA can help ensure that important scenarios are identified prior to testing.
Involve the QA Team to Extend the Testing Process
Although test-driven development relies on developers to keep testing as each piece of functionality is created, QA can build an environment that reduces the likelihood of defects slipping through. Automating the test process and maintaining a library of regression test cases are critical to ensuring that comprehensive testing is performed. QA also brings focus to testing issues that can't be effectively tested without viewing the application as a whole, such as performance and security.
Involve the QA Team to Shape Future Development
QA should also remain involved after testing is complete. The output from the QA testing process shouldn't simply be a signoff that the application is ready to ship. QA should provide feedback to the application owner to help identify issues that extend beyond problems in a single test case. Because they look at the entire application and the business process, QA can identify failings in the development process that are resulting in defects.
Every succeeding generation is more tech savvy than the previous one. The PC hadn't even been invented when baby boomers started working; early boomers had to adapt to PCs with on-the-job training, and even late boomers only encountered them in college.
The latest generation, the millennials, is far more comfortable with technology than its parents and grandparents. Companies that want to attract them, whether as customers or employees, need to use technology in ways that appeal to them.
Companies Need Social Media Savvy
Surveys show that lack of awareness of the business's brand is a major hindrance to recruiting. But companies' talent-branding techniques focus on traditional media. Few of them effectively use the digital media and social media technology that communicates to millennials in other aspects of their lives.
Millennials document their lives on social media, and they expect social media to document a company's life, too. That means the corporate job site needs to be more than just a listing of jobs. It needs to introduce the company culture, through photos and videos of real employees talking about life on the job.
Use every social media channel out there—LinkedIn, Twitter, Facebook, Instagram, Pinterest, and whatever new trending site comes along—to post images that convey the experience of working for you. Normal, everyday activities like team meetings and lunch in the cafeteria should be displayed as well as official corporate special events.
Mobile Tech is Mandatory
Besides using multiple social media channels, companies need to make sure their digital information works well on multiple platforms. Millennials have given up landlines for mobile phones, and most rely on mobile tech for accessing online data. A website that doesn't work well on phones and tablets isn't just ineffective for company recruiting; it's likely to push away candidates you want to attract.
Millennials aren't threatened by technology; they see it as a tool that supports innovation. Companies that use cutting-edge technology and emphasize this to their potential hires will have an advantage in recruiting the best talent of the newly dominant generation.
For most companies, technology isn't a core part of their services. Even for companies that create tech products, running a data center and supporting general-purpose business applications isn't a core competency. Now that cloud computing has made the idea of running business applications off-site acceptable, more businesses are turning to managed service providers (MSPs) to provide basic services like email, backups, and monitoring.
The benefits of using MSPs are several:
• Staff is freed up for more important functions.
Most businesses would prefer IT staff to work on strategic projects rather than housekeeping functions. Offloading that work to an MSP lets internal resources be allocated more efficiently.
• There are cost savings.
Running a data center is expensive. Even just the energy costs for email servers are significant. Using an MSP reduces or eliminates many of these costs. Monthly charges are fixed and not subject to fluctuation that impacts cashflows.
• Information security is enhanced.
MSPs often have more expertise in data security than the company that originates the data. Because they handle these services for numerous customers, they have access to skills and knowledge other companies lack. Because many threats to data security come from internal users, having the physical servers and storage devices off-site and managed by non-employees surprisingly increases physical security.
• Adhering to compliance standards is easier.
Firms have to meet many standards regarding handling sensitive information, especially in financial and health-related businesses. Many MSPs specialize in these areas and have appropriate certifications and processes in place. It's easier for businesses to leverage the MSP’s certified data center than to build their own.
• Super support.
MSPs provide support around the clock. Their staff will be ready to recover systems as soon as an incident is noted. MSPs have advanced monitoring tools in place to detect and alert on any infrastructure problems. Solid backup practices ensure that data can be recovered and business continuity guaranteed even after a systems failure.
• They're ready for the future.
MSPs keep systems up to date with all mandatory patches. They're also aware of upcoming upgrades and technical changes, and can work with a business as a partner to develop a technology strategy. Leveraging expert knowledge may be the best reason companies turn to MSPs.
Most IT employees don't handle money or credit card payments, so it may not seem obvious that you should do a background check before hiring them. But money isn't the only thing of value; your IT workers may have access to sensitive data, including customer information and intellectual property. Choosing the wrong employee puts that information and your company's reputation at risk. Background checks can help you evaluate prospective hires on the following criteria:
• Are they honest?
Many people stretch the facts on their resume, and everyone tries to put the best light on their accomplishments. But it's important that the basics are correct – they really did earn the degrees they claim and they worked for the listed previous employers on the listed dates.
• Will your other employees be safe?
It's your responsibility to provide a safe work environment for all your employees. This means you need to know whether a job candidate has a criminal record. Not all inappropriate behavior shows up in criminal records; a history of sexual harassment or drinking on the job are also relevant when making hiring decisions.
• Are they vulnerable to outside pressures?
Most threats to company security come from insiders, not external agents. Candidates who have financial problems may be more likely to be pressured into taking actions that expose company information.
In most cases, you can find the information you need from public records. Some information isn't public, and – depending on the sensitivity of the position – you may want to go beyond public records to have a thorough investigation conducted. Candidates for senior positions should certainly be fully vetted to avoid embarrassment, if nothing else. For most lower-level positions, public records will be adequate.
Be aware that state laws may dictate which records you are allowed to consider, and whether you are required to get the candidate's permission to conduct the background check. The purpose of a background check is to protect the company; be sure it's conducted properly to avoid endangering the company instead.
You always want new employees to be able to get down to work quickly, especially if they are a temporary worker. If temps aren't able to start contributing the day they show up, their contract may be up before you're able to get value from their presence. Have a plan to onboard them and get them started as soon as possible. Keep these three things in mind when you welcome a temp to your team:
1. Show them around.
Be sure to give your temps a tour of the work environment, both virtual and physical. They need to know where the coffee machines and copy machines are; they also need to know where the source code is. They will probably need to remotely log in to multiple machines, so be prepared with an overview of your hardware configuration and your different environments (development, QA, production). They'll likely need to get an overview of your business domain and the current applications your team is developing or supporting.
2. Give them access.
Knowing where source code and machines are isn't any good if the temp can't access them. There's often bureaucratic overhead to getting access permissions granted, even for something as basic as a company email address, so start the process early. IT workers usually need access to many applications, so it's helpful to do a review and identify a list of everything they'll need to login to: machines, email, databases, shared development environments, bug tracking tools, development and test versions of deployed applications, and anything else you can think of. Get as many of these set up in advance to avoid roadblocks when they're trying to get work done.
3. Know what you want them to do.
Have a plan for what the temp needs to deliver during their stay at your company. While priorities may change and you'll want to remain flexible, there's a cost every time someone shifts focus from one work area to another. With permanent employees, that cost may be outweighed by the knowledge and the experience gained. With temporary employees, the time lost is most likely permanently lost. Be prepared with all the information the temp will need to complete their assigned tasks. As with any new employee, they're likely to have lots of questions, so make sure they know whom to turn to for help.
Even though temporary employees don't stick around long, they can make a big contribution to your project's success – as long as you give them tools, support, and create an environment where they can succeed.
Companies may fantasize about employees who devote their lives to the business, but the reality is that every worker has a life outside of the office. Creating a flexible workplace that balances the needs of the business with the needs of employees can be challenging. Here are five tips to help make it work.
1. Define the boundaries of the flexible work policy.
Flexible work can cover a range of alternatives. Are you permitting telecommuting, flexible hours, or both? If you permit flexible hours, are you allowing the flexibility to work four 10-hour days, or just shifting start and end times five days per week?
2. Define how communication and collaboration will be managed.
Because workers are no longer all working the same hours from the same location, coordinating work activity becomes more challenging. Managers need to make clear how work issues will be raised and resolved when face-to-face meetings can't be called at a moment's notice. Consider using video conferences and other technology to get non-verbal feedback not expressed in email and phone calls.
3. Define how performance will be measured.
When employees aren't on site, managers may have a tougher time assessing performance. Before agreeing to any flexible work arrangement, both the manager and the employee should understand the metrics that will be used to judge performance.
4. Provide the technology needed to work at home.
While most employees probably have adequate Internet and phone service at home, companies should confirm all necessary resources are available. When necessary, companies should consider providing additional hardware and paying for higher network speeds to support at-home productivity. Companies should also make sure at-home computing is conducted securely and protects company resources through the use of VPN and other security tools.
5. Measure the effectiveness of your policy.
As the workforce in general changes, and as your employees change, your flexible work policy may need to change as well. New parents and soon-to-retire individuals may appreciate flexibility but have different needs. Periodically survey your employees to find out what kind of work flexibility, they want. Make sure your flexible work policy is itself flexible, and change it when needed to make sure it provides the flexibility your employees need.
There are many business applications still running on Cobol, but new developers would never base their career solely around learning Cobol. Even for developers who are working with more modern languages and methodologies, specializing in a single technology isn't the best basis for a career.
Besides the fact that technology changes rapidly (Cobol aside!), developers with a skill set across the technology stack are more valuable to their organization. These developers can step up and pitch in wherever help is needed, and their understanding of the challenges of different technologies provides a foundation for working in architecture, project lead, or managerial roles in addition to a varied programming career.
Software ultimately runs on physical facilities, so understanding the limitations of hardware and networks helps engineers make appropriate design decisions. Projects can either take advantage of, or be limited by, the specific operating system they are running on, so understanding this is key. Network configurations raise performance issues and security concerns, especially with growing use of the cloud. Mobile devices offer unique challenges as well. Applications won't succeed unless developers understand these issues and handle them appropriately.
There are fads and trends in programming, so while knowing a specific language is helpful for a while, having a solid foundation in good software engineering practices is more important. Developers need to fully grasp the concepts of object-oriented design in order to write reusable code that speeds projects. Debugging skills are often overlooked, but crucial. So is the ability to reverse engineer and work with existing code, so developers should practice reading and analyzing code they didn't write.
Ultimately, most applications require manipulating data, so developers should be comfortable with a variety of databases. Developers should be able to write SQL queries and work with stored procedures. Although many data-dependent projects will have DBAs to fine-tune the database, developers should be comfortable with the basics of database design and performance tuning. Because "big data" is increasing in importance, developers should learn how to work with very large datasets.
Understand Front Ends
Applications aren't useful until someone uses them, so developers need to understand what makes an effective front end. A designer may polish the look and feel, but developers should understand what works well on different platforms – thick clients still exist, and web applications and mobile apps present different challenges.
Tech employees enjoy the challenge of new technology, but that isn't enough to make them love their jobs. Managers often think a paycheck and bonus expresses the company's appreciation for employees' work, but that isn't enough, either. At the end of the day, even technical employees spend their day interacting with people, and it takes a personal touch to make them feel valued. Here are seven tips you can put into practice to make your IT team feel valued:
1. Celebrate team successes
When your team succeeds, make sure you take the time to celebrate with them. Because projects can take years to complete, don't wait 'til the end. Acknowledge the successes along the way, like when they hit a milestone.
2. Say “thank you” often
It costs nothing to say "thank you," but this is one of the most basic and most overlooked ways of making people feel valued. Don't just casually throw out a "thanks;" say what specifically you're thanking them for, and what the value of their contribution was.
3. Let people know that others recognize their contributions
Don't claim credit for your team members' ideas. When they have good ideas that you pass along to higher-ups, tell the supervisors where the idea came from, and make sure you let your team know there was a positive reaction.
4. Encourage contributions
Have an open-door policy, and seek out input from employees who may be too shy to initiate conversation. As much as possible, involve team members in project planning and other decisions that affect when and how they do their work. Be sure to act on their input; otherwise, they'll recognize it's a waste of time to make suggestions.
5. Talk to people as individuals
Make sure you talk with everyone, not just team leaders or employees who report directly to you. Not everyone will want to share details of their personal lives, but if you can get to know employees as people, they'll feel less like corporate widgets. Be aware that issues in employees' personal lives can affect their performance at work, and offer appropriate assistance when necessary.
6. Offer challenges
Give your team members challenges and opportunities for new experiences. Help them find mentors who can help them grow. When they've outgrown their current role, help them find a new position within your company that will offer them the growth you no longer can.
7. Be honest
Respect your team enough to tell them the bad news, as well as the good news. While everyone would rather receive compliments, honest, well-intentioned feedback shows you care enough to offer constructive criticism, rather than taking the easy route of ducking a difficult conversation.
Information technology teams are often eager to work with the latest technology, but they aren't always that eager to work with new processes, which are seen as management fads with little benefit to the technical workers. If the team doesn't support the new process, it may fail, reinforcing that opinion. Managers should take steps to get the team to buy into the new process, so they are invested in its success. Here are some steps that will help your team buy into a new process and help it succeed:
Explain the process and stand behind it
When you talk about the new process with your team, your belief in it has to be evident. If you aren't able to convincingly explain what the new process will achieve, the team won't be motivated to make it work. If you can show the team how the new process will benefit them – not just you or the business - that's even better. Even the most dedicated employee has a little bit of "what's in it for me?" inside them.
Don't be a dictator
Even if you're the one mandating the new process, if you take input from the team, they'll feel ownership of the process and want it to succeed. When someone offers a good suggestion, integrate it into the process. Also, realize that developing a good process requires iteration. Be willing to modify the process, once you see how it works in reality.
Don't mandate a new process and then wait for a final report. It may take time to fully roll out the process, and you need to be aware of how the team is responding each step of the way. Have regular feedback meetings, and let the team know that getting feedback is a priority. If you're not hearing any complaints, don't assume everything is going fine. Schedule one-on-one discussions with different team members to get their opinions; you may get feedback they weren't comfortable offering in a public forum.
A team is also more likely to believe in the value of a new process if they hear about benefits from a peer, not just management. If the new process is rolled out over time, rather than implemented across the entire company simultaneously, non-management employees who found the change to be positive can become evangelists for the change. Let them spread the good news to your team and share their excitement. They can get your team excited about the change, too, which goes far beyond simply accepting the change, and is much more likely to make the change succeed.
No matter what type of work you’re interviewing for, there are a key set of traits that would be best suited for the position. As the hiring manager, it’s your job to pinpoint what those traits are and establish an objective way of evaluating the character of each of your candidates. Whether you give them a personality test or ask targeted questions during the course of your interview, you can establish a unique behavioral profile for each interviewee.
The first step is to create your list of ideal behavioral attributes. When making your checklist of ideal character traits, it’s important that you consider these three categories of professional personalities.
Teamwork skills will make it easier for you and your staff to work with the new hire. Candidates who lack many of these skills can be difficult to manage, overbearing, or ineffective as employees. Depending on the type of position, teamwork skills may be less important than their ability to self-direct, for example. Remote workers or those who will be largely isolated during the course of their workday may not need exceptional teamwork skills. Examples of these traits may include:
• Conflict Manager
• Active Listener
No matter what the position entails, many hiring managers will rank work ethic very highly on their list. A good work ethic, however, is often a learned behavior that results from a very particular set of personality traits. Even if you’re interviewing someone with very little experience, if they possess traits that are conducive to hard work, they can develop a very strong work ethic during the course of their employment. A candidate with a good work ethic may have some of these personality traits:
Professionalism is a highly sought-after behavior, particularly since many workplaces are moving away from traditionalism and into a more laid-back environment. This behavior is learned and not inherent, so if you’re hiring a candidate who comes from a more casual background, they may not have the experience to demonstrate the professionalism you’re looking for. However, if they possess the right personality traits, they can often pick up business cues and learn as they go.
Again, this may vary in importance depending on your unique company. These personality traits may often manifest themselves in other ways than traditional professionalism, so they may be valuable in other context as well. A highly professional person will be:
Create Your Checklist
Once you’ve chosen your ideal character traits, rank them on a scale of importance and use this scale to weight the final score of each candidate. Bring your list of traits with you to the interview, and rank each character based on how they stack up against your expectations. This will not only help you get a good picture of their personality, but you will also remain consistent and objective during the course of each interview.