sábado, 30 de setembro de 2017

Books on development (Pedro Coelho; PT)

In PT: Livros da FCA de Pedro Coelho. Tinha alguns e não sabia quem era o autor. Agora já sei. É colega (mas não daquelas da tropa).

https://m.fca.pt/pt/catalogo-pesquisa/?filtros=0&q=pedro+coelho

sexta-feira, 29 de setembro de 2017

On the importance of interface specifications (ICD)

On the importance of interface specifications (doing it and then... following it). Lots of systems fail due to interfaces to external systems. What is an external system? In this context, anything where you'll have to read data from and/or export / write data to.

In some projects/markets these are mandatory deliverables (the designation and the acronym can vary): SIS (Software Interface Specification), ICS (Interface Control Specification), ICD (Interface Control Document). The interface specification can be a document by itself or part of the broader design documentation (a section of it). The advantage of having it extracted is that it is easier to share externally (you'll have to share just that part of the design with external companies and that eases up distribution issues for organizations that restrict distribution).

As per the external interfaces by themselves:
Identify all intervening external systems and specify the needed interfaces thoroughly: specify the data flows, frequency and means of communication, review and accept those documents so that all teams (persons) working for all components of the information system are aligned.


Case study / example (on the importance of interface specifications):

The Mars Climate Orbiter  is one of the many failed Mars missions. It crash landed in Mars in 1999:

"The primary cause of this discrepancy was that one piece of ground software supplied by Lockheed Martin produced results in a United States customary unit, contrary to its Software Interface Specification (SIS), while a second system, supplied by NASA, expected those results to be in metric units, in accordance with the SIS."
They had a spec, they just didn't read it. Or even worse, they produced contradicting documentation.



PS. The full NASA 1998 report can be found here:

terça-feira, 26 de setembro de 2017

Teams: How to make friends... (BOOK, 1936)

The classical "How to Make Friends and Influence People" (Dale Carnegie, 1936). I use to say we don't have to be friends with the people you work with, but for sure if you get along your team (as a manager or as a team member) things for sure will go smoothly. And these techniques could help you with that hard manager (if you believe they are still up to date):
https://en.m.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People

Quoting:
"In 1981, a new revised edition containing updated language and anecdotes was released.[2] The revised edition reduced the number of sections from 6 to 4, eliminating sections on effective business letters and improving marital satisfaction.

In 2011, a 3rd edition was released, titled How to Win Friends and Influence People in the Digital Age. This edition was written by Dale Carnegie & Associates. It applies Carnegie's prescription for relationship and business success to the digital age.[1]"

segunda-feira, 25 de setembro de 2017

Teams: How to change minds and influence behavior (Neuroscience, BOOK)


Neuroscience to the rescue? Teams that work sometimes need "additional help". Managers should adjust to the teams they have (and so on...).
With a name similar to the (old but still found in PT bookstores and) popular "How to make friends and influence people" (Dale Carnegie, 1936):
http://www.wired.co.uk/gallery/how-to-change-minds-and-influence-behaviour

sexta-feira, 22 de setembro de 2017

Teams: Becoming Brilliant (BOOK)

Brilliant persons are specially fit to work (and create) brilliant teams? Guess so. What are the 6 most important skills for a team member must have (as well as for educating your kids for the future jobs)?
BOOK: "Becoming Brilliant – O que Diz a Ciência Sobre Como Educar Crianças Para o Sucesso" from Kathy Hirsh-Pasek and Roberta Golinkoff.

Article/ interview about the book (in PT):
http://observador.pt/especiais/como-se-educam-filhos-brilhantes-estas-cientistas-explicam/

Citando (PT):
"Colaboração é tudo. Se há uma ideia que fica depois de lermos o livro é esta. O mercado laboral do futuro é “um desporto de equipa”, quem não souber integrar-se não será “brilhante”. É preciso conhecer as necessidades e as expectativas dos que nos rodeiam. Como se lê no livro: “Não é possível tocar uma sinfonia com uma flauta”;Comunicação. Falar claramente, ler e escrever com igual clareza, ter um discurso articulado e, principalmente, ouvir, são competências essenciais para as autoras;Conteúdo. Se dominarem a comunicação, será muito mais fácil apreenderem conteúdo, ou seja, o conhecimento académico, e só com bases podemos saber o que temos para melhorar;Pensamento crítico. É preciso que as crianças questionem tudo o que aprendem: o que for verdade, apoiado em fontes fidedignas, consolida-se e torna-se mais uma pedra basilar onde todo o conhecimento futuro se pode, sem medos, apoiar. Porém, para aqui chegarmos, é preciso permitir às crianças por tudo em causa, até as ordens dos pais, que, a partir dos quatro anos, devem ser todas explicadas;Inovação criativa. Primeiro vem o espírito crítico, depois a inovação. É uma das competências mais difíceis de adquirir, porque pressupõe que se crie uma solução nova para um problema — novo ou antigo. Mas para inovar é preciso todas as outras competências anteriores. Um exemplo é o nascimento de plataformas como a Uber. Há um problema, descobre-se uma solução e agora que já surgiram outros problemas— como as condições laborais dos condutores, por exemplo, uma outra pessoa criou a Lift, que tem isso em atenção;Confiança. É preciso dizer aos nossos filhos que é importante correrem riscos na sua vida profissional. Na escola isto está a ser desencorajado. Os professores tentam sempre apontar como caminho para o sucesso um outro que já foi percorrido sem percalços milhões de vezes, daí que as universidades de topo do país sejam o único objetivo de milhões de alunos."

quinta-feira, 21 de setembro de 2017

SW Testing: How do big gaming companies test performance?

Doing automated tests and measuring (profiling et al) or... Inviting the community to use the game i.e. play? In case of gaming it's the latter. You'll be given to experience the privilege of playing the new game months before they are out in the market, and if you are a fan you'll do it for free. In fact you're taking part of the software development life cycle, allowing the engineering team to fine tune the games, the servers settings and more.
Recent example:
https://www.theguardian.com/technology/2017/sep/21/call-of-duty-too-old-shooter-younger-competitors

sábado, 16 de setembro de 2017

Psicology and SW Development?

Yes, of course. How to build teams that excel? Teams that are teams (i.e. that work as teams):
https://www.infoq.com/news/2017/09/personality-software-development

Quoting:
"(...) five major dimensions of personality. They spell out an acronym: OCEAN.

Openness to Experience vs. Closed to Experience
Conscientiousness vs. Carelessness
Extraversion vs. Introversion
Agreeableness vs. Disagreeableness
Neuroticism vs. Stability

Where one stands on these dimensions is a good predictor of important consequences for our working lives. For example, those who are open and conscientious are more likely to perform better, but they differ in how they excel: open individuals excel because they bring new ideas into the workplace; conscientious individuals because they are reliable and able to get routine tasks done effectively and efficiently. Similarly, extraverted and agreeable individuals also contribute well to the social features of work-life: extraverts are gregarious and seek out stimulation while agreeable individuals are especially adept at nurturing and motivating others. Neurotic individuals are particular sensitive to some of the threatening aspects of their environments; like canaries in a mine they may be aware of legitimate concerns that are missed by their more stable colleagues."

Licensing: Comparison of FOSS licenses

Licensing is an important part to analyse before reusing (integrating a product into your product/solution/information system). Remember that nobody will "bother" you (in principle) up until you have what everyone wants: success (measured in millions is USD).

https://en.m.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses

Bigdata, Hadoop and MS integrations

Some details on MS (.Net and Visual Studio) and Hadoop:
http://www.itproportal.com/features/the-integration-of-big-data-and-microsoft-net-for-software-development/

About Hadoop:
"Apache Hadoop ( /həˈduːp/) is an open-sourcesoftware framework used for distributed storage and processing of dataset of big data using the MapReduce programming model. It consists of computer clusters built from commodity hardware. All the modules in Hadoop are designed with a fundamental assumption that hardware failures are common occurrences and should be automatically handled by the framework."
Source: https://en.m.wikipedia.org/wiki/Apache_Hadoop

Design: MapReduce Programming Model

With points of contact with MPI (Message Passing Interface) and for processing and generating big data sets with a parallel, distributed algorithm on [low-cost] clusters:

https://en.m.wikipedia.org/wiki/MapReduce

Used (and patented) by Google at some point in time to revolutionize the indexing of the WWW.

Quoting:
"A MapReduce program is composed of a Map()procedure (method) that performs filtering and sorting (such as sorting students by first name into queues, one queue for each name) and a Reduce() method that performs a summary operation (such as counting the number of students in each queue, yielding name frequencies). The "MapReduce System" (also called "infrastructure" or "framework") orchestrates the processing by marshalling the distributed servers, running the various tasks in parallel, managing all communications and data transfers between the various parts of the system, and providing for redundancy and fault tolerance."
(...)
"DeWitt and Stonebraker have subsequently published a detailed benchmark study in 2009 comparing performance of Hadoop's MapReduce and RDBMS approaches on several specific problems. They concluded that relational databases offer real advantages for many kinds of data use, especially on complex processing or where the data is used across an enterprise, but that MapReduce may be easier for users to adopt for simple or one-time processing tasks."

quarta-feira, 13 de setembro de 2017

TOOL: CryptSync (to sinc to the cloud while encrypting)

CryptSync seems to be an interesting tool (to check) that encrypts whatever you sinc to the cloud (so if you account is hacked, data will be unreadable all the same):

CryptSync - Stefans Tools

domingo, 10 de setembro de 2017

Startups: Hub Criativo do Beato (Portugal)

https://venturebeat.com/2017/09/09/portugal-is-building-a-startup-mega-campus-in-lisbon/

Quoting:
"“Entrepreneurship is serving as a driver for neighborhoods like these, and money is being redistributed into existing businesses within [these neighborhoods]. In our first year of operation at our first campus, for example, the companies inside raised over $160 million, and of course a lot of that money is being redistributed throughout the neighborhood and the wider city,” he said.

It became glaringly obvious during my call with Bamberg (who happens to be an Ashoka fellow if that suggests anything) that he and his team are deeply committed to making a wider social and urban impact than refurbishing and repurposing buildings.

“That’s of course a lot of responsibility on us as a concept, but I do believe it should be our jobs to make sure we get the right-minded people into the building and then build initiatives that go beyond closed techies meetups, conferences, and beer and pizza. What about coding lessons for kids in the district, tours of the neighborhood, trips to the existing businesses or breweries that have been in the neighborhood for years, etc. It’s, of course, a collective effort, but we [Factory] hope to play a large role in it. And I think for us we will learn a lot from this phase and hope to implement our learnings in other cities,” he told me."