Amazon Web Services
Other day I was hiring a dedicated server. In doubt about whether choose between windows 2003 standard or web server. I’ve chosen the standard one. It has message queuing system and I needed it so much. Then stumbled at Amazon Web Services – Then I felt myself stupid. They provide Queuing services and worse – at very cheap price.
That comes as lesson… nowadays we can just architect solutions without take into account the new approach of services in the cloud. Amazon Web Services is just a sample which provides a lots of interesting services like Storage (very cheap), scalable mysql server (not that cheap but considerable if you’re really doing business) and many others.
I know there are other service providers which in my point view still needs clarify what services they provide and what cost is going to be at end. I’ve seen some services about cloud computing which always appear to be more expensive than it should. They also miss details which makes me unable to calculate exactly what I going to need.
How I would know how much processor cycles my application is going to need in month? Still not comfortable these days, hope it get better!
Code Generation Conference
I found out the Code Generation conference. Happens in Europe and sounds to be nice. They talk about code Generation and Model-Driven Software Development. The community says that the event has a strong practical focus and an emphasis on sharing experiences and knowledge and I hope to be there next year.
Automated Software Design Research Group
Lean software development demands too much automation. Of course, the idea is to make more with less and have higher quality until delivering software functionalities most important for the business. This path is hard, really hard. You’ll probably have to rethink all your gained knowledge and start developed a solid wisdom through research. Constantly looking new ways to do what you do today and improve what you think you need not.
Not every IT company will really benefit of Lean Thinking. Such style demand too much research and intellectual work which results will came along the way. You need to keep traces so to really understand the intangible results. This is expense, and you may give up in the very beginning.
I believe that the worse thing still the daily operation activities along low budget and unprepared managerial staff. People are too involved with day-to-day problems and stop everything aiming rethink their work in such advanced way can be a laborious process that can simply never happen!
Any way… I would like to present the Automated Software Design Research Group. This group explores new ways to develop software. They have a lot of academic papers (Dissertations and Theses) which can simply be applied to your life. Even if you not in Lean or Agile environment.
See ya..
Agile TechDay 2009

I was happy to be among those nice experienced agile guys! That was the second event in Rio about Agile methodologies. These one was special not just because I was invited to give a talk at the end but because the people who talked was really involved with scrum. For my surprise, rather than just agile ways in IT the principals of the Accenda Group gave a talk about Scrum in the marketing industry. They are trying to incise scrum at heart of marketing industry by doing what they call Agile Marketing. Nice approach but also a lot of people to convince!
So.. we are in InfoQ, have some pics.
Toyota side effects
On Jun 18, 2008, Reuters published an article exposing the Toyota’s human rights abuses and aggression to the worker’s rights.
The main subjects are:
- Trafficking of foreign guest workers, mostly from China and Vietnam to Japan
- Assembly line workers in Japan are low-wage temps who have few rights and earn less than 60% of what full time workers do
The auto industry has affected us so far through the Lean Thinking, Scrum and so on. In software industry, many ones are talking about Lean Thinking and how amazing we can be if we learn from other industries.
We are pround of Toyota’s managerial style which facilitate communication, avoid time-waste, spread knowledge across multifunctional teams and rush things to be completed. Now, our software projects has a good style to actually produce good results to our customers. Thus I hope the Toyota style side effect, exposed by Reuters doesn’t happen to us too. I’m really willing for the market get mature to see how this new organising will set.
u-hu-hu-hu-hu….
Read more: Toyota Linked to Human Trafficking and Sweatshop Abuses
IT professionals in Brazil must now be registered
As lawyers, the Brazilian IT professional will need to be registered in a federal counselor. They will possess a number indicating has higher level degree and authorization to work in software development and all other areas. Time experience will be considered in the initial phase.
A lot of people were dreaming about it for more than one decade. Especially for the ones who went to university. It happens that many professionals changed the degree diploma for technical certifications in a day-to-day basis experience due to the market’s steam. And most of those professionals without high level education wages equally or more than the ones whose possess the high level degree.
Apparently for these reason it is common to hear people decreasing the importance of a high level degree in favor of an indubitable “competence” and technical certifications like Microsoft, Sun, CISCO among others.
Of course time and experience rule our professional’s lives but the timeline to be a good professional might be leaned after computer science or other bsc. degree’s course.
The certifications are important too. It demonstrates the professional skills to deal with certain technical product. But that isn’t enough to make you solid through this turbulent and changeable industry.
I have a similar post in portuguese language at Cairo Noleto’s blog.
Legacy applications today
Well… today it’s common to find muticore computer. Obviously much powerful than the ones from past decades.
Business at all levels has powerful muticore computers but I doubt that most transactional business application is prepared to advantage from this architecture and actually make use of all available resource.
Doing parallel system is quite different from doing multithread system. Even the latter one is very scarce. Such models need differents structure algorithms.
Now, imagine a service oriented environment, inside SaaS ecosystem. A little bit further you migth find a candidate main service. These one we’ll be requested from many different requestors. Would you imagine how busy it will be? There’s a lot to take advantage from parellelism and concurrence but most of applications developed at moment are already legacy ones.
If you want some abstract or academically thought, try this wikipedia or microsoft side of the force.
Also, Josh Phillips is doing a very nice job at his blog.
Calling it “services”
I do believe that a language does form the reality we experience. It express the meaning of truth.
Service is an architecture term which confuses people about what they doing now. And believe, that can lead us to complexities over complexities. So understant and diferentiate responsabilities is a key approach to avoid system complexty.
I’ve seen many folkes, especially the newbie (with less than 3 years with distributing computing) calling “Service” any business logic and data access package that they build.
The image below shows us a holistic view about a hierarchical packing style which most applications are built.

