Archive for the ‘Business’ Category
Left the CTO chair
Tuesday, May 26th, 2009It started as fresh air and slowly became toxic.
As a technical director, I thought I had the power to steer the technical part of my company but that revealed to be false. My father and his friend are the main providers of the software that let us work. I found it slow, difficult to maintain and evolve and not as productive as the company needed it to be.
I took the long way round and started providing the company with better systems, removing some daily problems.
And then I finally said that: We need to remake this software: why don’t we sit and choose if to start from the most critical parts that add the most value to our business or if to start from the boundaries and make the process slower but more predictive?
And nobody sat.
Not even my father.
It’s a professional and personal failure.
But it finally lets me open to learn something new, to re-join the community I left and to be have a better private life.
AsteriskNow 1.5 released
Monday, April 6th, 2009Just to forward the news, if you are using Asterisk and would like to have an integrated, asterisk-only-oriented distro, maybe in a virtual machine
AsteriskNOW 1.5.0 released
AsteriskNOW 1.5.0 is immediately available for download at http://www.asterisknow.org/downloads (existing users can run `yum update` to keep up with releases - in some rare cases, users may need to run `yum update glibc` first).
How to block websites with your internal dns server
Friday, December 12th, 2008Just create a new Master Zone with the domain you want to block.
If you are running BIND9 and Webmin as I do, that’s even easier: click on “create master zone”, in the “domain name / network” field write the domain, e.g. “facebook.com”, don’t forget to specify an email, then click “create” and “apply changes”

