3 recommendation on software management

Contractor is not an employee

Everybody knows that contractors are cheeper, hard worker and more flexible than the average employee. Is not a rare case that they are working with a 3-6 months contract for 8-10 years on the same customer. It is great for the contractor’s mood being extended so long but is not a good sign then the maximum foreseen contract is 6 months. A the end is this a good management strategy? Probably the problem needs to be found beyond the pure fact of having short contracts, however If you need somebody for such a long time, it means his role goes beyond the 3-6 months contracts.

Of course is never easy to predict what the demand is going to be but after certain time, is clear what the vision and the strategy are. Moreover what are you going to do after your 10 year’s contractor is leaving? During these years he gathered a deep knowledge on the business, on the people and on the environment that is going to be hard to replace. I would recommend to keep as maximum 5 years time after that you consider to inglobate the contractor (in Europe, after 3 years of short term contracts the employer is obligated to hire the person with a permanent contract).

In software management, is normally best practice, well used, to use contractors for development, to train new employees or to make innovation analysis on new technologies. You should not use contractors for maintenance jobs.

If you are a good manager, you should find budget to bring through your good ideas and make your contractors happy to play with new cool stuff. :)

Never buy from the same Vendor. Competition is the key to keep control

Contract management. Enterprise companies and organizations are normally purchasing services and competences from a set of limited selected vendors that have won a tender and are fulfilling certain requirements. Outsourcing: well known and widely used approach to cut costs maintaining or gain flexibility. Sometimes is outsourced only certain part of the company, sometimes most services. Budget apparently is smiling, but there are some important risks.

Especially with big vendors, there is a risk of loosing control and quality over contract. A well know practice is to request an extension to “finish once for all the product” when the budget is already finished, the deadlines are missed and you, manager, start sinking in the shit. In these moments, is always cheaper (and easier to justify) to keep the same bad quality vendor and try to really finish the project before the budget, hopefully. There are never guarantees.

Market and Competition are the key. Buy from different vendor and make them compete to deliver better quality. If you successfully make it, you will gain control and you will simplify the replacement of people, if needed. This is indeed not an easy achievement, especially because in this system, vendors always make team among themselves in order to maximize the common benefits and try not to compete.

A good manager is going to give to any company the same possibility and opportunities to get visibility and to struggle to delivery in time and with quality. After one year is possible to judge and evaluate the performances of any vendor and make a priority list in order to give more to whom gives you more.

Don’t ask or impose people to decommission themselves

Every software developer is proud of what have written. No matter what they say, this is the reality. This attitude is present in any of us, but is more accentuate on junior programmers.

If you have the mandate to rebuild or replace some legacy project or application, you should never ask to do that to people that have worked there for more than 2 years. There isn’t only the fact that we are “touching their stuff“, but we are also threatening the position they have right now. The obvious consequence is a lot of resistance and contrast on your way to get your mission through.

Asking them is therefore neither a good nor an efficient solution. Is more likely not going to work.

What is more problematic here is definitively your position: on one side you have your boss, asking you to get rid of these legacy applications and on the other side a bunch of angry people blaming you for what is happening to them.

If you want to do it right, and in time, you have to invest some money (migration are expensive, not a news). I personally would create a team (not bigger than 5 people, but depends) with basically three different roles: 1 business expert (or Product Owner), 1 technical lead and developers (50 % of them can be an offshore team after the first 4/6 months). The legacy team would be in charge of the legacy documentation, and to support the new team on the implementation. They  would communicate only with the business expert.

Bear in mind that this idea is just a rough set of thoughts, is mostly based on my experience and should not taken letter by letter, depends case by case. The message I want to bring is to never ask people to decommission themselves.

Agile #2 – Kanban vs Scrum – Myths and Truths

After an introduction on Kanban, in this second article I will try to make some evaluation of Kanban, taking Scrum as reference which is a methodology I consider myself experienced. I want also to emerge some myths and truths that are flying around. Personally I have been using Scrum for almost three years in the same project (in a definitevly non-agile organization – with all the difficulties implied). in 2011 I became Scrum Master certified.

Before start reading, be aware that this article doesn’t aim to support one or another agile methodology. I’d like to share some thoughts coming from my experience.

