Is the SCM system an agile developers' enemy?
Tools are built using a model of the environment they are intended to work in. Waterfall'ish approaches assume that programmers write code, check it in and then changes are managed and controlled. The assumption is that all changes are inherently dangerous and need to be watched closely.
An agile developer works completely different. As agilists we create and change interfaces, classes and methods as we see fit while we refine our data model and the operations through constant refactoring. That sounds like a nightmare to a person used to change management - doesn't it?
Currently I have to use Perforce SCM and I'm starting to get annoyed by the way it works. All the files are read-only by default and you have to tell Perforce when you want to edit a file. The plugin for Eclipse seems to be doing this in background for you, but it doesn't always work. So you end up with files that stay read-only and the process of moving an interface or class to another package gets abruptly aborted. Then you have to spend some time fighting the tool until it allows you to move the compilation unit.
Tools should not get into a developers' way. Change management of source code is the wrong approach. You can manage changes on configuration files (say the configuration of a Cisco router), but not code that's actively being developed. So a developer should be allowed to edit, delete or move around any piece at any time. That's the way it works with Subversion.
Silicon Valley is looking to do business in Latin America
Yesterday night I attended a meeting of SDForum with a focus on Latin America. The meeting was held in Palo Alto, California, near Stanford University.
People talked about the opportunities for selling software based services to Latin American consumers and about providing outsourcing services from Latina America to US corporate customers.
Most attendees agreed that the protection of intelectual property is usually weak in Latin America, as it is in most developing countries including China. Unlike people in wealthier countries nobody wants to pay more than a months salary for the right to use software when it's available on the street for the cost of a CD-ROM media. So selling copies of software was seen as a difficult venture. Instead attendees thought about selling software as a service via the Internet or even via cell phones. Some believe that the cell phone might be the better platform than the computer as it's cheaper to purchase and maintain. Others remarked that in Latin America most computer users are actually using them in Internet Cafes for the cost of about USD 0.50 per 30 minutes.
What seems to work well is the business of providing outsourcing services to US companies. There is no problem protecting intelectual property, because the outsourcing company will respect its client's rights in order to stay in business. And most of Latin American countries have laws in place that protect IP. Theoretically a company can get sued and shut down. The same laws apply to consumers as well, but probably noone will try to enforce such rules against poor people.
My personal impression is that most attendees have very weak knowledge about what the situation in Latin America really is. They have some vage ideas about the level of education and the economic realities. Most think of beautiful landscapes. But they are interested and are looking for places closer to home (for North Americans) to purchase services. It seems that more and more people are realizing that the most prominent outsourcing destination India is not without difficulties. Latin America is mostly within US timezones and flights are reasonably cheap and travel time is only a couple of hours without jet lag.
Windows dominates Linux due to piracy
Ever wondered why Windows is so dominant in developing countries? Have a look at this statement from Bill Gates himself:
Today Gates openly concedes that tolerating piracy turned out to be Microsoft's best long-term strategy. That's why Windows is used on an estimated 90% of China's 120 million PCs. "It's easier for our software to compete with Linux when there's piracy than when there's not," Gates says. [...] Indeed, in China's back alleys, Linux often costs more than Windows because it requires more disks.
The same can be observed here in Panama. Everybody uses Windows and most of the times it's a pirated copy. Linux users are not found easily. It should be just the contrary. Maybe in a future post I should elaborate a bit more on the opportunities that arise when people in developing countries use Free Software and Open Source software instead of committing crimes out of laziness.
How to really help Africa?
That's so true. Trade has always been the solution to conflicts and the resulting damage from it.
Check out this great talk by Ngozi Okonjo-Iweala - How to help Africa? Do business there.
The architect role in Agile Development
In software development everything is about design. Every software developer needs to be an architect, a craftsman and sometimes a simple laborer as well. There is no room for a dedicated architect role. Instead what agile teams need is a coach or a mentor. Someone who has long-term experience, who has seen many fashions come and go, knows what others have done before and possesses very good analytical skills.
Comment on Cultural Sensitivity and the backlash of having none
While reading blog comments on Boquete Guide one got me thinking. When you live as expat in another country you might become an invasive species destroying the local fabric of society and the local economy due to the fact that your economic power stems from the outside and was not earned within the local economy.
These are a few lines from the comment that made me think twice:
Here goes an idea for you all…do not become an invasive species instead, coexist with the locals and teach them the best of the place that you come from. I know you talk to your rich Panamanian friends and they advise you to pay low wages—because if you don’t it affects their labor cost. Well if you know enough about Latin America then you know the huge difference between the rich and the poor…
It goes something like: the rich eats a $50 per person dinner while the poor has to pay for: food, housing, education and all their basic needs with a $50 a week salary…and that is very un-American,
wouldn`t you agree.
What Anne says about the huge difference between the Rich and the Poor in Latin America is definetely true. And this very difference was probably one of the reasons why the poor in Venezuela elected Hugo Chavez as their president. The other reason might very well be the fact that middle class and upper class people frequently let the poorer people feel who commands, which is sad and in my opinion not very forward thinking, as over time it may turn against them.
But you can't change a society, an economy over night or by essentially donating to the poor paying them higher wages than the going rate. If lots of people do that, then the result will be higher prices for everything in that particular region and the poor stay poor albeit on a slightly higher level - the numbers will have grown, but not the value.
Instead the key in my opinion is education. Educate the children of the poor so they won't have to suffer, can take better jobs than their parents could and you will be en route to a raising economy with sane growth. This is substantial and not an inflated bubble.
I'd like to show a simple example. In Panama - and probably the rest of Latin America as well - a dish washer is a rare household item. While in Europe and North America you can almost expect one in every household's kitchen. The reason is that it's simply cheaper and more flexible to have a human do the dishes instead of using a machine that needs to be purchased for the equivalent of a local salary and needs maintenance. The human is so cheap and flexible that you would feel stupid to buy all the usual machines for your kitchen. And think about the effect of not employing someone. From what will this person live instead? You may not pay much - not much for you -, but it's something these people usually live on.
Now imagine you equip your house with all the machines and other stuff you are used to. Do the same with your garden equipment. And then you go ahead and employ people who have been raised in wooden shacks, have no idea about how to operate a washing machine to wash fine clothes, a dish washer, how to activate the cleaning mode of modern high-tech ovens. And don't forget that these people usually don't know Teflon coated pans and pots. The same goes for the gardener who knows a bit about plants, but doesn't have a true understanding of whats going on in the soil and how to combine plants to combat bugs without using pesticides. Would you still be willing to pay significantly more than the local going rate?
The amount of money someone gets paid depends directly on the value he is able to provide. Poorly educated people can't provide high value. If you would have asked me about some of these things a decade ago, I would probably have shared Anne's opinion in it's entirety. Back then I believed that all over the world people were more or less on a similar intellectual level and trade barriers were the biggest problem. Now with all the side effects of globalization more and more it becomes visible what the true problem is and money is not the number one concern. It's education and the will of becoming an educated person.
Last weekend we did a road trip to the Los Santos province and were surprised by the fact that in the tiny town of Villa de Los Santos at least 4 Universities are present. Those are the same that you can find in the capital. We talked to a professor of computer science and I came back impressed by his knowledge and what he teaches his students. None of his students is from a wealthy family. Instead they are daughters and sons of poor campesinos who can't afford a computer at home. Instead they spend every free minute using the equipment on the University's premises. Now let's think ahead and imagine what these guy's impact on the local economy will be when they start working, form a new family, buy a house and demand good education for their children.
Help Beta Test a new agile project management tool
Are you a member of a small software development team and want to try Savila? We are looking for beta testers. The systems requirements are quite low. Savila is a WAR file that you simply deploy to your J2EE servlet container.
If you are interested, check out our product blog and learn more about Savila.
iPhone is a tablet computer
This idea snuck up on me. I was watching an Apple ad on TV, while washing dishes, so I caught it at an angle, and lost the sense of scale, and thought the iPhone was a tablet computer. Then I realized that it is!
Indeed. The only thing that hides this fact is the form factor of the iPhone. If it simply were bigger, let's say A4 or Letter size, then it were completely obvious.
That phone runs Mac OS X and therefore it would be capable of running every app out there for the platform. The only question left is the old problem of text input. The phone has a virtual keyboard on screen and maybe that would be ok on a larger tablet as well. I can imagine typing on such a on-screen keyboard. You would lay down the tablet on the table and, if the keys are of proper size and have proper spacing, then it would not be that different at all. Of course the feedback of real keys would be missing, but that might be ok for short texts such as an email. I guess nobody expects to be able to write a book on a tablet computer. But it would be great for research, browsing stuff, to control other devices in the living room, at a work site or elsewhere. So why not?
Another interesting use case for such a tablet would be for a small group of developers during sprint planning. Instead of having a bunch of people with their laptops open (too much distraction) they would pass around a tablet. Maybe teams using Savila will do that in the future?
Multitasking considered harmful
Over the weekend I came across an article published in German online news magazine Spiegel Online. The article (English) explains that humans can't do multitasking and when they do, mistakes creep in - some of them might be deadly.
Further the article mentions a study performed by Basex called The Cost of Not Paying Attention: How Interruptions Impact Knowledge Worker Productivity.
I like that the topic is getting broader attention. It's something I've always suspected, albeit a lot of people around me try to convince me that working on several things at once actually works. Software developers need to be left alone and are not to be interrupted. It's not "being customer focused" when a developer switches away from coding to answer some questions. The developer's job is to create a working solution and needs to concentrate. He needs to stay focused, be disciplined and analyze the problem to be solved well. It doesn't make sense to try everything at the same time.
One of the most valuable tools besides a good IDE is an issue tracker. If you don't use at least something like Bugzilla you are bound to end up in chaos, overworked and will soon feel burned-out. A more sophisticated solution than Bugzilla are tools that help you and your team to manage the whole project by integrating everyone whether it be stake holders, developers, managers or testers. That's why we develop Savila.
Get a pimped-out MacBook instead of an iPhone
That's an interesting thought:
Then there's the price: $500 to $600, plus $60 to $100 a month for the wireless service. If you go all out and get the best phone with the best plan, that will knock you back $1,800 in the first year alone. You know what? I'd rather get a pimped-out MacBook and still save $300.
Personally I've come to the point that I do carry a cell phone with me, but mostly use it as a substitute for a wrist clock or alarm clock in the morning. When I have to do the occasional phone call I simply use a pre-paid service. That concept works well whereever I go whether it's down here in Panama or on travels to the US or Europe. The simplest and cheapest GSM phone available is more than enough. For all other communication needs I rely on my laptop, which I need anyway for my trade.
