The life of a software developer, episode 1/4

Jérémy suggested that I describe my different experiences as a software developer in a set of articles, and I found this approach really interesting. I will start here with my first big experience as a developer during my company creation, and then I will continue with the different projects I’ve realized in my current company. I apologize in advance for not being able of giving some deep details sometimes, as confidentiality matters prevent me from doing this.

Two years ago, Fidji and I decided to launch a company “BlogEntreprise” (now discontinued). The project was to develop a professional blog portal for companies and associations. Instead of using existing tools, we decided to develop our website entirely by ourselves to offer the best personalization tools. The website had two different parts:

              – A professional blog search engine 

              - A personal space to create and manage your professional blog

  • Languages and DBMS used :

I was the developer and it was my first real experience of web development. In three months I have developed a website using three different languages.

              - HTML: the basic language for all web applications.

              - JavaScript: it was principally to control that all forms were filled correctly.

              – PHP: I’ve chosen it because it’s the best free language to use with MySQL and because it’s both a procedural programming language and an object-oriented one.

As I said before, for the database management system (DBMS) I have chosen MySQL for two main reasons: it’s free and it’s a powerful tool when used with PHP.

  • Strong focus on the analysis stage

In order to develop the website more easily, I took a lot of time to build my entity-relationship model. For those who don’t know it, an entity-relationship model is used to describe the structure of your database and the relationships between different tables.

I think that having a good entity-relationship model is crucial to have a strong database: it is a basic for software developers to dedicate a lot of time to think about it as it eases dramatically the rest of the development process.

  • Main issues

The most difficult part of this project was to combine the technical and the design aspect. With languages like PHP it’s not easy to separate the design part from the technical part as they are mixed in all files. Conceptually it is really difficult to know where to start: a website conceived by adapting the technical development to the design might be really different from one conceived with the technical part coming first. In that case it’s often a problem of competencies: as I’m not at all a web designer, I had a tendency to think to the technical part first, and then to adjust the design.

Besides I developed this website in parallel of my studies during nights and week-ends, so I didn’t have a lot of time and I tried to focus on the technical part to get things done more quickly. 80% of my time was dedicated to the technical part of the website and only 20% to the design aspect.

At the end, my lack of design abilities has been the main problem: it was really hard to attract companies and associations with a design which didn’t look corporate at all.

Finally, without any money to invest in design, our idea was perfect on paper but the realization as a whole wasn’t enough convincing. Even a well developed website, without any bugs, can’t convince customers if the design is really bad, as it is the first impression given to visitors.

  • Doubts

During those three months, and especially since it was my first large development project that I started from scratch, I had a lot of doubts about my development choices. When you develop an application or a website you never know if you are writing the “best” code. By “best” I mean the most adaptable, the most evolutionary code possible, which is the definition of an “optimized” code. I think that the answer to the question “did I make the right choice or is it possible to optimize the source code?” is that you can always optimize it but sometimes you have to make some choices because you can’t always imagine all the future developments of your website.

  • Technical insights

If I had to make the same project again I think I would use a language based on the Model-View-Controller design pattern (it could be RoR or even the MVC version of PHP). Indeed, with MVC, everything is clearer: data access and business logic, data presentation, and user interaction are separated in different files. I’ve also learnt that developing this kind of project alone is really hard as you can’t get any feedback on your code and the testing part is even longer.

  • Business insights

The fact of having both a technical and a business education has helped me a lot in this project as I was able to better understand the requirements of my business partner. And it has shown me that software / web developers can’t become obsessed by the development to the detriment of the business idea (and unfortunately it is often the case, which leads to products with a perfect code but which are unmarketable!). I’ve also experienced the thrill of being both a software developer and an entrepreneur, which leads to accept with pleasure long hours and an entire dedication to a project.

Rémy is a co-author on Tech IT Easy. You can read more about him on his initial announcement.

Like
Unlike

