public
Getting the Most from Outsourcing [magazine] How to choose the right provider and evaluate their work By Eric Patel - June 26, 2002 Volume-Issue: 2001-06 Share URL Bookmark Summary: Outsourcing can be a great way to augment your software efforts. Here are guidelines to help you choose the right provider and ensure that you get what you paid for.
Can you really have it all? An in-house dream team that can flexibly and seamlessly reshape itself to meet any change in your software landscape, rising to any development, testing, or problem-solving challenge-while maintaining all your current projects, timelines, and clients? Well, sure you can...sometimes. But realistically there will be times in your career when you may need to look outside your organization for help with some (or all) of your work.
How do you go about making informed decisions to ensure success with outsourcing? How do you choose the right provider, and then maximize their effectiveness? And as the project progresses, how do you demonstrate that you've gotten what you've paid for-that the provider is delivering what you said you needed? During my experiences with outsourcing, I've learned some important lessons:
Do your homework Know what you're getting into Minimize delays Constantly involve the outsourcing company Analyze the results With an understanding of these five guidelines, you can avoid several of the pitfalls commonly encountered when outsourcing pieces of your software effort. The more care you give to analyzing your needs and understanding the ability of the outsourcing company to meet them, the more satisfaction you can generate for your company and your customers.
Do Your Homework Those of us who work in a hectic and often chaotic software environment typically do not have enough time to make informed decisions about day-to-day activities-let alone involved projects like outsourcing. Doing careful analysis up front will minimize headaches down the road.
Before you even start looking for outsourcing companies, it's important to look at your own company. Are your company's goals and objectives clearly defined? For example, if you're planning to outsource your testing effort, what is the quality standard of the software to be shipped? What are the release criteria? Does a written, signed-off test plan exist? A member of your test team can help you define these targets for your company and its customers. And the importance of documentation cannot be overstated. By ensuring that your company has fulfilled its obligations, you won't be overly dependent on the outsourcing company for guidance and direction.
Once you've addressed these questions in house, you can start looking for an outsourcing company. View this as you would the process of interviewing a candidate for a position with your company: pre-screening, interviewing, and checking references. Knowing what your needs are, what job you need them to do, and whether they have the capability to do that job are equally important. Performing due diligence and following a process help to form a lasting working relationship between the two parties that will pay off in the long run.
Your requirements are going to guide your evaluation criteria in the pre-screening phase. Some important factors to assess include:
geographic location and proximity cost company background and reputation capabilities, strengths, and weaknesses knowledge and skills of their staff (These factors will come into play in more depth during your interviewing stage, but thinking about them now in your pre-screening phase may help you weed out some of your weaker candidates.)
Once you've identified your top few contenders, it's time to contact them and start preliminary dialogues about your needs and their capabilities. Don't shortchange the amount of time you budget for this evaluation phase. The time you invest with the vendors in these early stages-starting the planning process-will mean that neither party will be caught off-guard or blindsided by future demands.
As you evaluate candidates, seeing is believing. If possible, plan on visiting their company, meeting some people, and touring their facilities. How quickly can they mobilize to start on your project? How much lead time do they require? Don't rush your way through that onsite visit, and don't leave until all of your questions are answered, and you have a strong sense of who they are and what they can do for you. Don't be shy; you're performing an assessment of their capabilities-just as you would in a job interview-so you'll have sufficient data to compare them to other competitors. Try to review the job descriptions and résumés of key workers to get a sense of their backgrounds and strengths. Ask to see samples of their work products and status reports. (With test projects, for example, be sure to look at their test lab, test plans, and test scripts/cases.)
After you've identified your requirements, interviewed the candidates, and had all your questions answered, it's time to make a decision.
One useful tool for choosing the right provider is a Kepner-Tregoe Matrix (see Figure 1) that lists your outsourcing requirements/criteria down the left column and each vendor that you're evaluating across the top row. Before you start comparing vendors, decide on the importance of each of the criteria, listing those values in each Importance column. Then, for each vendor, rate the extent that they meet your criteria-inserting those scores in the Rating column. Finally, take the product of each Importance and Rating and list the results in the Total column. Adding your totals will give you a Grand Total for each vendor-with the highest score pointing to your best choice. By keeping the criteria limited and focused to your "must-haves" you'll avoid any overcompensation with the "like-to-have" and "nice-to-have" criterion.
As part of this process, be sure to ask for references and talk to a few of their past and current customers. There's nothing like a little reputation research with their customers to obtain a final decision-making point.
During the decision-making process, you may conclude that outsourcing is not an option for you at this time. Maybe this level of expense is beyond your budget, or the costs outweigh the benefits. Presenting outsourcing as a business case will at least demonstrate to Upper Management that you've done your homework.
This may all sound like a lot of work, but I have experienced firsthand that skipping the up-front analysis doesn't save time. On one outsource testing project, time-to-market pressures cut down on the number of vendors we felt we could spend time with or evaluate. (It's always good to compare alternatives, and reducing our options put us in a sort of blind spot.) To make things worse, we didn't view their facilities prior to signing the agreement because neither we nor they knew which of their testing locations was going to be used for our work.
Other than making a couple of reference calls, we really hadn't done our homework. While the outsourcing effort was satisfactory, it certainly could have been better. Had we assessed other vendors and dug a little deeper we would have had greater success on the project-and with fewer workarounds.
Know What You're Getting Into If you did a good job with your homework, this part will be much easier. Here is when you need to hash out all of the outsourcing details and make sure that all the bases are covered. Once you've selected your preferred vendor, you will need to sign some documents with them, such as a Confidentiality/Nondisclosure Agreement (NDA) and a Statement of Work. Read through these documents carefully, making sure you understand the terms.
Keep in mind that everything is negotiable prior to both parties signing any document, so now is the time to obtain clarification, make agreed-to changes, and ensure that you're getting what you asked for. Once the ink has dried, it's a done deal. While you can always add additional outsourcing scope later (via an Engineering Change Order, for example), wouldn't it be better to get it right the first time? In particular, pay attention to the following items:
assumptions and dependencies cost of equipment rental (if any) hourly rate(s) limit of liability dispute resolution intellectual property schedule deliverables how success will be measured Also consider the following: How busy is the outsourcing company? How much attention and priority will they be giving your project-and your team? Depending on whom you choose-and when-the quality of the outsourced effort may vary from vendor to vendor. The quality of your outsourcing effort may be affected if they are understaffed and/or overbooked. Can they devote what's required to ensure that your outsourcing effort is a success?
Another point to keep in mind is that while you might be looking to the vendor for expert advice, there are limits to their knowledge and experience. You, as the customer, should know what you want and remain in the driver's seat. The vendor is just there to help you along your way. Avoid excessive obedience to or dependence on the outsourcing company.
In addition, see if you can specify the exact site where your work will be performed, especially if you can choose a location that is close to your company. The default decision is that the vendor will load balance your outsourcing effort to whoever is available based on their current workload (not necessarily their geographical proximity to you). If you're able to select a vendor whose location is within driving distance from your company, you'll be able to periodically visit them to monitor their progress. Make sure that they're receptive to this idea (in the contract) so that you can visit them at any time for any reason. You are the customer, remember?
A project or team lead who's responsible for managing the outsourced staff is a good idea. You want to have at least one ma
What Does It Mean to Have an Agile Mindset? [article] By Leanne Howard - April 1, 2015 Share URL Bookmark Summary: There has been lots of talk about the agile mindset, but what does that mean? It does not merely encompass the skills that make a successful agile team member, but also what drives a person to want to be part of an agile team. It should include the quest to learn—even when you fail—and leveraging what you learn to continuously improve on what you do.
A mindset is a set of assumptions, methods, or notations held by groups of people that is so established that it creates a powerful incentive within these people to continue to adopt or accept prior behaviors, choices, or tools. Simply put, it is a way of thinking about things that those in a group share or have in common to the point that it becomes a way of life.
There are several characteristics I believe make up the agile mindset:
Positive attitude Thirst for knowledge Goal of team success Pragmatism Willingness to fail To me, an agile mindset is "There is no failure, only feedback." It's about taking everything as lessons, adjusting actions according to the feedback, and proceeding toward desired outcomes, resulting in continuous improvement.
The ideal is for everyone to have what the team decides is its collective agile mindset, but that all starts with the individual. I have worked with some great people who I think embody this mindset. They attack their work with a positive attitude, providing suggestions to overcome obstacles. They ask questions to understand what is in the best interests of the business, often coming up with innovative solutions as they experiment. They have realistic and practical attitudes focused on helping the team succeed.
When looking for people to be part of my agile teams, these are the mindsets I look for. It is difficult to change people’s intrinsic personalities and ways of thinking, so it is important to get the right selection of people for your team.
Positive Attitude
There are always challenges on projects; people are human and make mistakes, and everything is not always going to go well. What is most important is how the team members deal with these situations.
As issues are identified, they need to be dealt with in a timely manner with a positive attitude. In most cases something that may look negative can be turned into an opportunity for improvement. I expect my team to recognize problems—or, even better, potential risks—quantify them, and come up with suggestions for solutions.
For people new to agile, self-management is often difficult. This is where keeping a positive attitude is so important. Some of the things they try may not always work, but they should not give up. It is easy to become downhearted, but instead, team members should keep in mind that they have learned something.
Thirst for Knowledge
Agile is about learning and adapting. Your goal should be to gain as much information possible in order to deliver a quality product—you should not make assumptions that what you are doing is best for the client. With the fast pace of business requirements and new technologies seemingly appearing every day, industry professionals need to keep abreast of changes.
This is particularly true for agilists, who often are challenged to think outside the box to get tasks done within the tight timeframes of an iteration. Participation in meet-up groups and reading technical articles are good sources of new ideas.
A person with an inquisitive mind asks questions to help the team gain a common understanding of user stories. They are the people who adapt best to the use of experience-based techniques such as exploratory testing, where you start with a simple plan, execute tests, learn about the product, and then make informed decisions about what to explore next. They do not rely on lots of documents; if they do not understand something, they find the right person to give them the answer.
A good technique for gaining knowledge is the “five Ws”: asking who, what, when, where, and why. When you ask a question people may not give the real answer at first—they will give you the symptoms of the problem, and it can take a number of probing questions to understand the underlying issue.
Testing is now the responsibility of the whole agile team, so everyone needs to be eager to gain knowledge about the product in order to improve quality.
Goal of Team Success
Agile is about the success of the team, not individual success or heroic behavior. It is more important for the team to succeed than for the individual to have completed her tasks.
A good example of this is when team members are working on user stories of varying priorities and realize that they are not going to be able to complete a higher value story by the end of the iteration. Those who were working on lower value stories will swarm together and offer to help to complete the higher value story, even if they do not have the exact skills to complete the tasks left.
Being prepared to move outside of your comfort zone in order to help on a particular project for the overall good of the team is a valuable trait. Likewise, it it important for team members to be willing to train others in areas where they may not be confident. If there is a culture of finger-pointing, people are less likely to volunteer to work on an important task if they are not an expert in that area.
Taking the time to coach others or walk through the user story design with those who are less familiar with the coding in that function is a sign of a good team member. This shares knowledge and lessens key person dependencies, plus the whole team having a common understanding of what the story involves leads to more accurate estimates and planning for sustainable commitment.
Pragmatism
Quality is an important facet of agile. However, everyone may have a different view of what “quality” means. It is critical that the team understands what is important to the business and then deals with things sensibly and realistically in a way based on practical rather than theoretical considerations.
Instead of making excuses, team members need to provide options. Don’t say it can’t be done; explain what can be done.
You can’t force change on people. Instead, show them how the future might be and help them participate in creating it. The team needs to be willing to help each other to succeed on the higher priority items, even if it means you will not complete your individual task. Often, if team members see someone “walking the walk,” they understand that it would be beneficial for them to do the same.
When faced with an impossible problem, identify the real constraints. Ask yourself: Does it have to be done this way? Does it have to be done at all? Once you start breaking a problem down, it can seem easier to resolve.
If there is a defect, it doesn’t really matter whether it was your fault or someone else’s—it is still your problem, and it still needs to be fixed. While you are in that piece of the code it is often quicker to just fix it rather than document or discuss it. Be pragmatic about the greater good of the team and the product.
This is often where I think common sense comes into play (although it seems to not be that common). For example, do not spend hours compiling a status report when what your customer simply wants to know is whether the project is on track and a simple explanation if it isn’t. Find out what your customers really want instead of assuming and potentially wasting time, even if it has always been done that way in the past.
Willingness to Fail
Some people say that the best way to learn is to fail at something. I am not sure I agree with this totally. I want people in my team to have done as much research or questioning as possible beforehand and to ask for help from someone with more knowledge in that area to guide them so that they fail less.
Having said that, not everything is going to work well all the time. If it is a choice between having a go with the possibility of failure and not having a go at all, then I want them to feel comfortable to try. While I want my teams to challenge themselves without the fear of reprisal if they fail, there are some important lessons:
Learn from this experience and, given a similar situation, do not make the same choice leading to failure Understand that it did not work in this situation but it may in others, so you have a new technique to add to your toolkit Feel empowered to talk about this failure so that others may learn from it Do not hide the failure; be open with your team Innovation often comes from trying things that you may not have thought of carrying out during your normal tasks. For example, my team was using a mandated configuration for a tool that was just not working for them. They decided to change some of the workflow, trying different configurations, which eventually saved them considerable time entering data in a more logical flow. Don’t be afraid to question the norm if something is not working as well as it could.
Continuous Improvement
My take on the agile mindset is that it should include the quest to learn (even when you fail) and leveraging what you learn to continuously improve on what you do.
The agile mindset is an attitude that equates failure and problems with opportunities for learning and invaluable feedback. In other words, it’s a belief that we can all grow stronger over time if you put in effort to increase your knowledge and support the team, and the organizational culture gives you the space to do it. Though there are undoubtedly many definitions of an agile mindset, these are all characteristics that would be good for any agile team member to have.
Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.
Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this.
But, in a larger sense, we can not dedicate -- we can not consecrate -- we can not hallow -- this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us -- that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion -- that we here highly resolve that these dead shall not have died in vain -- that this nation, under God, shall have a new birth of freedom -- and that government of the people, by the people, for the people, shall not perish from the earth.
Abraham Lincoln November 19, 1863
FORGOTTENBUFFALO@AOL.COM
WITH TOUR DATE AND NUMBER OF PEOPLE IN YOUR PARTY.
WE WILL SEND YOU BACK A RESERVATION CONFIRMATION.
OR CALL 716-833-5211
Tour price includes bus transport, dinner, docent
Monday - Fri:day: 10am - 6pm Saturday: 10am - 4pm Sunday: Noon - 4pm