Posts about software development

Pepper – A Social Robot from Softbank

Pepper is a social robot developed in France and part of the Japanese conglomerate Softbank.

Pepper robots are at work in retail stores in Asia and Europe as sales associates. The first personal robots have been available in Japan for 2 years now and may be available elsewhere soon.

Continue reading

Working as a Software Developer

For most of my career I have been focused on management improvement – helping organizations improve results. Technology plays a big role in that and along the way I found myself becoming a programer for a while; and then a software development program manager. This is a good post on working as a software developer:

reading code is a very important skill. Before a program can be modified, you need to understand what it does, and how it does it. Only then can new functionality be added so it fits in with the existing structure, and without breaking anything. Reading and understanding a program can be a major effort, and one sign of a well-designed program is that it is relatively straight-forward to modify it.

Write for people first, computer second. The code you write will be read many times in the future (by you, or another developer). The computer doesn’t care how the code is written, so make it as easy as possible to understand for the next person that has to read it. A corollary to this is: don’t be too clever. It’s better to be clear than to be clever.

When there is a compelling need to write for the computer first and people second make sure to document that code well. For example, some code that is extremely dense and complex and confusing but greatly enhances the efficiency of a critical area of code.

I recently wrote a book, Management Matters: Building Enterprise Capability. There are many great things about a career in software development. It certainly is also challenging and not for someone looking for the easiest career but I have seem a higher percentage of happy software developers than I have seen in any other discipline.

Related: How To Become A Software Engineer/ProgrammerThe Software Developer Labor MarketAvoiding Tragedy of the Commons for Software DevelopmentPreparing Computer Science Students for JobsHiring the Best Fit For Your Company in an Inefficient Job MarketWant to be a Computer Game Programmer?What Graduates Should Know About an IT Career

Largest Google Summer of Code Ever

Google summer of code allows college students to work on open source software projects during the summer and get a $5,000 stipend from Google.

Google Summer of Code 2012 by the Numbers

This 8th year of Google Summer of Code is the largest yet. More mentoring organizations received more applications from more students than ever before. We received a record number of applications – 6685 – from 4258 students from 98 countries to work with the 180 selected mentoring organizations.

We also accepted more students this year: 1,212 from 69 countries. This year India supplied the largest number of students, 227.

USA has 172 students, Germany 72, Russia 56 and China 45. This year set the highest percentage of women (self identified) yet. Guess what percentage. If you guessed 8.3% you are right.

Projects from the following organizations/software projects are included this year: Apache Software Foundation, Debian Project, Electronic Frontier Foundation/The Tor Project, GIMP, haskell.org, The JRuby Project, OpenStreetMap, Python Software Foundation, R project for statistical computing, Twitter, Wikimedia Foundation.

Google provides a stipend of 5,000 USD to the student and $500 to the mentoring organization. That puts Google’s support at over $6,500,000 this year.

Related: Google Summer of Code is Accepting Applications (2011)Google Summer of Code 2009Google Summer of Code 2007

Votizen is Looking for Software Engineers

Link broken by pointy haired boss at Votizen, so I removed it. This phb behavior will make those of us who link to websites hesitant to trust anything Votizen posts will stay around 🙁

A nice presentation on why software engineers should work at Votizen.

Related: How To Become A Software Engineer/ProgrammerThe Software Developer Labor MarketWant to be a Computer Game Programmer?IT Talent Shortage, or Management Failure?

Google Summer of Code is Accepting Application Now

Google Summer of Code 2011 is accepting applications. This is a great initiative I have highlighted previously: Google Summer of Code 2009, Google Summer of Code 2008. The deadline for applications is April 8th.

Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. The program has brought together over 4,500 students with over 300 open source projects, to create millions of lines of code. Participants (including students and mentors) have represented over 85 countries. The program, which kicked off in 2005, is now in its seventh year.

Participating organizations include: R Project for Statistical Computing, Debian Project, WordPress and the Marine Biological Laboratory. (9 of the 175 participating organizations list Ruby as part of their project :-).