Related posts:

  1. The life of a software developer, episode 3/4: how to be flexible?
  2. The life of a software developer, episode 2/4: the improvement of software development processes
  3. The life of a software developer 4/4: developing a Facebook application
  4. Developer to all-technical-staff ratio: 1:4 as a rule of thumb?
  5. Looking for a top .Net platform software developer for StratosCube, a start-up company based in Paris

9 Responses to “The life of a software developer, episode 1/4”

  1. Jeremy Fain says:

    What was it to work as the only develop in the project? “Great, No asshole” or “too bad you didn’t have a peer to give you a hand and share”? Do you think having another develop would’ve added an unnecessary complexity layer?

  2. Remy MIRALLES says:

    As I said in the “technical insights”, being alone was definitely a bad thing especially since it was my first project and it would have given me some confidence to be challenged by another developer. In my next experiences I have really seen that working in team brings a lot of added value in the case of software development where almost everything is perfectible.

    Besides, when I developed it, the corporate blogging market wasn’t so crowded and time to market was really important, so having another developer would have also been a great asset to go quicker.

    Finally, my business partner was focused on marketing the product rapidly (and it is often the case even in bigger start ups from what I know) so it would have been great to share my concerns and pressure with another developer.

  3. Vincent van Wylick says:

    Thank you, Remy, a real insight into a world I know very little about! I read it with great interest.

    A question to you, or perhaps Fidji: what was your target market? Did you aim at small, medium-sized, large, or multinational companies. Was it aimed at the French or international market?

    Having worked with corporate packages and university ones, I’m not sure if your conclusion that design was the issue is something I would agree with. In my experience, these companies focus on vendors who can deploy on large scale and add consulting to the package. The design-part of it definitely seemed like an afterthought (i.e. puke-worthy).

  4. Jeremy Fain says:

    Okay, thx man. Another question then: do you consider your job as a software developer to be an Art or a science?

    Sorry, it’s sort of tricky – but I can’t answer it myself since it’s neither the one nor the other when I start coding, but rather a mess.

  5. I would equate web designing to art and web programming to math :)

  6. Remy MIRALLES says:

    @jeremy and web developers : it is a tricky question, especially since there are no standard definition for these concepts. From what I know (and God knows I’m not a philosopher!) a piece of art is defined by its originality, and if we take this definition I think that development can be assimilated to Art. For the exact same application, you won’t find two developers developing the exact same code: there will always be differences as coding implies choices, preferences, and a different vision of the result we want to have. And I think that development can be like a creation process: as a painter, I’m often surprised by what I create and the intermediate results often modify the rest of the project. I don’t know if it’s really convincing but this how I feel it!

    @vince: our target was very small businesses (shops, local associations, travel agencies…) which often don’t have enough time or money to have a website but which want to have an online presence. The purpose was to create a kind of “yellow pages” based on basic blogs, really easy to create and update. Since it would have been the only online visibility for those companies, design was definitely crucial, and the second problem was that our target was really fragmented so it was hard to convince companies in every sector without sales force.

  7. Vincent van Wylick says:

    On web-dev. vs. design: interesting perspectives. However, as coming from a family of “artists” I do believe that there is a very fine line between art and science.

    In the case of design, it is a method of communicating with an audience and there are fairly well-researched principles of usability, colour and font-usage, etc. which assist in reaching that goal effectively.

    Of course, individuality plays a big part in separating yourself from the other trees in a forest, and I suppose that is when you are called an artist.

    I’m sure the similar reasoning applies to programming as well, as you wrote Remy.

    @Remy on corporate design: you are right of course. I had not considered that blogs can be used as a means of communicating with the outside world, in which case design is one of the priorities. Silly me.

  8. Remy MIRALLES says:

    No problem Vince, I should have mentioned earlier the target and purpose of the company, but I didn’t want to complicate the article with a lot of business insights.

    I totally agree with your analysis of art vs science, especially in design.

  9. Relationship » The life of a software developer, episode 1/4 says:

    [...] admin wrote an interesting post today onHere’s a quick excerptIn order to develop the website more easily, I took a lot of time to build my entity-relationship model. For those who don’t know it, an entity-relationship model is used to describe the structure of your database and the relationships … [...]

Staypressed theme by Themocracy