Behind the name
Monday, April 28th, 2008Some friends of mine have asked about the reasons for this blog name change.
It’s due to my recent frustrations about the company I work with, the quality of its developers and the vendor lock-in they suffer AND sell.
It’s a general opinion that the project I’m working on was born old. Old technologies, old tools, old libraries.
Nevertheless the architecture is quite new (the SOA thing). At the time the project was plotted, SOA was really new.
So why have they chosen to stick on old tools?
Would you use the Apollo 11 to go to Mars? Nice job with the Moon, but Mars…
Ok, this can’t be a rule of thumb, but sticking on the “Never change a winning team” mantra is just the opposite, so, to me, it’s safe to consider some middle point alternatives.
At the time I was conspiring with my coworkers, looking for ways of giving the thing some fresh air, our beloved (!?) tourism minister, Francesco Rutelli, was magnifying the italian monuments and I was thinking: “Are monuments (and pasta) the only thing we offer to the world market? Wait! I’m working with tools and libs so old that they look just like monuments!!”
So I’ve decided: no more monuments.
Technologically speaking, you can read that as “no big names” or “no corporations”.
Feasible? I’m doing it, so, yes it is. BTW, what do you expect from a penguin like me?
Migrating to linux
Monday, April 14th, 2008As you may know, I’m on a new business, that’s something like bringing a company back to the present days, technologically speaking.
Since it will be quite hard to “attack” the software part and since the technologies that I’ll use will be all open source, I’m working to give my coworkers proof about the actual value and reliability of OSS technologies in general, replacing windows boxes with linux ones.
The aim is: if it has worked when switching from windows to linux, it would probably work when we’ll switch from VB to Java.
It’s a matter of trust. If they don’t trust me, I’m not the right man for the job.
The first thing was setting up a decent networking. I’ve found an old and noisy box, perfect for such critical tasks such as DHCP and DNS ;)
So everybody now has a fully qualified hostname, with Bind caching DNS queries.
Then I’ve chopped the Vista server. Wait a minute: Vista server? Yes. It’s a Dell box, bought right after the release of Vista: it was cheap but equipped with the most useless operating system ever.
I have proof (even if it’s too long and boring for writing it down here) that it has the useless networking ever: something like a hardcoded limit of 5 TCP connections… and people cracking it to surf the web faster… can’t be real…
Well: chopped. Samba is doing the job right now: faster (and therefore more productive) and cheaper. Indeed I’ve found another old box, plugged in two brand new hard drives, set up software raid 1 and voilą: 30 megabytes is the average memory occupied.
How many Gs do you have on your Vista notebook!? Ahahah, bye bye!
Fresh air flowing
Friday, March 14th, 2008This Tuesday I began a new adventure: I’m technical director in the business company my sister has founded. The company relies on a software done years ago by another company, now partnering with us.
These very first days were not very happy.
First of all, I didn’t write a single line of code. Gosh, terrible!
Second, the whole app is a mix of VB6 and VB.NET, glued together in (yet another) data driven app where the (fluscking) db has MUCH more power that it deserves. It costs a lot to extend (because of the Microsoft licenses… naah really, don’t tell me!! I can’t believe that! … ) and is generally slow.
Third, the current team members are a bit aged and they probably fear a loss of control by using technologies they don’t know.
Quite hard to find a breach where I can place a Glassfish/JBoss/Tomcat instance. If you have advice about it, I’ll really appreciate.
In the meanwhile, my friends at Reply are struggling to get ready for the new demo. Even if I’m officially out until April, I’ll join them next week.
Last, this evening I’ve met Reply local boss, in order to find a way for the JUG Torino to use their meeting room. And they are happy to have the pleasure to host us: so they will, probably next month.
So, why fresh air? Well
- I’ll try to hire some new and skilled developers as soon as possible (read: as soon as I have the money to do that)
- We are working on expading the “JUG way” on software
- While my friends at Reply are struggling, they know all they have to do is keep on doing TDD as we did since we began working on the project (read: refactoring/fixing)
So definitely some new things are going to happen in the next weeks/months and my “Italian Silicon Valley” dream, day by day, is getting more real.
Just a dream anyway. I’m not in a hurry: I’m having fun.
Commissione Open Source 2007 alla conclusione
Tuesday, February 19th, 2008FYI: la commissione sta tirando le somme e ha messo online un form al quale gli operatori di settore possono inviare i loro commenti circa l’utilizzo di software opensource
DB: it’s a matter of balance
Saturday, September 29th, 2007It was since the beginning of my career as a software developer that I’ve seen too many devs building their so called OO apps on top of some database.
I mean those apps were nothing without a DB and things like event notifications were done (”are” done, actually) through the db: some polling task looking at a table for new things to do.
Every of these projects has a common pattern:
- they are started thinking at the database, and the objects structure and hierarchy is a consequence of the relational structure of the tables
- db fans have built a perfectly normalized db, but it is slow: too many “joins”, indexes that cannot be created because the DBAs fear the loss of speed (remember: fear is a consequence of ignorance. If you fear something, you don’t know something). DBAs de-normalize the db, keeping it in sync through stored procedures and triggers.
- the customer asks for some new feature that would have been just as simple as a decorator, BUT since your object hierarchy is still reflecting the DB structure, you realize very soon that you would need to modify a couple of different classes instead than adding one. And because you fear (fear! again) to modify your code, you ask the DBA to adapt the DB structure to your needs: and so views, stored procedures and functions start to pop up like pustules.
- step 3 is repeated ad nauseam for a whole year or so. The team is exhausted by the continous effort put on maintaining the app (that’s what I call “kick programming”, that’s stacking quick, dirty and violent solutions to small problems). Some of the older team members leave as they like to be programmers, not maintainers. Junior developers replace them, and things go worse, as a junior may not have enough experience and being new to the team means he/she doesn’t know the app well enough to keep on maintaining it even at the low quality level of the old programmers.
- I still don’t know, I’ve never seen that, but I know there is still some fifth point. Maybe the project is kept on by people who “just code”, continously patching the whole thing. Maybe the project dies. Maybe something else…
All this mess JUST because someone has given the DB more importance than it deserves.
Remember: a database is a place where you put things when you leave the office, because you’ll need them the day after. Period.
It’s a base to put data on: no logic, no influence on the project.
Have you ever thought at your desk drawer as a player in your project management or design process? I don’t think so.
Back from ESSAP 2007
Sunday, July 1st, 2007Guys, the ESSAP was amazing, simply amazing!
Maybe not everybody knows it, so let me go into the details, with a brief introduction.
What is it?
ESSAP means European Summer School on Agile Programming. It’s a 5 days course, full time, full load, sponsored by the Insumbria University, that aims to introduce the student to every aspect/method of agile software development. Defining “agile” is still not easy for me (by the way, I’ve just completed the course) but I think that I could use a couple of words to give you an hint: communication (lots and sincere), organization (time, ideas, activities), testing (at large), creativity.
Why did you go there?
When I’ve read the announcing email from the xp-it mailing list, I didn’t know what would be of my time and deadlines for the end of June, so I marked it read and forgot it. Fortunately, near the deadline for application submission, two seats were still available, so I seized the opportunity: the best invested money (a few) and time so far!
Ok, but why did you go there?
Because, both at the Milano and Torino Java User Groups, agile techniques are used on a daily basis by some active members: this produces lots of words and discussions that I’ve just listened to and that communicated an enthusiasm I’ve seen for the first time at webbit 2003 (thanks Bruno!) (Amir: do you remember it?). I’ve needed to know more but time pressure, the lots of books needed to have an hint and my few customers took me away of it. ESSAP seemed to (and did) solve such issues.
First impact: students
Agile techniques (at least in Italy) live in a niche. Probably that’s because changing is undesirable by the majority but not for someone: indeed, someone likes to change and keep on changing everything, IF that means improving. It is necessary to have an open mind: open to changing, to news, to people. At ESSAP I’ve been fueled up! Twenty techs wanted some more change, some improvement. Students? Not just students! Managers, old (no offense) and young programmers, businessmen, consultants, everything. Everybody wanted to change.
Second impact: location
Judge for yourself. Not bad, uh?
Unity of measurment: the pomodoro
The pomodoro would require a book on its own, but since somebody has already written it, just know that we set it to 25 minutes work, 5 minutes pause. Each 3 pomodori, 1 pomodoro pause.
Day zero: Sunday in pizzeria
About half students (who live apart, me, for example) came to the hotel on Sunday. We then went to a pizzeria (how many pizzerie do these fratelli la bufala own?) and begin chatting (in English, of course). Lucky me to sit right between David and Rick. After half an hour of pleasantry, we talked about books, social life, software and expectations.
Day one: Intro & Executable Documents
Monday begins with Matteo Vaccari introducing XP and Agile, followed by 6 pomodori from David Hussman e Rick Mugridge about Executable Documents. At launch break, Matteo brought salad, salami, pizza and bread. Altogether having launch in the beautiful park sorrounding Villa Toeplitz. We began chatting and comparing our business domains: in particular I met people using C# and even the old Visual Basic (it’s amazing how many customers still need traditional desktop apps: I really think RIA will raise and spread).
Day two: XP Game & Mind Maps at large
The best day, imho: right after learning how to split customer requests into user stories, we practice it with the XP Game. Really good! Perfectly scheduled!.
The day kept on with Federico Gobbo and wikimaps.
Day three: TDD and JooB project
On Wednesday, Carlo Bottiglieri gave us, with 3 pomodori, an introduction to Test Driven Development, and with other 3 pomodori we saw how to apply TDD starting from user stories.
The afternoon was dedicated to the JooB project: Matteo and the guys from Varese XPUG wrote down a basic story (a web site for search and submission of job offers). We then split in three teams, one of our team played the customer, we created a couple of user stories, assigned priorities and difficulty level, shared them with the customer and got three iterations. So, right after the XP game, we use user stories on a real software project.
Day four: Creativity and DDD (and some Rails)
My personal “best talk” prize goes to Fabrizio Milo, that caught our attention with creativity examples and exercises, not just on software. Really good!
The afternoon was Antonio Terreno’s turn. Antonio spoke about Domain Driver Design and Behaviour Driven Development, disclosing what Carlo meant by naming its test classes and methods with the word “behaviour”.
At launch break, Matteo went deeper in the Rails explanation: his introduction (done on day three) suffered some technical issues and was not effective. With 2 extra pomodori, I’ve got the needed base knowledge to (almost) complete my JooB project iteration.
Day five (last day): Retrospectives
A retrospective is what you do at the end of something (could be the project, an iteration, a week, it depends on what the team chose) and it’s aimed to understanding what went well and didn’t, in order to take actions aimed to improve the next things (project, week, iteration…). The talk was hold by Luca Grulla, scrum master. At its end, we practiced retrospectives by analyzing our week at the ESSAP.
We then had a nice nature trail (astonishing view).
Xw: eXtreme week
ESSAP was my best investment so far, with reference both to time and money (for the record, it required 80 euros, and, no, I didn’t forget a zero). Quantity and quality of the things I learnt, the diversity of the people I met, the beautiful location and weather, the green park: I’ve never had a chance to see all these things together and, someway, so intense. It was a real eXtreme week.
Even the restaurants we went to were very good.
Now it’s time for ME to practice agile on a daily basis. I know there are some techniques I can’t apply (pairing when you are an alone developer, working from home, is not easy). By the way, it was suggested no to start with every single technique, but rather to try them one by one, adopting the dogmatism these methodologies require to the team and its habits.
Nonetheless, there are things I want now, because I can see the benefits in the short term.
The pomodoro, for instance, that I’ll set as the ESSAP one (25+5). But the most important technique is the user story: working alone with small companies, it’s quite easy for some useless wishes to overcome important tasks. I’ll begin writing them down on my own, discovering their business values with some timely questions but never mentioning the word “story”. If I’ll get the desired results, I’ll bring the technique to coworkers.
If all goes well, next year I’ll make my coworkers apply to the ESSAP.
Thanks
Many thanks to Matteo, Federico, to the staff (Andrea, Jacopo, Max, Mimmo, Piero), to the speakers and to every “classmate” for the wonderful week!