Beyond the apps – thoughts on software development

by Alina Mierlus

For the last couple of months I collaborated with Telefonica Foundation for PremiosApps, a first program intended to offer support for dozens of developers aiming to build web-applications with a more social impact (apps for education, art or healthcare).

Some of the apps are already up on the Firefox Marketplace (winners had the opportunity to further develop their project through ThinkBig programme or work with Telefonica Digital on FirefoxOS). It was a really interesting experience for me, as my role was to provide support on technical, but also project management side.

So I wrote code, deployed some services, played with some tools for software project management and I had the chance to have meaningful conversation with people who build their own first web-apps. Of course, among the conversations there were questions such as whether building for a platform or another is better, whether is optimal to migrate web apps to other mobile platforms (such as iOS or Android), to go either for SQL or NoSQL databases, to use a framework or another, etc. The answer is hard in such situations and sometimes, technical decisions can play tricky when come to plan with the resources you have to dedicate to the project.

When comes to questions like “which kind of technology should I choose” – my answer has always been: choose whatever technology you find comfortable with, the technology that your tech. team colleague feels that manages it well enough, the technology that best fits with your resources and time.

In a world that changes so fast, with dozens of frameworks, APIs, programming languages and various platforms – it’s hard to make decisions, especially when you just start your project. The thing is (and we’ve had a conversation about this when discussing about databases) – software is after all an interface that connects you, as a human being, with the machine.
Databases are nothing more than conceptual representations of elements you’re working with and the relationships between them.
The Cloud Services are nothing more than infrastructure on which our code (e.g. web services) runs – a set of computers running as servers and a pipe that connects them with other parts of the internet.

One of the things I learned from this experience is that, when you start a project (like building a piece of software) that eventually will become a product (a piece a software you can actually sell or deploy) – don’t start with the “I’m going to build an app” thinking. The app is just a small, tiny part of the project, the interface between you and the user (which, of course, it’s important). 

The problem today, especially in software development world, is having to cope with a constant wave of miscommunication, that is, all that marketing talk about how easy is to build an app (eventually with just a few clicks) and how easy is to be a developer (eventually in just a few days). 

That was part of the experience for the group: learning that things are not easy, that building software is harder than it may look like at first and that even the most popular programming language – JavaScript – has its own secrets and tricks. 

Applications on the web are a real opportunity in these moments of paradigm change. It may help us explore what could be next on software development. However, we should not forget that we are still through this platforms war :) .

Beside this, when thinking about building software with social impact, things get even harder as you have to do some “problem finding”. But on this topic, building technology within a social layer, I’ll write more soon.

Thanks to Telefonica Foundation and, above all, to the group of participants I worked with. That was inspiring and made me feel hopeful about the future of software industry in Spain.

I finish this post by sharing a recent talk by Alan Kay, software engineer and inventor from Sillicon Valley (the Sillicon Valley that used to inspire me some years ago… ): youtube.com/watch?v=gTAghAJcO1o