Posts

Agile Retrospectives as Rock Band Show

Image
Agile Retrospectives to me are like rock shows. So really depend of the moment and really happens this way for me. Like a rock concert depending of the moment you want to mosh or just be nice and relax or be happy and sing with the crowd. For me software development is like music, so there are moment where things are more calm, other moments are more like a rush and other moments are just transition between moments. So what are the moments? It`s really depend on how your team work and what you do, but lets say classical software development and see kinda of 3 big moments. This are not phases like you might think in RUP, but are not that different ideas, i like to think this trough the music so are kind of different rhythms or moments of a single song. So when you do the agile retrospective first of all you need to acknowledge with moment is the current one, it could be a combination of several things but it definitely will have a kinda of weather on the current moment the t...

Inheritance + Mixins *with* another solution

Image
In previous post i was talking about some alternatives to classical IoC/DI. I`m not here to argue whats bets or worst, the 2 approaches have advantages and cons. Most classical OO languages like JAVA and .NET tend to fix things at runtime. Java for instance all happens in runtime, spring context. JSF context, Hibernate/JPA context, reflection(memory), CGlib, proxies, etc.. In FP languages that are children of haskell like F# and Scala things tend to happen as much as possible close to the compiler and thats has good and bad things like everything in life. In java or .NET you dont have multiple inheritance like you do in C++. So another approach would be do inheritance and work with the ideas of Modules. Some people call this: Thin Cake Pattern, for me is just multiple inheritance with syntactic sugar. As long as you do it only for classes/traits and dont do it for values i think is ok and IMHO cleaner than the cake pattern.

Pure OO, Inversion of Control(IoC) + Dependency Injection(DI) and The Cake Pattern(FP): Whats really matters?

Image
Software development continues to improve, once you add new languages, design concepts, paradigms(like functional programing) we start having new ways of doing things, so whats really matters? should i change somethings and embrace everything or should i change nothing? In this post i want cover something if you was java developer was the central idea around java development for years. Spring Framework dominate the fields for more than a decade. The real question is not if  you should be using XML or annotations(like Guice ). Either if you should go XML or java Annotations. Thats kind of old discussion, so basically what are the options now a days?

SOA has Roots in Agile and Functional Programming

Image
SOA it`s about software architecture so its about an overall solutions for a business.  Thats what the 'A' stands for. Behind this we got Service Orientation as the main paradigm of doing some, its a way of thinking and it has principles like OOP, FP and Agile. SOA got popular around 2k years when business was moving to more complex functionality and more and more data. Them it came several buzzwords and vendor-like things, but soa was never about technology was always about principles and a specific way to think, see and build things, the service orientation. To capture this view a group of awesome people created the soa manifesto .

Streams, Map, Reduce and Filter on Java 8

Image
For me this is one the most cool things java 8 got in sense of functional programming. This allow todo real functional programming with great benefit for legacy code, not only because we got modern constructs but also because you can reduce a lot the lines of code. The things i dont like in java 8 is that we still need some kinda of structure / definition thats a little bit heavy or not that natural like it is in scala or clojure but thats is something i guess we can live with it.  The other thing is the fact that immutability is not forced as much as we see in other languages the reasons are kinda of obvious it because java needs to respect they backward compatibility rules, whats great because my code can keep ruining into java 8 without any change or a i can embrace this "new" ideas and functional concepts and start taking benefits from it.

Whisky Engineers, please!

Image
Whiskey is great booze. Besides that it has a property called maturity, so basically in this concept as old it get as better ir gets. So you have 8, 12, 18, 21 etc..  This is well recognized and people value that. Software development is more see as shit cheap Brazilian wine, you dont need better than 2 years old and actually if you let ir go older than that it got rotten and start getting worse instead of better. In Brazil Y career  are very popular and basically like in all parts of the globe everybody wants to be a manager.  Whats the problem with that, well for me none but its create some effects. In this life good things came with time, dedication and learning you dont great an awesome whisky in 2 years you need a least 12. Tell me how many developers you know that ave +15 years of experience in the field? It`s sad, as you start getting some level of maturity you are totally pushed by the system and need stop coding and spot being technically. Because peopl...

Functions, Method Reference and Predicates on Java 8

Image
Back to some cool stuff around java 8 and functional programming ideas arriving on the JVM with java lets see some other cool stuff around Lambda. You can define your functions with a java.util.function.Function interface that allow you to store lambdas in "objects" and receive and pass it trough methods, so this allow you do high order functions. So lets go down to the code and see some samples around this. There are some samples i coded here with streams, i will cover with more details on other posts.