For 2010 the effort had a budget of $5,000,000 and accepted 1026 students partnering with 150 Open Source organizations. This year they plan on 1,150 – 1,200 student positions. For 2007 they had 6,200 applications and 7,000 in 2008. I don’t see any data on applicants for 2009.

As for the application it should include the following: your project proposal, why you’d like to execute on this particular project, and the reason you’re the best individual to do so. Your proposal should also include details of your academic, industry, and/or open source development experience, and other details as you see fit. An explanation of your development methodology is a good idea, as well.

Related: Engineering Majors Hold 8 of Top 10 Highest Paid MajorsHow To Become A Software Engineer/Programmerposts from my management blog on software development

Tool to Make Creating Android Applications Easy

I am skeptical this will be really useful but it is a good thing to try. I can believe we could get good tools to allow non-programmer to create simple applications – but I think it will take years to get decent tools. Try App Inventor for Android. I might have to try it myself.

I would image sure most of the applications created will be horrible. It certainly is different from Apples attempts to restrict developers of iPhone apps as much as possible. The move certainly seems to open the development of simple applications beyond those that “are thrilled when a computer reminds them they’re missing a bracket or semicolon” 🙂

Related: Arduino: Open Source Programmable Hardware4 and 8 Year Old Sisters Impress with SqueakApp Inventor for AndroidDroid Incredible

Google Prediction API

This looks very cool.

The Prediction API enables access to Google’s machine learning algorithms to analyze your historic data and predict likely future outcomes. Upload your data to Google Storage for Developers, then use the Prediction API to make real-time decisions in your applications. The Prediction API implements supervised learning algorithms as a RESTful web service to let you leverage patterns in your data, providing more relevant information to your users. Run your predictions on Google’s infrastructure and scale effortlessly as your data grows in size and complexity.

Accessible from many platforms: Google App Engine, Apps Script (Google Spreadsheets), web & desktop apps, and command line.

The Prediction API supports CSV formatted training data, up to 100M in size. Numeric or unstructured text can be sent as input features, and discrete categories (up to a few hundred different ones) can be provided as output labels.

Uses:
Language identification
Customer sentiment analysis
Product recommendations & upsell opportunities
Diagnostics
Document and email classification

Related: The Second 5,000 Days of the WebRobot Independently Applies the Scientific MethodControlled Experiments for Software SolutionsStatistical Learning as the Ultimate Agile Development Tool by Peter Norvig

Controlled Experiments for Software Solutions

by Justin Hunter

Jeff Fry linked to a great webcast in Controlled Experiments To Test For Bugs In Our Mental Models.

I firmly believe that applied statistics-based experiments are under-appreciated by businesses (and, for that matter, business schools). Few people who understand them are as articulate and concise as Kohavi. Admittedly, I could be accused of being biased as: (a) I am the son of a prominent applied statistician and (b) I am the founder of a software testing tools company that uses applied statistics-based methods and algorithms to make our tool work.

Summary of the webcast, on Practical Guide to Controlled Experiments on the Web: Listen to Your Customers not to the HiPPO – a presentation by Ron Kohavi with Microsoft Research.

1:00 Amazon: in 2000, Greg Linden wanted to add recommendations in shopping cards during the check out process. The “HiPPO” (meaning the Highest Paid Person’s Opinion) was against it on the grounds that it would be a bad idea; recommendations would confuse and/or distract people. Amazon, a company with a good culture of experimentation, decided to run a small experiment anyway, “just to get the data” – It was wildly successful and is in widespread use today at Amazon and other firms.

3:00 Dr. Footcare example: Including a coupon code above the total price to be paid had a dramatic impact on abandonment rates.

4:00 “Was this answer useful?” Dramatic differences occur when Y/N is replaced with 5 Stars and whether an empty text box is initially shown with either (or whether it is triggered only after a user clicks to give their initial response)

6:00 Sewing machines: experimenting with a sales promotion strategy led to extremely counter-intuitive pricing choice

7:00 “We are really, really bad at understanding what is going to work with customers…”
Continue reading