On DocumentationIn my career I’ve seen lots of teams struggling, not only to get their software out of the door, but much more often (even if successful in the previous step) to have a decent level of documentation next to it.
Back to MonolithsSo Amazon Prime Video (of all people!) published a blog post about how they’re returning to monoliths, relayed by DHH, generating lots of noise, to the point that even Dr. Werner Vogels himself, CTO at Amazon, had to pour some thoughts about the subject.
Microservices or Not? Your Team Has Already DecidedLet’s take a somewhat tangential approach to the subject of the Microservices architecture. Most discussions about it are centered around technological aspects; which language to choose, how to create the most RESTful services, which service mesh is the most performant, etc.
Notes About "Cloud Without Compromise"I’ve been reading “Cloud Without Compromise: Hybrid Cloud for the Enterprise” by Paul Zikopoulos and Christopher Bienko. I think it’s a brilliant book; concise, easy to read, funny, and a great resource for non-technical people who would like to understand how the modern “Cloud” works. Highly recommended.
Kubernetes for Non Technical ReadersIf you work in the tech field, the word “Kubernetes” is all over the place these days; for those new to the subject, it can be very confusing to understand what it is, what it does, and why it is so important to so many people. In this article I am going to try to go top-down on the whole Kubernetes thing.
Removing SingletonsProblem: your code has a big badass manager class with a singleton interface, and you would like to have more flexible, testable code.
Refactoring iOS ProjectsPresentation given in Dnipropetrovsk, Ukraine, on July 16th, 2016. In this session we are going to learn simple yet effective techniques to refactor large iOS codebases in order to make them more testable, to adapt them to be eventually rewritten in Swift, and to make them as “future proof” as possible.
Cocoa is the new Carbon: the Future of Apple’s Beloved FrameworkIn this talk, Adrian will provide lots of speculation and highly arguable unverified gossip, about how the design of Swift will lead Apple to redesign Cocoa into new directions, and maybe replacing it altogether. Some code examples will help him defend a point that nobody outside of Cupertino can sustain for sure.
A Proposed Architecture for Network-Bound iOS AppsOne of my most popular answers in StackOverflow is the one I gave to the following question: “What is the best architecture for an iOS application that makes many network requests?”
Saving a Failing ProjectIn 2006 I had the opportunity to work as a “project leader” into a small failing project. Three developers were working in an ad hoc basis, creating a software application for an important client (a government office in Lausanne), without any kind of detailed formal specification, without any kind of design documentation, and with strong pressure from the management to release the application, even if not in an usable state. Needless to say, the project was also beyond budget.
Django Architecture ApproachesI’ve just had a very interesting conversation with my colleague Marco about different approaches to the organization of code inside a Django application.
Factors of Software Project QualityI strongly consider that the following three items are of high relevance for software project quality:
Design by ContractEven if Design by Contract is a trademark (Eiffel Software, 2007) the idea behind it is the more general one of “defensive programming”. As software developers, we often concentrate our efforts in the main code of the application, which is the interesting part, and that provides the realization of the use cases identified during the early phases of the project.
Web Development is Software DevelopmentI have been developing web applications since 1996, and I still do a fairly large amount of web development nowadays. During these years I have seen some common misconceptions and myths about web development, that ultimately have a direct impact in the usability of the system. I will outline these in this article, providing at the end my opinion on how to achieve a proper QA process.
AOP and the DataServices ProjectFive years ago I worked as a Software Engineer for a startup, based in Geneva, Switzerland, which had the goal of creating a web-based systems management console, to control and monitor the status of large computer installations, much like Microsoft SMS (Systems Management Server) does. This tool would eventually benefit from being a web-based application, and as such it could be used from anywhere, without having to install a “fat client”; just launch a browser, point to a particular URL, and you are done.
What Will the Software Architecture Discipline Look Like in 10 Years' TimeThis is a tricky question; after all, Bill Gates himself published a book in 1995, “The Road Ahead”, where he only slightly talks about the World Wide Web:
Inversion of Control, Ruby and RailsNext week I will be in Belgium working with the Thales team in Brussels, building a new software solution (for a customer of the public sector that I cannot disclose here) using the following technologies:
About code and eggs - excuse me?The purpose of this article is to show that the current trends in software development owe a lot to ancient mindsets, and that some good old Object-Oriented Programming (OOP) programming constructs are no longer accepted in modern business development scenarios. It serves also as an introduction to Service-Oriented Architectures (SOA), putting it into context of what has been done in the past, and what can be done in the future with it.
MDA, Thales, Nestle, and MicrosoftI haven’t blogged for a while; I must admit that this has been a busy month. In fact until June I will be working inside one of the biggest companies on Earth: Nestle. My task, as a Software Architect, is to set up the overall architecture of a worldwide, distributed application, whose details I shall not lay down here (for I have signed a non-disclosure agreement). But I can say that this is, by far, the most exciting time of my professional life; this architecture is already the biggest challenge I have ever faced.
Cours Sur Architecture De SoftwareHier j’ai eu l’opportunité de donner un cours sur Architecture de Software à mes collègues de Thales. Pour ceux qui le souhaiteraient, j’ai joint à ce message le fichier PowerPoint que j’ai preparé pour l’occasion.
About Software Architectures and the IEEE 1471 StandardLooking for information on the topic of Software Architecture, I came accross the IEEE 1471 Standard, the “IEEE Recommended Practice for Architectural Description of a Software-Intensive System”. I must admit that I had never heard of it before. And I think there is a reason for this.