Thank you, APIs

api-connect-fabernovel1
https://nbry.files.wordpress.com/2013/01/api-connect-fabernovel1.png

If you like social media, and use your mobile apps to make tasks easier and faster -actually, if you are reading this-, you should thank APIs.

I bet a lot of us read or heard about this term once and didn’t know what it means. Well, API refers to Application Programming Interface and its work is to allow applications talk to each other, and no, it’s not magic.

Isn’t it cool the fact that we can share posts from one web site to many others with just one button? Don’t you love the button “Log in with Facebook/Twitter/Google” in many applications? Aren’t you obsessed -just like me- with sharing everything on Facebook? Have you ever wondered how is it possible to connect your mobile apps to websites?

If you answered No to all these questions, then you’re weird. But otherwise, let me tell you that all those things are possible thanks to APIs!

main
http://www.cbronline.com/news/verticals/Others-inc/what-is-an-api-4928915

Web sites used to be just publishing things from a database, but now it’s possible to pull content from many databases and API resources. Also, users can iteract and generate content as well.

You might think that APIs are very recent, but they’re not. The function of an API, at first, was to connect one program to another. Then in 2007 the iPhone was released and there the power or APIs got 10000 times bigger and more important, because thanks to the iPhone, mobile apps became part of our lives.

This cool video will help you understand APIs more easily.

Source:


What are Ethics for?

ethics-0

As any other profession, Software Engineering has its own Code of Ethics. It was developed by the ACM and the IEEE to make the software community a good place to be part of and to make standards of ethic and professional development.

The Code consists in 8 principles:

  1. PUBLIC: Developers shall look for the public well-being. Our projects aren’t made for us, developers, to use it, it’s for the rest of the world, and we must give them something worth to spend time on (and money).
  2. CLIENT AND EMPLOYER: I think the important part of this principle is confidentiality. As workers, we will be asked to work with someone else’s data, and the right thing to do is not to pay interest and mind our own business. But also, it’s possible to be in difficult situations as being asked to work on something illegal or un-ethical, maybe for a big amount of money, who knows. Well, this Code says: Please, decline the offer.
  3. PRODUCT: Basically, do your best, surprise people with your creation.
  4. JUDGEMENT: Support the human values and be honest, very simple.
  5. MANAGEMENT: Developing software isn’t just coding. We must plan, think about the investment, design algorithms, consider the software requirements, the maintenance. There are so many things in the process of developing that we must do to create something amazing!
  6. PROFESSION: The day we decided to join the journey of software engineering we joined a huge community that has decided to do awesome things to make the world a better place. So, don’t let people to think the otherwise.
  7. COLLEAGUES: As I said in the previous principle, this community is full of ideas that we must respect and support. Team work makes wonders in this industry.
  8. SELF: Nobody is perfect, to improve in every aspect of our lives
    Continue reading "What are Ethics for?"

History of Software Engineering…

The history of Software Engineering begins in the 40’s and 50’s, where programs where just instructions to control physical devices and programmers didn’t even interact directly with computers. It was until 1957 when IBM released the first widely programming language, Fortran.

The 1960’s is known as the Software Crisis. In this decade programs failed on being reliable, good quality, on time and on a budget, therefore, people started to lose trust on the computer industry.

To solve all these problems, it was important to understand the fact that a process is required to develop good quality projects. Then, in a conference in 1968 the term “Software Engineering” was born. The purpose of that conference was to find a solution to the crisis; the results, to implement procedures and project management from other disciplines of engineering, to software.

brief_history_of_cs_small

In the 1980’s the object oriented programming started to be a trend in software engineers, which allowed programmers to develop graphic user interfaces (GUI). In 1989, Tim Berners-Lee, a computer scientist from CERN, started to link papers with hypertext. And it was until the 1990’s that the browser was created to give users access to those papers.

Also in the 1990’s started the open-source software. This event is one of the reasons to the huge productivity that software engineering has reached since then.

In the last decade an important development was the “cloud” and software engineering has been focusing on creating apps for mobiles and tablets.

What do you think is going to be the next software innovation?

Source


Software engineering? What is it?

hire20engineers

A formal definition of Software Engineering given by the IEEE is: applying the principles of engineering in the software development field. It’s very common to hear that people use the words coder, programmer, developer and software engineer as the same thing. Well, in my opinion, a software engineer is the one that differs the most from the other three. Programming might be the most important part in software engineering, but it’s still just one part of the whole process.

I can be hard to explain what software engineers do, and that’s because some people are not even convinced that building software is real engineering. I can define engineering as the application of mathematics, physical laws, standardized tools and metrics to build something. So, the problem is that software engineering is very new compared with other disciplines of engineering, it doesn’t have standards because it is constantly changing. Because of that, building software has been considered more as a craft than an engineering.