What makes your service be a business logic or simple data access layer from the past architecture style? A simple word: coupling.
If your project builds the service together with the requestor application, this means that this service is coupled to the requestor application. In order to run the requestor application, the service must be in place. Otherwise they won’t work and doesn’t matter if you are using interfaces and pattern like MVC, MVP, and object injection in anyway. The project structure is organized but still monolithic.
Service means a logic (data access or business algorithms) that can be exposed to any consumer either using web services standards or with queuing mechanism.

There are different services model which can be built in a SOA ecosystem.
- Application service
- A generic category used to represent services that contain logic derived
from a solution or technology platform. Services are generally
distinguished as application services when creating service abstraction
layers.
- A generic category used to represent services that contain logic derived
- Business service
- A generic category used to represent services that contain business
logic. When establishing specialized service layers, services that fall
into the business service layer are collectively referred to as business
services. However, individually these services are classified as
entity-centric or task-centric business services.
- A generic category used to represent services that contain business
- Controller service
- A service that composes others. Variations of this model exist,
depending on the position of the controller in the composition hierarchy.
The parent controller service can be classified as the master controller
and a service that composes a subset of a larger composition can be
labeled a sub-controller.
- A service that composes others. Variations of this model exist,
- Entity-centric business service
- A business process-agnostic variation of the business service that
represents one or more related business entities. This type of service is
created when establishing a business service layer.
- A business process-agnostic variation of the business service that
- Hybrid service
- A service that contains both business and application logic. Most
services created as part of traditional distributed solutions fall into this
category. When organizing services into abstraction layers, hybrid
services are considered part of the application service layer.
- A service that contains both business and application logic. Most
- Integration service
- An application service that also acts as an endpoint to a solution
environment for cross-application integration purposes.
- An application service that also acts as an endpoint to a solution
- Integration service
- An application service that also acts as an endpoint to a solution
environment for cross-application integration purposes.
- An application service that also acts as an endpoint to a solution
- Integration service
- An application service that also acts as an endpoint to a solution
environment for cross-application integration purposes.
- An application service that also acts as an endpoint to a solution
- Process service
- A service that represents a business process as implemented by an
orchestration platform and described by a process definition. Process
services reside in the orchestration service layer.
- A service that represents a business process as implemented by an
- Task-centric business service
- A business process-specific variation of the business service that
represents an atomic unit of process logic. Task-centric services are
different from process services in that the process logic is provided by
the underlying service logic, not by a separate process definition.
- A business process-specific variation of the business service that
- Utility service
- A service that offers reusable logic. This category is primarily intended
for the classification of solution-agnostic application services. However,
it also can be used to refer to reusable business services.
- A service that offers reusable logic. This category is primarily intended
- Wrapper service
- A type of integration service that encapsulates and exposes logic
residing within a legacy system. Wrapper services are commonly
provided by legacy system vendors and therefore frequently introduce
non-standardized interfaces.
- A type of integration service that encapsulates and exposes logic
That was just an overview I’ve taken from Tomas Erl’s book Thomas Erl – Service-Oriented Architecture (SOA) – Concepts, Technology, and Design (2005). There’s no doubt that you should read the series so you can fully understand what SOA means.
Lean Principles
I wanted to show lean principles as something I stand for. So I did use the html structure from Przemysław Bielicki blog as she also copied the principle from Tom and Mary Poppendieck’s book too.
All Over the World
All over the world,
There’s more than meets the eye
land and sea to share,
red yellow black and white
All over the world,
There’s darkness and there’s light
sad stories are told
But it’s good to be alive
Spy Vs. Spy