Let’s talk about Scrum. From Wikipedia: Scrum is an iterative and incremental agile software development method for managing software projects and product or application development. Scrum has not only reinforced the interest in project management, but also challenged the conventional ideas about such management. Scrum focuses on project management institutions where it is difficult to plan ahead. Mechanisms of empirical process control, where feedback loops that constitute the core management technique are used as opposed to traditional command-and-control oriented management. It represents a radically new approach for planning and managing projects, bringing decision-making authority to the level of operation properties and certainties.”

Scrum methodology

Scrum also define three main roles: Team, Scrum Master, Product Owner with different responsibilities and duties. If you want to know more about Scrum this page contains good description and explanation.

Kanban and Scrum, two different models, two different origin, a common goal: deliver business value.

To achieve the same goal, Kanban and Scrum use different approaches, and they can be effective on different contextes. Let’s see some myths and truth about my experience with Scrum and Kanban:

Myth #1: ${methodology} gives better visualization of the workflow and the problems can be better identified. This is not true, if the problems are not visible on the board means the board is not correctly designed. Change the board instead (e.g. add more columns).

Myth #2Scrum is harder to adopt, because has more rules and is more restrictive, Kanban is easier and can be adopted step by step. Indeed Scrum has more rules, but nobody stops you to adopt Scrum gradually or only partially. For example you could start having stand-up meetings every day. Adopting the full implementation of Scrum require just a bit more training than Kanban.

Myth #3Repeated daily meetings are part of the waste generated due to communication overhead. I think in every environment the communication is one of the failure point. The benefit of having daily short meetings is enforce everybody to be informed about what is going on in the team. Believe me, desk-mate sometimes are not talking. 15 minutes must be the maximum time for a stand up meeting for a 7/8 team’s people.

Truth #1Kanban works better in a maintenance team. In maintenance mode, the team has to guarantee a constant lead-time (time from when the ticket is open to when is closed). The input throughput is not predictable and is subject to high variability. The focus is not the delivery before a certain date (end of the iteration) on tasks coming with variability therefore Kanban is surely a better choice.

Truth #2: Scrum works better in a development team. Where the focus is to delivery incremental features within sprint boundaries, Scrum gives to the team better visualization of the short-term and final goal. Kanban has the concept of fixed delivery date, and can be adapted, but Scrum comes naturally as the best choice for this case.

We can stay talk for hours to see the differences, but the real truth is that both can be adapted to basically any kind of situation. The real problem is not the method itself but the maturity of the organization. That’s the crucial point! Maturity of the organization doesn’t mean only maturity of the management, but also maturity of external teams, procurement, test teams, etc however most of the big organizations are still behind the schedule, and they are starting slowly to move out from the old waterfall approaches.

For sleepless nights: Scrum vs Kanban:  is an interesting book, written by Henrik Kniberg that explain how Scrum and Kanban are related and can be used together.

changes, after all…

There are people that are labeled incoherents because they are changing their opinion. I’m one of them. I believe that sooner or later, everybody have to change opionion, because fact and assumption that in the past were seen in a way, are changing. This is what I call growing. 

Well, after 12 years with Linux, is time to change …  

Let’s be frankly. What I could give I given, what I could get, I got. This is the past. In so many years none of the market offers are satisfying me. Neither Fedora, so far a wretched, failed project which is just playground of Red Hat (yes, that company that claimed to have passed 1 billion $), nor Ubuntu, which hopefully will be the Linux distribution and the only one, that people will use.

This story of the distribution remember me one citation from the TV serie Lost: Die alone, live together when they were talking about stay together trying to survive. Well, at the end the distributions are slowly dying one by one … 

Is time to change. 

I don’t

I don’t give a shit if Microsoft bought Skype. Their business.

I don’t give a shit if everybody want to use alternative software. I’ve been trying it long time ago, without success.

Update 13/05/2011@11:35: thinking that GTalk is a better solution than Skype, is simply bullshit :)

I want Fedora 15. NOW!

Today I woke up and I decided that was enough for Fedora 14. I upgrade straight to Fedora 15 rawhide.

Instead of reinstalling I just update with preupgrade. So far so good. Apart for a crash in the kernel during the boot, some errors in the configuration of the Xorg, kernel panic and random problem here and there, hammering, I finally managed to make it works.

