Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Introduction
2. Why do outsourcing?
3. Why Scrum?
b. Scrum vs Scrum-but
a. How to cooperate?
b. Cultural fit
g. Agile, Scrum
6. This is an investment
8. Useful tips
2
1
Introduction
This is a document which fulfils the need for information. It answers the
questions that inseparably go together with modern challenges of running
a business. Modern business more and more often creates a vision and
influences consumers towards following this vision and the product value it
implies. Rather than creating a product alone, it creates a need and value.
Thats why this free e-book is for business owners and managers. For
decision makers, who need tailored software which realises the initial idea
for the application.
As the authors of this publication, we believe in Scrum, we are its everyday
users. If theres a need to get familiar with it, this document provides the
necessary knowledge and practical tips.
The process of making this e-book was based on the knowledge of the
topic itself. After researching the common and available knowledge (some
of which was used here, along with some graphic materials), we decided
on making something of our own authorship.
If the Reader knows Scrum already, we suggest skipping the contents and
heading straight to section 4.
The Authors
3
2
Why do outsourcing?
The other perspective is that over 85% of startups and enterprises have
problems with attracting and retaining tech talents1 . And those are just few
of the problems companies face within the development field. Outsourcing,
a cheaper and more convenient way, solves those problems. Due to this,
process costs of HR, maintaining workplaces and leaves, are irrelevant.
Moreover, software development is complex and outsourcing companies
solely focused on software services are often more effective.
Those are merely statistics. Important, but not essential. What really
matters is how an outsourcing company will fit into the organisation of the
Partner both culture and process wise.
1
Venture Pact
4
Software development outsourcing could be demanding in terms of
research, time, and risk. Thats why its important to choose the right
developer.
But lets come back to what organisation culture is: this is how its done.2
The picture above shows four different organisational cultures.
2
http://bit.ly/1H7r83H
5
choice has no Culture of Collaboration and your idea is to share the
knowledge across in-house and outsource teams, can you make it? If you
work in iterations, does the outsourcing company as well? Communication -
how are you doing it? Through Project Manager, or is the team used to
communicate with everyone by themselves?
The best way of making the software work is to make it correctly, with the
Partner, all the way. This is the way of Agile, the philosophy of success. It
covers the basic principles of everchanging circumstances. Agile
developers believe that changes in technologies, trends, and most
important - needs of users - demand quick reactions. Thats why they
operate on a set of Agile guidelines4 . One of them is Scrum, a framework to
organise and optimise the process of development.
Never
Quote: was so much owed by so many to so few.
Winston Churchill
3
http://bit.ly/1ELHrSX
4
http://bit.ly/17RD3H2
6
3
Why Scrum?
The immanent characteristic of software is that its open to constant
development. Years ago, programmers noticed that traditional methods of
making software were less efficient than expected. Then some of the
developers started to find more effective frameworks to what they did
everyday. Nobody wanted to waste time and money.
ikipedia
By Peter Kemp / Paul Smith (Adapted from Paul Smith's work at W ).
7
A key principle in Scrum is its recognition that customers can change their
minds about what they want and need. This allows to recognise the
requirements late and cleverly respond to emerging business changes
without budget overruns.5
5
http://bit.ly/1GlOq9S
6
http://bit.ly/1vDH6iO
7
http://bit.ly/1aLadtO
8
9. Continuous attention to technical excellence and good design
enhances agility.
9
and the Partner, and makes sure the process supports Transparency,
Inspection, and Adaptation. And there goes the Development Team: in
Scrum its a self-organised team, which delivers a working product every
Sprint. The progress of work of the Development Team is transparent and
visible to all products stakeholders.
Scrum vs Scrum-but
Scrum is easy to learn, but difficult to master. And Scrum is the most
wanted method in the modern software development. These reasons make
some developers unable to deliver Scrum Teams, even if they want to
prove they can. Sometimes the Partner can hear software companies
saying: Yes, we work in Scrum, but we found that only parts work for us.
This might be the first signal that such development company didnt master
Scrum. Scrum-but isnt Scrum and might be dangerous because it puts
Scrum Team off the balance and often results in Development being not
predictable and not accountable at all.
10
How to check if a given developer really mastered Scrum? Ask for a
number of successfully finished projects in Scrum; ask for certificates, ask
for experience with Scrum, check their company blog. Ask them how their
organisation supports their teams and develops them. Ask them if they
have Scrum Coaches.
One of the most powerful questions might be asking them what they think
about Scrum Retrospective and what value it brings to the Partner. If you
dont have the knowledge to verify that by yourself, we strongly encourage
you to use one of the Scrum Experts that can be found here:
https://www.scrum.org/Find-a-Scrum-Expert
11
challenging and therefore so many Software Development projects fail or
face challenges.
Waterfall and Agile, source: The Chaos Manifesto.
http://www.standishgroup.com/
8
We are showing this example, but the outcome of cases above depends on
research methodology and we encourage readers to look into the matter.
12
4
How to choose the right
team?
The chart below shows the correlation among technology, requirements,
andpeople building a software
product. Based on their nature, software
projects are complex, rarely complicated. But if a good team is found,
complex might become complicated, because most of the times
technology is not certain, requirements are not certain, and people are
changing. And a good team means a permanent one. Theyve had the time
to develop communication patterns. They can provide reasonable
increment every single time, in every single Sprint. This can lower the
chaos factor and a complex software project suddenly becomes just
complicated. A great team can build the software from the bottom up9 .
9
http://bit.ly/1EsoWoC
13
Here are some key factors worth considering when looking for the right
Scrum Team:
How responsive is the team and to what level does it welcome the
changes to the vision, direction, and the code itself? Do they treat
email/chat/video communication as a part of the job, or as a
distractor from programming? Do they welcome changes during a
Sprint and if so, would they later blame you for not delivering the
software? Who do they think is able to change requirements
besides Product Owner?
Are the members tight together and have they got cohesive skills,
or are they a bunch of individuals? Do they understand
consequences of the changes in the code provided by themselves
and the team10? How long have they worked with each other? How
many projects have they left behind finished? In Agile,
understanding each other is the key. Can the outsourcing company
tell you whether the team assigned to the project will be a project
team (the one that is built for the project) or a permanent team? If it
is a permanent team, at which stage of teams development is the
particular team now?
10
http://bit.ly/1ajdqk1
14
Stages of a team development, source:
https://programmentor.wordpress.com/tag/team-development/
Price. Lower prices dont mean bad quality, its just the geographic,
cultural, and economic reality. However, unexpectedly good prices
often mean a too-good-to-be-true situation and contract. And as a
result - the lower quality of the product itself.
11
http://bit.ly/1emDuLI
12
http://bit.ly/1MQQaZL
15
5
The art of cooperation
How to cooperate?
When a decision to outsource is made, there is the matter of how to work
with a subcontractor. The goal is to make your project proceed in the right
way. Cooperating with the Partner benefits from understanding and
trusting each other and not hiding problems . Properly built cooperation is
an important factor in achieving dedicated business goals, so its important
to find the right way of cooperation.
Product Owner might be the incarnation of the Partner or may work on the
developers team side. Product Owner is like the Partners eye, ear, and
hand. Thus, the Product Owners principal task is to take care of the
business like it was their own. Thats why this is the first person with whom
the Partner needs to build a relationship wisely.
If it is possible (and it should be), the Partner should meet Product Owner
face to face, it would allow the PO to better represent the Partners point of
view. However, even if for some reason its impossible to meet directly with
the PO, there are many ways/tools of constant communication with the PO
and the entire team.
13
http://bit.ly/1FgxbFh
16
business objectives.
Theres no doubt that well thought software brings
the desirable benefits
. The first step is to find the right way of cooperation.
Cultural fit
We must keep in mind that the team is not a set of robots, but a bunch of
real people. A team is more than the sum of its members. The Partner
should treat the team as confident co-workers . Most of programmers are
very ambitious, and if the Partner gains their reliance, theyll do what they
can best and with high commitment. Cooperation should get smoothly
through every Sprint and finally they should become well-oiled
(moisturised) machinery that works on high speed with high quality. In a
few Sprints they are going to work almost without any needless words. But
most often it takes some time to upgrade on this level of cooperation.
Obviously, its easier to work together if the Partner and the provider are
culturally aligned to each other.
Very often at the early stage a business project doesnt have any specific
requirements. Building software is like a journey to a destination you might
know, but most often you meet unexpected obstacles and barriers, and
sometimes theres a need to change or to choose another target. Business
environment is dynamic, so its worth building a team able to adapt flexibly
to upcoming challenges. Moreover, a committed team is ready to give
advice, not only of technical, but also of business nature.
Flexible project
management is one of the most useful and advantageous attributes of
the Agile approach .
17
To work with the PO and the team is to create the optimal process and
habits of working. The other side is to not be dominated by the process. Of
course, everyone has to respect commonly established rules, but rules are
akingbespoke
to serve the realisation of the Partners goals, not vice versa. M
softwarethatisfoundedonspecificbusinessassumptionsoneneedstostay
. It is
openmindedandawaretoprovideflexibleresponsestoproblemswhichappear
really worth reacting together. In addition, a proper relationship with the
team allows the Partner to spectate the creation of the project at every
stage: nothing is hidden from the Partners eyes. A well synchronised
team becomes acquainted with project and the Partner can rely and
count on them .
So, how to gain trust? Developers should meet with the Partner in person,
visit the company. Shower the Partner with questions about the business
and the project itself. The more questions will be asked, the clearer the
purpose of making the software will become. If the developer doesnt ask,
there might be a reason to be concerned. The next step is the practice of
Scrum - holding daily meetings and talking over Sprints is a must. And
finally, its always best to check the developer under the light of velocity of
story points.
18
Time and Material
This is a body or a team leasing model. Here the Partner pays for the
time of the team dedicated towards meeting the goal.
In this model the Partner can benefit from extensive capacity of engineers
specialised in fields of software development and solution design, web
application design, or user interface design. You only pay for the actual
time of the service provided. Engineers can be either deployed at the
Partners companys location or work for them remotely. This is the most
popular model.
It's very important that in this model the Partner should have knowledge
and experience within the areas of project management, team
management, change management, risk management, test management,
and design & architecture of IT systems.
Agile, Scrum
This is the model in which the Partner pays for a Sprint, with some Sprints
ahead. Thats because the provider cannot guarantee the continuation of
the work on the project by a particular team. Choosing another team and
then making payment for another Sprint requires the new team to make
themselves familiar with the project. The continuation of one teams work
limits the risks.
During the first meeting with the Partners product, vision and high-level
requirements are gathered, based on which the division into system
functionalities (Product Backlog) is taking place. These functionalities are
constantly prioritised by the Partner. Next, there is the planning of a project
schedule (Release Backlog). During every iteration (Sprint), according to
the priorities, functionalities are created and delivered to the Partner.
Theres a need for introducing changes to the project scope during its
development. Partners should be encouraged to cooperate in the Scrum
model, where changes are natural and can be added between Sprints to
Product Backlog.
19
Using the Agile approach is great. Even if the project has some constraints
(fixed time, fixed price, fixed scope), with this approach developers can see
an improvement in quality and productivity.
20
6
This is an investment
Working with a developer in outsourcing environment is demanding, both
sides should invest in the relation; developers Partner should ask if they
are ready for it. The Partner should reserve time for conference calls with
the developer, should prepare him- or herself for talking over the
potentially problematic points (e.g. adding extra functionalities and impact
on future sprints). The Partner isnt just a Client and we dont use the word
in this e-book even once. The Partner is the vital part of the process and
the awareness of that should be there .
That also means appointing a Product Owner on the Partners side, that will
be achieved by talking with the development team and keeping a finger on
the pulse of things.
Such a venture requires something else than the Partners money. And the
providers shouldnt represent the take-money-and-run approach. The
Partner must take under consideration all factors: threats, risks,
opportunities, and benefits.
A
mature development team, with an
experienced Product Owner ahead, should serve with all the already
acquired knowledge and skills .
21
7
Why not to outsource?
Outsourcing software development and software services is a great
opportunity to scale business, provide high-quality software faster, and
focus on core elements of the business instead of developing tools
supporting it. But not always.
There are certain situations and reasons against outsourcing that should
be known before taking the decision.
First of all, the Partner might be simply not yet ready for outsourcing. For
many entrepreneurs, outsourcing is not only a tool to optimise cost and
timeline, but a serious risk of transferring unique product know-how out of
the companys country. Building a trust-based relationship with a developer
is the key.
Secondly, outsourcing is neither good for the Partner nor for his or her
business if he or she doesnt know Agile software development or doesnt
see any value in it. The Scrum framework, even though it appears to be
simple, is a difficult and disciplined approach that ignites change and helps
organisation evolve more rapidly with a better risk control, which requires
full focus, openness, and courage. If the Partner is not ready to take up the
glove - we recommend that he or she doesnt, although some
evangelisation always takes place.
Its smart to be careful with quality. Although the result of development will
be easily visible, the quality of software is usually concealed. It's easier to
measure it in the Partners own playground than in the developers one.
Thus, if you are not sure if a developer tests the software properly, it's
may be a good idea to look for an alternative .
22
Selection tree: when to outscource, credits: XSolve
23
8
Useful tips
Over 50% of decision makers have difficulties establishing
requirements of the project14 . And over 50% of those change them
during the development. That is why some tips might be helpful.
Make sure a team you choose takes care of the process of making
software as much as you do15 . This directly means that the price
should not be a factor. Good and cheaper teams can be found all
over the world. Good teams that actively participate in the process
are hard to come by.
Analyse who owns the copyright in the created code and make sure
you get the rights to the source code after the release of the
software.
14
http://bit.ly/1qJlek0
15
http://bit.ly/1FnHsfP
24
9
Are your ready ?
Are you ready to have your project made in Scrum? Answer the questions
below and find out.
Can you see the value in outsourcing and the direction from where
it came?
Can you see yourself working in Scrum with the developer?
Attending periodic reviews, asking questions, actively taking part in
the process?
Can you see the reasons why some teams are better suited for
Agile/Scrum projects? Can you see working with them on a project or
delegating a Project Manager or Product Owner?
Are you aware of the necessity of having one decision maker for
the whole time of a project? Can you see the reason why they can
establish contact with you on a cultural level?
Are you aware of Scrum requirements with reference to you as
the Partner on the project?
Can you invest time to give feedback to the development team,
for instance, when they give you feedback on the new ideas and
solutions?
Do you want to follow the changing business environment,
Partners expectations, new challenges? Do you want to develop your
business continuously? Do you need a scalable product opened to
new implementations and features?
25
Want to know more?
Join our free webinar with
certified Agile coach:
webinar@xsolve.pl
Credits:
This e-book was made under collective effort of XSolve crew:
Piotr Majchrzak
Leszek Pietrzkiewicz
Jaroslaw Scislak
26
Tell us about your software project or the
software team you need.
hello@xsolve.pl
xsolve.pl/contact/
Managing Director:
Piotr Majchrzak
Contact details:
+48 32 739 09 00
hello@xsolve.pl
http://www.xsolve.pl
http://www.xsolve.pl/blog/
Designed by
Chilid
Agency
This document can be viewed and shared under the license Creative Commons 3.0 -
BY-NC-ND. http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode
27