Introducing Python as a main Programming Language



Similar documents
IT Salary Guide. National. An Inside Look at IT Salaries. mondo.com 1

Logicify Fact Sheet. We bring logic to the software systems and development processes. We call this process to logicify.

Brad Wilder Software Developer Years in the software industry: 4 Strengths: ios mobile development (Objective C) C# Java

THE WINDOWS AZURE PROGRAMMING MODEL

Net Developer Role Description Responsibilities Qualifications

CASE STUDY Mini ERP Software

PHP FRONT END DEVELOPER (BERLIN)

Inputsoft Business Software & Consulting. Learn more at

alchemy webapp framework Introduction What is alchemy?

This Record of activity confirms that Jonathan Scrase has completed the following courses within the Microsoft Virtual Academy:

The 2014 Bottleneck Report on Enterprise Mobile

Agile Codex. (A software development company) Company Overview. Agile Codex

Digital Agency Presentation

Software Development Services

Your Information Technology Partner. Company Overview. Copyright Mantra IS LLC. All rights reserved.

The maturity level of APEX. Patrick Hellemans Competence Manager Technology

CAREER OPPORTUNITIES

Database Technologies MySQL, PostgreSQL, SQL Server, Oracle. Development Tools Eclipse, Aptana, NetBeans

ActiveVOS Server Architecture. March 2009

Education. Relevant Courses

Rock-N-Happy Heart: The Devotional By Yancy. by Yancy

SharePoint. Governance. Benjamin Niaulin

We provide advice and recommend sites that are concerned with offshore services, offshore solutions development and offshore software development.

SENIOR WEB DEVELOPER

How To Work For Hanodale

ENTERPRISE MOBILE BACKEND AS A SERVICE EVALUATION CHECKLIST

CommonTime Making Business Mobile. Enterprise. CommonTime. Mobile Solutions. mdesign Platform.

European Product Development (EPD) 6 months Intern Program Zurich, London or Berlin

SharePoint 2010 for Project Management

Your organisation s future IT Service

New Beginnings: Managing the Emotional Impact of Diabetes Module 1

ASSOCIATE IN APPLIED SCIENCE DEGREES AND CERTIFICATES

Webapps Vulnerability Report

Book 3 Cost Estimating in an Agile Development Environment. (early release)

Your Technology Partner Offshore and Onsite. Services Portfolio

Top HR Interview Question and Answers

Please contact Cyber and Technology Training at for registration and pricing information.

ELOGIX SOFTWARE BUSINESS ADVANTAGE DELIVERED PROFILE

5IMPROVE OUTBOUND WAYS TO SALES PERFORMANCE: Best practices to increase your pipeline

COMPANY PROFILE MISSION VISION. Code Enterprise is a Web & Mobile Application company with its roots deeply imbued in the European affiliate market.

BlueCielo Meridian Today

How To Be Successful At An Agile Software Engineering

Human Resources Department.

THE POWER OF THE CLOUD IS CLOSER THAN YOU THINK. Michael Lee Aaron Saposnik SWC Technology Partners

Company Profile. SIM Solution Ltd.

How To Interview For A Job

Web Design Contract. Summary: What do both parties agree to do? Date: [date] Between us [company name] and you [customer name]

To use MySQL effectively, you need to learn the syntax of a new language and grow

Sandesh Prasanna Kumar

Direct quotes about me from recent performance review(s)

100% NO CODING NO DEVELOPING IMMEDIATE BUSINESS -25% -70% UNLIMITED SCALABILITY DEVELOPMENT TIME SOFTWARE STABILITY

Module 6: How to Write the Book

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Enterprise Computing Introduction

Strategy for Application Modernization A Summa White Paper

Rapid Development of Smart and Self-Adaptive Cloud, Mobile & IoT Applications - Accelerating the Last Mile of Cloud Computing

2016 TRAINING CALENDAR