Gnome 3 looks good.

I will write something about it soon.

Cerea Fair Report – Jan 2010

Cerea is a small town, near Verona, characterized by a really huge exposition area, called AreaExpo, which counts a long series of events and expositions every year.

Before talking about the conference, I would like to talk a bit about the story of this event. Since I had the first contact and we got introduced to the possibility to have an active participation there, I was convinced on the importance of it. As Italian ambassadors we had to consider it as a key event.

Everything was possible thanks to Emanuele, friend and university mate, involved in some NPO of the area: LUGMan, Protezione civile, ARCO, etc. During MemoByte 2009, he introduced us to this fair and propose a huge Fedora participation.
I attended the Summer edition on August with Davide to have a look at the area and a better idea of the place. I was really impressed about it. Basically, the exposition area is divided into two parts: the exposition and the conference room with spots for 250 people.

The initial proposal and idea was to fill the conference room with talks during all the fair; I could say my best wish was to have Chitlesh Goorah speaking about Fedora FEL.

Unfortunately (and sadly) the Italian community didn’t answer very well (when I proposed it I got as answer only complains about the distance, the place, this and that…and so on…), so we (me and Emanuele) decided to do something lighter, less heavy (even for who organized) and with less resources required: a booth in the exposition area.

The (dream) team was composed by 5 people: Me, Alexjan, Marina, Davide and Lorenzo. The plans was to get there on Friday evening (I arrived on Saturday morning), stay there until Sunday evening. Due the impossibility to came back every night I arranged to sleep in an hostel near Cerea.

The exposition was really good, basically full of electronic, used stuff, radio amateurs, and various mixed booths. Indeed it was full of people; the organizations estimate around 10000 ~25000 people attended the event. We got also a really nice position, we were placed near the entrance, where all the people passed by after entering in the area.
A lot of people stop by and try the computers, ask questions and talk with us; statistically speaking most of them were above 40 years old, but I saw also some young people (not so many anyway).
The most common question people asked us were: “why not Ubuntu?” and “what are the differences?”; someone asked also “What is Linux?”. Next time I’ll bring a “fedora starter kit” with the most Frequently Asked Questions. :)

I really like the way we handle this event. My organization was a bit confused at the beginning because 1000Km distance are not handy but the team did and excellent job. In fact I cannot to say thanks to Stefano, who didn’t join us but did a fundamental job by helping me, like my right hand.
On my side, there are a lot of stuff that have to be improved, we manage successfully to get some CDs and DVDs (thanks to fedora) but due to some problems I couldn’t print the latest 4 foundation banner, we used the old Freedom, Voice and Infinity one.
Next time I want to design and try a new gadget concept. Instead of having CDs and DVDs I want to prepare and give a transparent plastic CD cover without a CD/DVD inside, but just information about:
• what is fedora
• how download and burn it
• how to join

Why this? Because, in Italy at least, most of the people who ask for CD/DVD don’t really need it, they need only the cover and the information printed on it.

Last but not least, this, for now, will be the last even I’ll organize in Italy. I’m now busy on FAmSCo stuffs and I still have to getting in and being more productive. Moreover the distance doesn’t help me, and I would like to see if the Italian community can walk without me.

I also decided to give my Ambassador polo, which is really big for me (I’ll get a new one two size less) to Alexjan. Like Max give to me for my involvement in Fedora, I’ll give to him because he is really doing good stuff for Fedora.
I have to congratulate with him and with all of the team, for the passion, the care and the effort they put on this event: I have to give my welcome to Marina, who will join our ambassador community.

In conclusion, this event was double worthy. Looking the relation with the outside world, we spot in a prolific (linux speaking) area and will give us opportunities to have at least two/three events per year. Looking internally we enhance our team, our relations, I believe having a face-to-face speaking was 10000 better than talking only via email and fortified your relation for present and future.

You can find additional photos from the event here.

Symbolic 1.3.0 released

Finally, after three months Symbolic 1.3.0 has been release with new cool features and new website.

Symbolic 1.3.0 has three key features:

  • Cloud computing support (virtual machines management over Cluster)
  • Machines provisioning with cobbler
  • XEN console connection through VNC protocol.

you can see it in action on videos published weeks ago:

As usually, any suggestion and/or proposal is welcome! :)