I think software development is a craft and an engineering. Software engineers build something beautiful and functional, try to innovate and give good product to people. But to achieve that goal, it can’t be done a lo tonto; building software is a big process: defining the software requirements, designing the algorithms -which requires math and logic laws- and instructions, coding, validation and maintenance. As I said before, this industry is very new, but the truth is that it will always be new. It feels like there’s always something new to discover, apparently there is a whole different world in computer science. And that’s why software engineering/craft is much better than an engineering, it never gets old.

Source:

 


What is SCM?

barcelona-sprint-1

What

Configuration management refers to a discipline for evaluating, coordinating, approving or disapproving, and implementing changes in artifacts that are used to construct and maintain software systems.
According to the
Technopedia
SCM helps in i
dentifying individual elements and configurations, tracking changes, and version selection, control, and baselining. One of the most widely used SCM is
Git
, created by Linus Tovalds in 2005.

Why

How
• Identify and store artifacts in a secure repository.
• Control and audit changes to artifacts.
• Organize versioned artifacts into versioned components.
• Organize versioned components and subsystems into versioned subsystems.
• Create baselines at project milestones.
• Record and track requests for change.
• Organize and integrate consistent sets of versions using activities.
• Maintain stable and consistent workspaces.
• Support concurrent changes to artifacts and components.
• Integrated early and often.
• Ensure reproducibility of software builds
(Pearson, https://www.pearsonhighered.com/samplechapter/0321200195.pdf)

figure_08

Why is SCM important?
In Software Engineering is almost impossible to work alone. In this discipline, to make a good product, team work is necessary. In small teams it could be easy to track changes that co-workers make, but what about big organizations? When haven’t even met the people you’re working with. Well, that’s why we need SCM. In big projects, every person is working in something different that, at the end, will make great software. To accomplish goals, it’s important to manage the Development and Testing departments.

Team

luciasblogweb.wordpress.com/

ingsagnelliblog.wordpress.com

alfonsoirai.wordpress.com

ricardas.com

juancasan.wordpress.com


Software Engineering Code of Ethics

The industry of Software Engineering is getting bigger and bigger each day, all around the world programmers are getting filled of new ideas and attempt to give something innovative to people. With such a large community  like this, keeping a good relationship between coders and society is really important. So, we all agree that it wasn’t a bad idea (actually, it was pretty good) to create a Code of Ethics for software engineers.

ja

 

The Code of Ethics was developed by the ACM and the Computer Society with the purpose of instructing programmers about what the society expects from them. But if we’re going to talk about ethics, first we must know the definition on ethics, right? Well, ethics is “an area of study that deals with ideas about what is good and bad behavior”.

We believe that every mature person has an idea of what’s good and bad; so why do we need our own code of ethics? The ACM explains it to us in 8 principles:

  1. PUBLIC: Software engineers must act with the public interest. Our creations must contribute to the society, help people with their problems and for that, we need to have in consideration as many cases and scenarios as possible.
  2. CLIENT AND EMPLOYER: The relevance in this principle is confidentiality. As professionals, to do our job we will have to use other people’s information and it’s important to keep it in private and to show no interest. But what if we notice something extremely illegal? Doesn’t matter how much they’ll pay you, ethically, the right thing to do is to say “no”.
  3. JUDGEMENT: Programmers have to mantain integrity and independence in every situation. We must respect the human rights and evaluate circumstances with moral judgements.
  4. PRODUCT: It’s very important to give people good quality software, it has to follow all the specifications
    Continue reading "Software Engineering Code of Ethics"

Software Engineering Code of Ethics

The industry of Software Engineering is getting bigger and bigger each day, all around the world programmers are getting filled of new ideas and attempt to give something innovative to people. With such a large community  like this, keeping a good relationship between coders and society is really important. So, we all agree that it wasn’t a bad idea (actually, it was pretty good) to create a Code of Ethics for software engineers.

ja

 

The Code of Ethics was developed by the ACM and the Computer Society with the purpose of instructing programmers about what the society expects from them. But if we’re going to talk about ethics, first we must know the definition on ethics, right? Well, ethics is “an area of study that deals with ideas about what is good and bad behavior”.

We believe that every mature person has an idea of what’s good and bad; so why do we need our own code of ethics? The ACM explains it to us in 8 principles:

  1. PUBLIC: Software engineers must act with the public interest. Our creations must contribute to the society, help people with their problems and for that, we need to have in consideration as many cases and scenarios as possible.
  2. CLIENT AND EMPLOYER: The relevance in this principle is confidentiality. As professionals, to do our job we will have to use other people’s information and it’s important to keep it in private and to show no interest. But what if we notice something extremely illegal? Doesn’t matter how much they’ll pay you, ethically, the right thing to do is to say “no”.
  3. JUDGEMENT: Programmers have to mantain integrity and independence in every situation. We must respect the human rights and evaluate circumstances with moral judgements.
  4. PRODUCT: It’s very important to give people good quality software, it has to follow all the specifications
    Continue reading "Software Engineering Code of Ethics"