22 January 2013
I think myself as a philosopher of software engineering - looking for the truth in a methaphisical world of ideas and shapes.
I like working with people. But I'm not a social person. I prefer a quiet morning camomilla tea with a book in the office caffeteria then being outside and shooting breeze with my colleagues. Thus I find my self at a crossroad when I try to figure out my self in relation to my job.
My job has two dimensions.
One is a dimension of people and emotion, of tought and word, of smell and touch of ideas and egos. A world of chaos and entropy populated with - well, us humans or developers, IT people and managers all struggling like primordial cells to create something greater something in the face of constant enthropy.
The other is a world of clear shapes and vectors and models and pure crystalline tought. A world of boxes, layers hexagons and numerical formulas given shape inside our collective hallucinations, out matrix, of the systems we are trying to build, to document to give shape.
What am I? What do I actually do.
I just talk to people all day. I write documents all day. I draw diagrams all day. I write code all day. I dream stuff all day. I'm Ada Lovelace's son. A software engineer.
The truth is that I'm not really sure what I am. I think I'm searching for the truth. A unique way of developing software, the ultimate architecture - our silver bullet.
Brooks said that there are not silver bullets, there is not a perfect solution which will work for every project. I know that. I belive that. But still I carry withing me a germ which tells me to keep looking, to keep working on the perfect ultimate architecture.The perfect way of constructing software.
Software is all about people. In order to build the perfect architecture I need people. At least I need my self. And I'm not perfect. I go hungry.I get sloppy. I forget. I make mistake. I swallow the shame of dirty code and make out stories of better futures to hide out my mistakes from the dream of perfect ideas I constantly have.
Code is dirty. C-O-D-E is a four letter world. Code is not perfect, code is limited. You cannot represent the metaphysical with words and numbers. You can only try and fail. It is why so many of us quickly forget our past projects and greedily go to our next adventure. Next time will be better. But it never is.
I keep missing something in this mix of juices and ideas that we call software engineering. A deep idea, a connecting string. The ultimate truth.
A silver bullet. The all god spark which will give meaning too all there is and ever will be. From the first loop that counts time written ages ago to the modern fast growing, ultra delivering systems of modern ages. Did developers of old knew something we didn't. Was software better in those days, more pure or was it always the same low level struggle from near emptiness to almost complacent skillfulness.
Code is like love, it is like work. A four letter word. It catches you and carries you unaware, you want it, you need it, you dream it and then you want nothing more then to run from it like the yesterdays girlfriend you are ashamed to wake up beside in the morning.
But like the proverbial secure bond of a known partner we come back to it and try to fail building perfect hallucinations of perfects forms with stone age tools and human minds.
What about God? Is he mad at us for dreaming new worlds, trying be like him. Like a Creator? Maybe we are just cursed, never destined to succeed. Always trying, always failing our sweet silver bullet always around the next corner. Oh, how I search for it so.
25 December 2012
We woke up at eight. It was a warm Christmas morning. Nice and cozy, a proper morning.
The city of Pula was covered in a light, calm fog. It was warm for December and it was quiet. Sven and Tijana had breakfast before me.
As I was eating my milk and cookies they started dancing around the room. My family loves to dance. The five year old jumped and swirled all around cradled in my wife's secure hands.
My wife was a dancer in her youth and it still shows in her elegant and delicate movements.
The most important part of the morning is down stairs. A real, living, Christmas tree with all the blinking lights, crystals balls and presents for all.
The entire extended household grouped together and we shared presents. Then my mother in law , who I love dearly, ushered us outside the house to make do by our selves on the oh, so warm, streets of Pula until lunch was so well and ready.
We went to the city. The streets were empty. The church of St. Antun was completely covered in fog. We only saw a glimmer of its tall white tower. Our car raced down the Omladinska street in a really gentle slope. The town was empty, there were not many people on its streets.
We found a parking spot near the Istrian National Theatre and the proceeded on a slow walk from the town market, trough the golden gate and Sergijevci street towards the old Roman forum and my loved temple of August in the historical center of Pula.
Later we progressed towards the harbor where a new citizen only riva was being constructed. The city was so calm that we stopped at the ACI Marina for a cup of coffee. We watched sea gulls and other sea birds glade slowly into the calm harbor waters, catch fish and eat it.
It was wonderful.
On our right we saw the church of St. Antun hiding behind the magnificent roman coliseum. On our left we saw the Mayer villas a set of high end apartment buildings built before the second world war by the Trapp family portrayed in the famous Hollywood film “The sound of Music”.
As a piece of trivia some members of that family are buried in the Naval cemetery of Pula.
The return trip to our car was beautiful. We met several family friends and talked to them and the we went to the Verudela peninsula were an ice skating court was set. There my loving son Sven took his feet for the first time to the ice helped by my wife as I filmed and photographed the events.
20 December 2012
Aleksandar walked down the old roman street. Renaissance buildings loomed around him filled with shops and dolceries. The street was filled with people both native and foreign to this old city from Greek myth.
Aleksandar was too busy to notice what was going on all around him. The street was named Sergijevci. A noble important family which stuck with the first Roman emperor and helped him defeat Cleopatra and Marc Anthony in the naval battle of Actium.
Behind him the Golden door of the Sergiai family welcomed more people in the streets ancient womb.
The unemployment office was glass building set between the social security office and a computer shop. Aleksandar paused there to look at open positions posted on its crystal walls and read those focused on software development. Behind him children laughed and played in a playground filled with centuries old roman stone sarcophagi.
A men approached him from behind. He was older, thin, neatly dressed in an official sort of way. He stood beside him and studied the same open position as him , that of a lowly developer in one of many small software companies located in Pula.
“I think I’m going to go to work outside the country”, said the man.
Bored Aleksandar said, “Why, what is wrong here?”
“It is hard to find proper work, the money is not so great for us and people out there know how to work and pay a man. I have a friend who is a foreigner and his lives here, he is married to a local girl and he says ..”
“.. that he is shocked and surprised at out mentarly, how our government works, how people work and where he comes from is completely different and better and we are yet to achieve that level of perfection.”, Alesandar finished for him.
Aleksandar was irritated by the old man, he heard the same spiel many times and something always chaffed him about that. Now he finally got it in a flash of inspiration.
“Oh, yes. That’s exactly that”, said the surprised old man. “I mean isn’t he right?”
“Of course he is right. He properly should be.”, said Aleksandar. “He comes from an another country, from another language, another history , another culture and another set of genes. But what is wrong is that we automatically assume that we are ‘wrong’ and he is ‘right’!”.
The old man looked at him quizzically and asked. “What do you mean?”.
“Why are we under developed, what is wrong with us and our system?”, asked Aleksander and then continued. “We are ten years from a war, the world is in a recession and we are struggling. But people are generally content, people try and learn to work and improve them selves. The law protects workers rights and we are covered for health insurance. Each of us speaks several languages per default . I speak three of them not including my own. I’m well versed in culture, history and sciences. And I’m a highly qualified software engineer not under qualified work monkey.”
“But surely you do not forget the problems out system has with long waits and byzantine bureaucracy?”, asked the man irked.
“No! But every country has problems with its system and everybody struggles in some way and then everybody chimes theirs is better. All, except us.”, said Aleksander. “My point is that we are not the ugly step child of Europe. We are not worse then everybody else. Out engineers are talented, work hard and work long hours and go to great lengths to satisfy the client. The clients I worked with were all satisfied with out work.”
“Well then I see I have your options set”, said the old man. “I bid you good bye then. I have trip to prepare.”
With that the old man tipped his head, turned and walked in the direction of the old austro hungarian ship yard.
“Bye.” , said Aleksandar.
He stood there a few moments. People passing around him. Some searching for work, searching for a better future and others going on their way to their place of business. There were a lot of lawyers offices and local official buildings in the area.
Aleksandar shrugged and turned around In the opposite direction the old man left towards the forum of the city to glance to the temple of August and rest his thoughts on the city Julius Cesar built.
17 December 2012
I love my family doctor. She is the best there is. What I hate is when I need to go to the hospital to do specialized exam or a checkup I need to carry with me a big wad of papers and for each new (or re -new, since docs forget you the minute you leave) I have to tell my sick story in about two minutes.
If I would be so lucky for my story to get there. If I need to do some further checkups I then need to receive signed sleeps from the currently visited doctor, or go back to my original doctor with a written diagnosis/opinion for sleeps for new doctors, thus adding to the pile of papers I need to carry around with me and then I need to send an e-mail (from my home) with scanned medical sleeps and then wait for a couple of weeks or months (the waiting is an endemic problem, and necessarily part of my rant) to get to a doctor who will not know anything about my condition, will not read or will read briefly my papers and will listen to me only for two minutes.
What I would like to have is a centralized national patient system where all patient data are stored centrally available to all medical professionals trough secured web services.
No carrying of paper work.
Automatic registration and list entry for medical services.
Every doctor will have a tip of his fingertips all my medical history.
I will finally have a fully recorded medical file (do you really think I go back to my doc with all the pieces of paper I get and she then retypes every sentence of every paper).
Some progress was made when the health ministry introduces on-line drug recepies. Which is a really neat thing. I go to my doctor. She types into her medical application, I get up go to any pharmacy flash my health insurance card and get my meds. No paper work, no talking, everything done transparently and paperless. What a saving in paper only that is.
I would really like for every service provided by government functions or activities requested from citizens to be either exposed as web services for people to build applications for (like Facebook applications or tweet decks for example) or to provide on-line web applications for me to use.
If for example I need to pay for a document to be printed, why can't I flash my bank card login to web page type my request, card info and e-mail address and then wait for an e-mail notification which will tell me where and when to just pick my paper or god forbid pay extra for mail delivery if I'm not in a such a hurry.
The Croatian ministry of finance did a really great things this year. They will force every cash business (e.g. a business which receives cash for products or services rendered) to register each transaction via a web service with the tax department which will in turn send back a unique transaction code which will be printed on the receipt given to the consumer or client of the selling company.
Now a lot of software and a lot of companies will need to crunch new software to comply with this specification. A great win for the software industry in Croatia, thank you government!
Another good thing it will force companies , imho, to standardize on common domain elements in their systems (does it really make sense to have on company object created in every application when you are required to send a company object to the fiscal service, or a bill?).
What if all government elements would work like this. We could also have open source components for common integration providing all the domain objects requested by those services. So no longer multiple bill and company or point of sale object, or patient, or doctor or whatever; the government non-intentionally may have stumbled on the read to standardize the Croatian software industry.
For example I really can see someone creating an open - source project for financial ministry web services. It would be easy to write , the services are not that complex, and could really boost the market and production. Need fiscalization, get the library , customize it to your needs and carry on with the business.
Heck, why do all the fiscalization affected companies even rewrite the code to access the services. Why not write once and provide for free or for a nominal fee.
Why doesn't the government provide such libraries. It would really easy for the company that wrote the fiscalization services to crank a library in all the popular languages (C#, Java, PHP, Python and Ruby) which will provide common client features with it (domain objects, functionality for all scenarios, catalogues for integrating with the service).
Here are some links to files related to the fiscaliazation process:
14 December 2012
Is it proper for my ninetieth post to be about a talk I held today at the monthly MS Community Istra gathering on the topic of "The Lean software development process"? I don't know but well it was a wonderful evening.
There were some news around it. It was the first talk I held as an independent consultant since I left Labirint/Cenosco earlier this month.
And second it was the first talk I held by using only my browser as the presentation medium using the amazing Prezi service and YouTube. Prezi is presentation re-imagined, it allows for a more dynamic and spacial orientated presentations and is easy to use. You can see my work in the frame above this text.
There were around twelve people present which was nice. I started the talk with some ground rules and my estimate how long the talk will run. I said one hour and half, it took me one hour and twenty minutes.
The talk was broken into four sections :
- Lean and muda
- The cycle
- The steps
- The practices
10 November 2012
Video Maker - Powered by GoAnimate.
As I wait for my one hundred twenty projects long solution to load I pray the Lord for my soul to keep.
As I dream of complex code, loops, functions and classes, patterns and database I reach for Hermes the god Alchemist and inventors in my hour of need.
I no longer can reach the dream of perfect machinery
I no longer can feel the systems beat
It is one long chain of stack overflow, exceptions and performance pits
No tests to speak of, not builds to rely on
Just one long, long evening of darkness and despair of enterprise code ready to be released
It is time for me to step down, to reach my bottommost level and open my snail farm on a far away island
Is it is not that the future that awaits us all?
Hermes doesn't respond
My soul is mine to keep
The solution is loaded , all one hundred and twenty projects long
The code is green and blue and yellow and red
I start pounding my keyboard
I start building my code
It takes a moment for the grid to pop up
For the exception to raise I fix the problem
Release my code I go home happy, ready for tomorrow to do it all again.
01 November 2012
In software development as a culture there are multiple personal and organizational styles of development, process and project management.
What happens when a person , an engineer, switches from an organization which favors one style to an organization which favors another?
Usually there are two very negative responses which just popup continuously:
- Shock and negation,
- Aggressive takedown of the alien style
In my experience you can expect them from senior engineers who recently switched from one culture to the next. I’ve always waited with apprehension a new hire to see if she is going to throw a ruckus and put everything up and down or is she going to integrate into the process and contribute normally to its advancement.
I’ve seen people shockingly negating the new mindset and creating grief to everybody around them until they either accept the new state or leave. Of course I’ve seen people who continued to push their style onto others until it infiltrated certain parts of the project (have you ever heard bout this : “Hey why is this code in a different style then the rest of the application, don’t you guys have an architecture?” and the response “Yeah, that was Ivan he is a bit strong headed about some things, can’t do nothing about that.) and created a mess which just increased the maintenance cost of the project. That is not really good.
I’m a long time listener of the Manager and Career Tools podcast. One of the podcast I’ve listened to in the last few months is about your first six months in new job. The core idea was “do not make waves in the first six months”.
We are all engineers here, we want to improve things make them better. Something's in the new project, new organization are wrong or not optimal and can be corrected. But some aren’t. How can somebody figure out the difference?
So many times I’ve participated or seen arguments of a technical solution which just boiled down to individual preferences. Both solutions fitted the problem well. And then escalated into flame wars.
What I’ve learned is to pause and think: “is this a real problem, or just not my preference”.
Usually people are more receptive to solutions how to solve a problem then they are to changes to their preferred style. People do not want needless change, we all want our peace and quiet. We don’t want to pick a new style, we want them to use our style for better and worse.
A funny cartoon I've created about the problem:Space coders - the enum battle by Nikola Stjelja on GoAnimate
Video Maker - Powered by GoAnimate.