How to make more money in forex trading W. R. Booker & Co. All rights reserved worldwide, forever and ever and ever.

Paul Zenden Sioux Technische Software Ontwikkeling Science Park Eindhoven EP Son Tel: +31 (0)

The Analytics COE: the key to Monetizing Big Data via Predictive Analytics

Whitepaper. Trans. for Mobile

Interviewing for Software Jobs. Matt Papakipos Brown Math/CS 93 Slides presented at Brown University on October 7, 2014

Appendix A: Case Studies

Improve business agility with WebSphere Message Broker

Specialized Training Calendar May August Training for Professionals by Professionals


More Recruiter Resources. Last Week's Articles. Questions

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

White Paper: Evaluating Big Data Analytical Capabilities For Government Use

Learning to Delegate

Navigating the Mobile App Development Landscape

QA Tools (QTP, QC/ALM), Selenium with Java, Mobile with Automation, Unix, SQL, SOAP UI

Mohammed Khan SUMMARY

How to write a pattern? A rough guide for first-time pattern authors

Company Overview. Who Are We?

VISION BPM. Business Process Management.

HUDSON SALARY GUIDES 2015

Rake Task Management Essentials

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

Cloudreach Salesforce Cloud Consultancy

.Net Developer Role Description Responsibilities Qualifications

Transcription:

Introducing Python as a main Programming Language CTO: P. Büchler (pbuechler@soxes.ch) www.soxes.ch Sennweidstrasse 1b CH-8608 Bubikon Telefon +41 (0)55 253 00 53 Telefax +41 (0)55 253 00 51 1

Agenda 1. Motivation, why this talk? 2. About soxes 3. Why a new language 4...And why Python? 5. How we implemented Python@soXes 6. The problems we had 7. Python & the business 8. Was it worth? 2

Motivation 1 The main challenge of all IT projects and by consequence a formidable test for all companies offering individual software Quality Cost Time 3

Motivation 2 How to pass this test successfully? 1. The right process for your projects 2. The right mix of project and customers 3. the right team def the_right_technology(last_but_not_least): python_is_it = True; 4

Motivation 3 And LUCK I do not know about enforcing luck but over time we @soxes learnt very hard about processes, people and technology. I believe that in my position as CTO with a technical background but a business perspective I have a unique experience which I would to share. 5

About soxes Owned by Thomas Klauser (CEO) Patrick Büchler (CTO) Founded 2001 HQ Bubikon near Zürich References Over 150 projects and 80 customers Teams in Minsk Saigon 60 Employees 13 Business Analysts / PM 41 Developers and Testes 1 User Interface Designer 1 System administrator 1 Back office 3 Apprentice Business: Individual Software Development & Consulting Trust We listen to our customer and we act according to their best interest Competence Employees of soxes know the right technologies and when to apply them Sustainability We are 100% self financed, we work to live and we love our work 6

Why a new Language 1 soxes like most companies is driven by it s sales funnel The broader your offer the more projects you might get But around 2010 / 2011 soxes had projects in Delphi, Java, C/C++,C#, PHP, javascript and naturally HTML, in addition we started having our first mobile projects. Commercially the projects had size from several man days to several man years! 7

Why Phyton 1 You need very skilled people to cover this load and range successfully It got uncomfortably hot 1. We had to reduce our portfolio of technologies but keep a broad funnel 2. ASP.NET and PHP were fix because we have customers with fix teams for these technologies 3. What language to replace all the remaining languages? 1. Clearly it must be a language which is platform independent, a language with a big community, a language with a future and a language which has a good learning curve 8

Why Python 2 1997 the answer was Java but now the answer is Python 1. Python is simple and readable 2. Python is versatile and platform agnostic 3. Python can be used for the web and on the client 4. Python is also a philosophy 5. I personally love python! 6. I personally already had experience in Python and Java and I favored Python 9

How we implemented Python 1? So far so good but how to do this? and what about the risks? 10

