Mobile App Programming vs. Mobile App Engineering

TechCrunch introduces a post by Elad Gil on building a mobile development team with, "As the Web goes mobile, every Web company needs to build mobile products."  Good.  We're on that.  Our company, Handshake Media, Incorporated, continues to expand its mobile app development services. Building mobile products, however, requires mobile product developers.

With Handshake's headquarters in the same town as Virginia Tech, I had a novel idea. Our company could hire a computer science major to program mobile applications for us!  Oops.  According to Eugene Wallingford at the University of Northern Iowa, I'm one of many "eager entrepreneurs" who contact a university's computer science department with a great idea who "just needing a programmer."

Oops again.  Dr. Osman Balci, Professor of Computer Science at Virginia Tech, opened my eyes to my limited view of programming by pointing out the difference between a software programmer and a software engineer.  That laid the groundwork for this point from Elad Gil in the aforementioned TechCrunch post to broaden my vision to focus on "hiring great engineers and having them pick up the programming language and platform."

Excerpts of the vista-expanding emails from Osman Balci follow, shared with permission:

I created and taught CS2984 iPhone Software Engineering (SE) in Spring 2010 and I am scheduled to teach it again in Spring 2011 as CS4984 iOS Software Engineering

I deliberately did not call the course "iOS Programming" although about 80% of it is programming. I called it "iOS Software Engineering."  I always emphasize the fact that we (those in Computer Science) are "Solution Providers"; we solve problems by engineering software. I advise my students, "Never introduce yourself as a Programmer; always introduce yourself as a Solution Provider."

In the Software Engineering Life Cycle diagram I have developed and use in my teaching, you see that Programming is just one of the seven major processes we execute to develop a software-based solution to a problem. Everything starts with Problem Formulation. "You have an idea" means "You have identified a problem, the solution of which would be needed by many people." For example, Problem: People cannot easily socialize with old friends. Solution: Develop a software-based solution such as Facebook.

The biggest public misconception is that "computer science = programming." Very wrong, as is explained in the Software Engineering Life Cycle below.

Software Engineering Life Cycle by Osman Balci

 

When I studied Dr. Balci's diagram, I was able to recognize elements of our process in developing the Handshake(TM) App and She Chooses(TM).  But if I were to diagram our process, I would have to arrange a still life photograph on the floor of my office, a spill of printed emails, Word docs, and photos of my whiteboard.  I look forward to developing our next project with Dr. Balci's system in mind. 

Given a greater understanding of mobile app development in the context of software programming vs. software engineering, I'm still pondering what steps my company might take into this new vista.  But I like the choices I see. 

For pointing me to the usesful posts referenced here, thanks to Alex Edelman for "I Just Need a Programmer"and Wade Hammes for The 5 Myths of Building a Great Mobile Team.

Programmers and Engineers
I'm a 'Toon!

Comments

  1. Dr. Balci’s diagram reminded me very much of a systems approach. I was introduced to a systems approach at a very young age – probably 5 years old! – by my father, Bob Giles. Here’s a post he wrote for Handshake 2.0: “A Systems Approach to Everything”:

    http://www.handshake20.com/2009/05/systems-approach.html

  2. Systems work is hard to do and oh so common sense. For big projects (bigger than a class computer assignment) … like a company … you have to start anywhere, (knowing the whole will emerge) because concentrating on one thing will immobilize you. Keep thinking juggling the balls or parts of the system … and improving each (like my elevator speech evolution). Another analogy is the boxing match … dancing around… the fight is rarely won early or by a single punch or by ones from one direction.

Speak Your Mind

*