Software construction

In my voyage from a simply Software Engineer to a master in Software Engineering I’m reading several books. Thus, I’m posting in this blog whatever thoughts appear in my mind about Software Developing. I’m several chapters in Code Complete 2nd Ed. of Steve McConnel and I’m amazed by the knowledge that it contains. As time goes by I will update this blog with more information about my findings. Specially I’ve been struck by one basic principle: Software construction is the only activity that is warrantied to be made in a software development project. [Read More]

Peopleware

I’ve just finished reading Tom De Marco & Timothy Lister’s Peopleware and I feel like this book should be recommended to all new Software Engineer graduates. Let me put some light in this matter. I’ve been working for 8 years in a startup and none of my formal education in the University prepared me for what I was going to experiment. Software Engineering is a social discipline (we work in teams) but in my Computer Engineering degree1 there are no management or organization courses. [Read More]

Progress towards and engineering discipline of software by Mary Shaw

Several days ago, I watched this videotalk of Mary Shaw that tried to give an answer to the question is Software Engineering an Engineering discipline yet? Dr. Shaw makes a parallelism with Civil Engineering that started as a empirical discipline and, thanks to strong scientific foundations, evolved to what we could call full engineering. Software Engineering is not there yet. It needs more work and professionalization. Many of the so-called Software Engineers have no software engineering knowledge and/or skills and therefore software disasters happens. [Read More]

Concurrency and third party libraries

Last Friday, one of my mates had a strange error in his code: incoherent an unrepeatable results arise en each execution. His code (Python) was concurrent code and each thread used several libraries (BeautifulSoup41 was one of them) which they were not thread-safe. What does it mean? It means we cannot assure that atomicity is achieved in some operations executed by the threads, effectively sharing some data that must not be shared. [Read More]

Managing clients

The Players It’s not a secret that software engineers prefer a clean and completed specification than meeting with clients. We tend to think that meetings are a waste of time and many of our colleagues are not very fond of what is called soft skills. On the other side, we have some clients that have no idea about software and want the changes in their platform now. What is all of that? [Read More]

Real software architecture

Simon Brown is an independent software consultant from Jersey (UK) and gave this talk about Software Architecture in GOTO Amsterdam 2014. This talk delights me in several ways. First, Simon show us several common problems that happens in many software companies: diagrams of the software are not synchronized with code because. That is, we design some type of software architecture but we don’t follow our own path when coding. [Read More]

Back to basics, the mythical man-month

Frederick P. Brooks is what I’d call a true pioneer. Without any existing knowledge and only his own experience in the “tar pit” (as himself call this software development world), he distilled some universal truths of the Software Engineering world. So, the Mythical Man-Month is a summary of his ideas. This book is a night stand book, that is, you cannot hope to end it in a few days. You have to read slowly, thinking as a 60s software developer, with their limited tools and machines to fully understand this book. [Read More]