How we implemented Python 2 Some principles my business partner and I learnt during our time as managers of a company 1. If you take decision you should implement it quickly 2. People usually learn better with real challenges 3. Innovation is not the same as research. As Entrepreneur you must innovate and not make research! 4. And finally a (small) company cannot spend much budget on unfinanced activities 11

How we implemented Python 3 We decided to make our first steps with python already with a real project BUT we hedged our bet and decided 1. The first project should not be critical 2. The first project should not be too small (at least 1 man year) 3. The first project should contain no complicated technical challenges 4. The first project should contain no complicated business logic 5. The first should not be in a risky domain 6. We should use a very easy to use framework (web2py) 7. A specific team would get the first python project 8. We still gave the PM the goal to finish the project with a profit 12

The problems we had Mostly, the project went surprisingly smooth! From what we learnt you should consider the following: 1. def my_function()!= public int myfunction() Code reviews! Especially when the developer used Java or C# before. Interestingly enough developers coming from VB have less problems 2. Allow refactoring Give your team the time to make their first project perfect 3. Enforce refactoring Force your team to make the first project perfect 4. Be patient Do not forget, its new for most developers 5. Be strict You decided to take a risk and implement the project in a new language, stick to this decision 6. Python is agile, use this. With python your debug cycle is extremely quick, use this fact e.g. in the sprint review 7. Do not interfere too much Yes, you are the best of all developers, still let your colleagues work on their own, they will learn nothing if you do everything! 13

Python & The Business 1 Python, C#, Webservice, Joomla, SAP, Salesforce, API, Oracle Remember PHP ASP.NET, Platform, Office ios, Magento, JMS The funnel sometimes forces you to use a specific technology Using Python will not change this because sometimes your customer does not want you decide about architecture and technology 14

Python & The Business 2 What factors are crucial for the decision about what technology to use? Technical and Organizational Factors (let me call them reasonable) 1. Surrounding systems enforce a specific technology (e.g. JMS based message bus) 2. Basis System used by the company enforce at least partially certain technologies (e.g. the company uses Oracle) 3. IT Departments are often proficient on one platform only 4. Contracts with vendors or suppliers enforce a given technology 5. High Investments to change basis 15

Python & The Business 3 What factors are crucial for the decision about what technology to use? Human Factors (let me call them personal) 1. IT Departments are often reluctant to change their systems even when outdated or try something new (consider the type of personality who becomes Sys Admin) 2. Management hear saying (we MUST have SharePoint because it will solve all our problems as my friend told me) 3. Internal Politics (we decided that XYZ is the best architecture, we cannot change now) 4. Quasi-Religiuos believes of important decision makers or influential people (there is no better sport than to provoke a developer by criticizing his language of choice) 16

Python & The Business 4 So the customer wants a suggestion, is there an advantage in offering Python? The word Python itself will not open doors but you can use the following arguments 1. Platform independent 2. Very fast development cycle I find this the amazing part: You can even debug and change the code onsite during the sprint review! 3. Completely Open Source 4. Mature 5. Big Community 6. Do not force your choice of technology! Remember who is paying! 17

Python & The Business 5 So the customer wants a suggestion, is there an advantage in offering Python? You will have to overcome the following fears 1. Fear of Vendor Lock In Most people business know exactly.net and Java and believe that everything else is a niche. 2. Fear of Open Source This is understandable, there are many Dead Open Source projects. 3. Lend your helping hand to the Sysadmin: Maybe he used SQL Server and IIS since 199x! Suddenly it s Postgres SQL and web2py. Help him and he will be a grateful promoter of your technology, leave him alone AND 4. Most problems are not technical! Remind your customer and your team about this 18

Was it worth 1 YES 19

Was it worth 2 1. Python is well established now 2. At the moment 4 different projects with Python 3. Strategic decision: All individual web projects @soxes are done with web2py 4. Wherever possible we suggest using Python 20

Thank You 21