Software development process
for outsourcing team
Mykhail Galushko
co-founder DevRain Solutions, Microsoft MVP
mykhail.gal...
What makes you unique
1. Deep expertise and rich portfolio
2. Avoiding common mistakes
3. Good management and development ...
Development is non-linear process
1. Increasing number of team
members == increasing of
communication complexity
2. Develo...
Error cost (cone of uncertainty)
At the beginning of any project we
don’t know exactly how long a
project is going to take...
Parkinson's Law
Parkinson's Law states
that work expands to fill
the time available for it.
Result? Extra time gained
is w...
Zone of improbability
9 women can’t make a baby in a month
*25% - max volume of project squeezing time
Fred Brooks “Mythic...
“Zero” stage
Estimation, environment installation (staging
and production), creating accounts for all
team members, unders...
Simple estimation model
Hourly rate * hours * 1.3 = project cost
~30% - project risks (employees search, bug fixing, requi...
Two estimations (best/worse cases)
(Cbc * Pbc) + (Cwc * Pwc)
• Cbc – cost (best case)
• Pbc – probability (best case)
• Cw...
Quick estimation for mobile apps
• iOS (iPhone + iPad)
• Windows Phone + Windows 8
• Android
Assume Windows Phone = 1 unit...
Different goals
Customers are worried about business
Developers are worried about technologies and ideal code
Communication
Ask yourself do you know:
• who determines the business strategy of
the project?
• who will evaluate the qua...
Roles not titles
Job title == many roles
1. Every team member should
know his roles.
2. Avoid too many “bosses”
(ideally j...
Funnels (measure user conversion rates)
Give your customer such
answers:
• how many users logged in?
• how number of login...
Process highlights
1. With integration to customer’s process
Team should be totally aware with customer’s business process...
Process highlights
1. UX/UI & guidelines & graphic design
Exactly in this order
2. If development for several platforms
Ma...
What tools we use
UX/UI, collaboration, communication, source control, docs
management, education
UX/UI & Prototyping
SketchFlow:
• Windows Phone, XAML apps;
MockupBuilder, Balsamiq:
• sketchy wireframes;
• UI components...
Collaboration
Yammer:
• Freemium enterprise social network
service that was launched in 2008 and sold
to Microsoft in 2012...
Communication
Skype:
• for small group conversation;
• share screen, group video chat (premium).
Lync:
• for big groups (w...
Source control
TFS Online:
• cloud based;
• free for small groups;
• natively integrated with Visual Studio.
Alternatives:...
Other tools
OneDrive & Dropbox
For files storage
Google Docs & Office 365
& DocuSign
For docs management
Asana
For task ma...
3rd party tools and services
Telerik
Controls & tools
Syncfusion
Metro studio for icons
Xamarin
For cross platform develop...
Mobile app template for Windows
platforms
1. UI for Windows Phone by Telerik
2. Metro Grid Helper
3. WPtoolkit
4. Ninject
...
Own framework
1. MVVM
2. Helpers (working with data, storage, I/O, caching etc.)
3. Custom controls
4. Performance counter...
Highlights for mobile apps development
1. Usability – first, design – second
2. Testing on real devices or use 3rd party s...
How to start
1. Buy MSDN, Office 365 subscriptions or
become a Microsoft partner
For any size of companies
2. Become BizSp...
Questions?
«Організація процесу розробки мобільного застосунку для аутсорсингової команди (з використанням сервісів та технологій Mic...
Upcoming SlideShare
Loading in …5
×

«Організація процесу розробки мобільного застосунку для аутсорсингової команди (з використанням сервісів та технологій Microsoft і не тільки)

536 views
412 views

Published on

by Mihail Galushko

Published in: Software, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
536
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

«Організація процесу розробки мобільного застосунку для аутсорсингової команди (з використанням сервісів та технологій Microsoft і не тільки)

  1. 1. Software development process for outsourcing team Mykhail Galushko co-founder DevRain Solutions, Microsoft MVP mykhail.galushko@devrain.com
  2. 2. What makes you unique 1. Deep expertise and rich portfolio 2. Avoiding common mistakes 3. Good management and development process 4. Using best tools
  3. 3. Development is non-linear process 1. Increasing number of team members == increasing of communication complexity 2. Development is not about time and resources, it is about people and services 3. Productivity of junior/middle developer and “guru” may differ up to 5-10 times
  4. 4. Error cost (cone of uncertainty) At the beginning of any project we don’t know exactly how long a project is going to take. No two ever projects have: • The same requirements • The same people • The same business context • The same technology • The same priorities & constraints
  5. 5. Parkinson's Law Parkinson's Law states that work expands to fill the time available for it. Result? Extra time gained is wasted.
  6. 6. Zone of improbability 9 women can’t make a baby in a month *25% - max volume of project squeezing time Fred Brooks “Mythical man month”, 1975
  7. 7. “Zero” stage Estimation, environment installation (staging and production), creating accounts for all team members, understanding roles and management flow *it’s good to have “zero” stage completed as soon as possible
  8. 8. Simple estimation model Hourly rate * hours * 1.3 = project cost ~30% - project risks (employees search, bug fixing, requirements missing, illness, lacks of communication, lazy developers) Payable hour != standard hour
  9. 9. Two estimations (best/worse cases) (Cbc * Pbc) + (Cwc * Pwc) • Cbc – cost (best case) • Pbc – probability (best case) • Cwc – cost (worse case) • Pwc – probability (worse case) Real cost will be higher than best/worse average cost.
  10. 10. Quick estimation for mobile apps • iOS (iPhone + iPad) • Windows Phone + Windows 8 • Android Assume Windows Phone = 1 unit 1 (WP) + 0.75 (Win8) + 1.5 (iPhone) + 0.5 (iPad) + 2 (Android) = 5.75 (units)
  11. 11. Different goals Customers are worried about business Developers are worried about technologies and ideal code
  12. 12. Communication Ask yourself do you know: • who determines the business strategy of the project? • who will evaluate the quality of your work and what is “project done” criteria? • how many bosses do you have? • who has the final voice in decisions?
  13. 13. Roles not titles Job title == many roles 1. Every team member should know his roles. 2. Avoid too many “bosses” (ideally just one).
  14. 14. Funnels (measure user conversion rates) Give your customer such answers: • how many users logged in? • how number of logins changed after implementing a new design? • how many users navigated from page 1 to page 2? • how many users clicked such button? • etc.
  15. 15. Process highlights 1. With integration to customer’s process Team should be totally aware with customer’s business process. 2. Without integration to customer’s process Teams use own process internally and use a “public interface” to customer’s business process. Interfaces can be differ with different customers. 3. Orientation on result, not the process Agile is not good in all 146% cases. Sometimes F*ckup Development works better.
  16. 16. Process highlights 1. UX/UI & guidelines & graphic design Exactly in this order 2. If development for several platforms Make at least alpha version for the one platform with real data, than – other platforms 3. Avoid “not invented here” philosophy Don’t hesitate to use already existing products, research, standards, or knowledge even if they are paid. 4. Use best tools Collaboration & communication, storage, documents exchange, source controls, tasks management, Wiki & CRM, feedback etc.
  17. 17. What tools we use UX/UI, collaboration, communication, source control, docs management, education
  18. 18. UX/UI & Prototyping SketchFlow: • Windows Phone, XAML apps; MockupBuilder, Balsamiq: • sketchy wireframes; • UI components & icons; • drag & drop simplicity; • click-through prototypes.
  19. 19. Collaboration Yammer: • Freemium enterprise social network service that was launched in 2008 and sold to Microsoft in 2012 • Yammer is used for private communication within organizations and is an example of enterprise social software • Access to a Yammer network is determined by a user's Internet domain so that only individuals with appropriate email addresses may join their respective networks
  20. 20. Communication Skype: • for small group conversation; • share screen, group video chat (premium). Lync: • for big groups (webinars); • easy recording, powerful interaction features. Live Meeting: • for webinars.
  21. 21. Source control TFS Online: • cloud based; • free for small groups; • natively integrated with Visual Studio. Alternatives: • Bitbucket.com; • Github.com.
  22. 22. Other tools OneDrive & Dropbox For files storage Google Docs & Office 365 & DocuSign For docs management Asana For task management Bitrix 24 CRM
  23. 23. 3rd party tools and services Telerik Controls & tools Syncfusion Metro studio for icons Xamarin For cross platform development RedGate SQL Server, .NET, Oracle tools Pluralsight Hardcore Dev and IT Training
  24. 24. Mobile app template for Windows platforms 1. UI for Windows Phone by Telerik 2. Metro Grid Helper 3. WPtoolkit 4. Ninject 5. Newtonsoft.Json 6. MvvmLight 7. BugSense 8. Flurry 9. BindableApplicationBar 10. HtmlAgilityPack 11. Hammock / RestSharp 12. Memory Diagnostics Helper 13. Rx 14. SharpZipLib 15. etc…
  25. 25. Own framework 1. MVVM 2. Helpers (working with data, storage, I/O, caching etc.) 3. Custom controls 4. Performance counters 5. Testing tools
  26. 26. Highlights for mobile apps development 1. Usability – first, design – second 2. Testing on real devices or use 3rd party services 3. Application update flow (and delays because of certification process) 4. Feedback and errors management 5. Guidelines and OS features integration 6. Most of mobile apps development projects are short-term
  27. 27. How to start 1. Buy MSDN, Office 365 subscriptions or become a Microsoft partner For any size of companies 2. Become BizSpark member For startups not older than 3 years 3. Get DreamSpark or MSDN AA subscription If you are a scholar, student, PhD or teacher 4. Nokia Developer Program Windows Phone Dev Center subscription, BugSense Performance Monitoring Solution, Telerik Rad Controls, remote app testing tools
  28. 28. Questions?

×