General


It is now almost evident that 2009 will be a year of recession and crisis. All indicators are down for the US economy and world’s economy is falling with it. Mainstream media presents governments’ actions as a heroic struggle to keep things running, while in fact things they do – mass bailouts, aid packages, 0% interest rates, printing dollars (and other currencies) – just make the problem worse.

This situation has a broad & long term impact but in this article I want to focus on what it all means for our industry – the IT and especially software development.

Recessions and crises are a time of test. When markets contract only the best will stay, the rest will fail. In other words – those who swim faster and adapt better will survive the storm, those not moving quickly enough or in a wrong direction will go down. It’s not nice, but it is the way things are.

However, IT in general has many things going for it that make it, I think, less vulnerable and having better chances of going through this storm in good shape.

First, it has always been fiercely competitive and thus is more fit than others. IT is widely unregulated by governments, did not receive any protection or intervention and has been largely union-free. It has been therefore much more exposed to the free market than banks or heavy industries. Furthermore, we did go through our own, “local” bust – the “dot.com” bubble burst of about 8 years ago. So IT companies in general should be better prepared to cope with tough times.

But even more importantly as our clients will be squeezed by the same market dynamics of bust and recession they will have to get more effective in order to survive. And to do that they will need more technology, more IT systems to support their processes, more automation and more data analysis to stay on top of things. In short they will need more of what we deliver, not less.

This time, though, with forecasting the future more difficult than ever those systems will have to help companies cope with changing business environment – and that will be reflected also in approach to projects. So companies will look to develop lighter systems and do it as flexibly as possible. That means less willingness to commit to long-term projects and fixed contracts – plus less use of work-heavy technologies.

Startups are distinctly different from established businesses but for us at Code Sprinters they are an important part of our client base. In the coming year and onwards they will have a much harder time finding angels and VCs willing to invest in them. But that means only the best business plans will get funded – and that with this funding an additional pressure for good execution will come. Good will even more than before mean: fast, with good quality and elasticity.

So common theme here for all client groups depending on IT will be more effectiveness, better value and above all flexibility to cope with hard to predict changes.

Luckily for us all the IT did come up with a way to approach things exactly that way: light technologies like web applications, frameworks, open source components etc. keep costs down and make building systems easier. The whole family of agile methods gives much higher productivity plus flexibility to cope with change easier. In fact methods like Scrum and simple T&M contracts will shine in those times.

So the coming storm will be a huge opportunity for companies that – just like us here at Code Sprinters – offer agile approach to build web applications.

I know of course how this kind of argument is perceived: yet another marketer trying to sell his method/product/service by trying to link it to what’s in fashion. Crisis is in fashion now – just turn on a TV – so let’s sell agile as a the magic cure for the crisis. But I honestly believe this is the case and here is some substatantion to my claims:

  • agile means cutting down on BS, so less overhead – and who would like to pay for unnecessary documents, work and meetings at the time when every dollar is turned twice before it is spent?
  • agile teams are open to change – every sprint (2-4 weeks) client can change the project direction, which is a clear advantage at the time of instability when any predictions can be only very general and anyway uncertain,
  • agile T&M contracts can be cancelled at any time – much more security at a time when budget given to the project today might be taken away few months from now,
  • plus with an agile team even if you cancel the project you get code that does something, is complete to some extent – which means that even if cancelled early the project has high chance of brining value,
  • agile teams are focused on highly important, high value items first meaning getting quicker to the point of system being usable,

  • good agile teams do good software – that is well tested, well designed, so that it a) will continue on working and b) could be extended further by other team with manageable learning curve.

If we look at web applications we also see clear benefits, especially lower cost and faster development of specialized business systems, both internal and client-facing. I won’t go into details here, because web technologies have been the primary choice for new custom business systems for a few years now.

To sum it all up: IT in general is here to stay, as in these troubled times companies will need more computer-powered muscle than ever, they will need it for less and delivered in a more flexible way. Luckily, the IT industry – unlike, say, banks or car manufacturers – is up to delivering just that. Well, maybe not the whole IT industry, but sizable enough part of it to keep us going. Which is fundamentally good news to open the New Year 2009 with.

So – Happy New Year!

(All the points above assume you know how agile methods, Scrum in particular, deliver those benefits – if you don’t see our Scrum Resources page to get started. Next this month – Prophets of Doom.)

Over the last three months we have been looking for more developers to join our team. Because of that within the last few weeks I had about 15 interviews. Overall I’m disappointed with the level of candidates that came to talk to us, especially computer science graduates. None of the interviewed got employed, only one was interesting but he lacks time to work being a student. So to make it clear who we are looking for and thus save everyone else (and us) the trouble of interviews I’m writing this post.

Basically, there are two ways to get employed by Code Sprinters as a developer: either you are an über-geek passionate software developer with projects to prove it or you want to become one and have what it takes (above all: a good mind).

If you claim to be first we don’t expect you to have any certificates or diplomas. Don’t even bother bringing any paperwork with you – we might look at it, but it doesn’t matter. What we expect you to have is projects. If you didn’t work professionally in the field (read: didn’t code for money yet) those can be open source projects or even your own projects done just for fun or learning that you are proud of and can show. Expect us to dwell on this during the interview and ask tricky questions re. languages, methods and tools that you used to make sure what your understanding is.

Few other bits here: if you claim you are passionate about a language or just interested in it expect questions about it on the interview. And nothing disappoints us more than someone who claims to love, say, Erlang, but can’t explain why nor say anything about it. And it so happens that our developers (who participate in the interviews) happen to have wide interests in the field and usually they know much more about exotic languages & technologies than you might expect. So don’t think you can claim you’re passionate about something if you aren’t – and get away with it.

One other point about being passionate: just doing your homework at the university won’t do. People passionate about software usually feel a need to code and enjoy coding more than what is required to get a passing grade on their studies. If you claim you’re passionate about, say, Ruby on Rails but all you did was a homework assignment with a friend in the “web applications” course are you really expecting us to believe you?

Now, you can view programming as just a job for the paycheck and you might feel doing it properly within hours is o.k. Nothing wrong with that in principle, but please be honest with us and don’t say it is your passion. Passion doesn’t just switch off at 4pm.

To be fair: all I wrote doesn’t mean that you can’t climb mountains, sail seas, play saxophone or have a life but just code 24/7 in a basement. In fact sailing and photography are the most popular hobbies in our team, but still each of us did code for fun. And I hope all of us still think coding is fun.

It all boils down to that little bit, I think. If you don’t know why coding is fun – don’t waste ours and yours time. I’d even say: don’t waste your life on something you don’t like, find something you love to do and try to get paid for doing it. You’ll be way happier.

But, as I have mentioned above, there is another way to become part of our team: have a willing mind. Again, just say so – and then we won’t expect you to have tons of projects under your belt or be fluent in Ruby, Python and SQL. However, prepare then for a ruthless check of your intellectual ability. You have to convince us you really want to become a good coder plus you have what it takes to actually do it. So this invitation is extended to those genuinely interested in programming and languages and web applications, just lacking work experience. It is not an invitation to all those that don’t know what to do with their lives and any paycheck is what they are after.

This might sound harsh – and it is. But sorry, reality is harsh and we have projects to complete and clients to satisfy. If we are to take someone on board with little or no experience to show we have to get convinced you have the brilliant mind we look for. Also because you will be most likely thrown into the water and told to swim with little assistance. Colleagues will answer your questions and will be willing to discuss stuff you’re stuck with, but apart from our well stocked library and the initial kickoff week expect little structured guidance. If that doesn’t scare you – click here. 🙂

Finally, there is one more thing. All I wrote applies to developers that are the core of our team. But we also look for a graphic/UI designer and a tester. In both cases all I wrote applies, it is just not centered on software. Maybe I’ll write about it at length another time.

So I’m at the Scrum Gathering in Stockholm right now.

Did my talk in the morning – it went reasonably well, did get some very good questions at the end. I think I could improve it now also after what I learned at another talk on the same subject. That talk itself wasn’t very inspiring but the discussion with other participants was very good and informative. Many companies now are thinking how to sell agile software development services, especially how to sway clients away from the fixed bid culture that is doing them no good. Another common problem is how to formulate “agile contracts” – that is contracts that are helping form this kind of relationship. I think we have pretty good standard agreement and model now, but I did pick up a few nice ideas from others that we could possibly use.

Jeff Sutherland had a very interesting lecture on “super-performing teams” that got me thinking seriously on how we could improve the way we measure our productivity. The thing he is saying – and many others have been for some time – that you can achieve more productivity while at the same time cutting the number of hours worked. Seems like impossibility, but from my own experience in agile I know this is true. I just wonder whether we did all we could in that area.

This was also my first time I could see Ken Schwaber in person. In the video from his talk at Google he comes across as a drill sergeant in civilian clothes – when you actually talk to the guy it turns out he is much nicer a person than that. Same with Jeff Sutherland, who also has this kind of military-“warrior”-like appearance – but at least Jeff was actually in the USAF once.

I’m overall positively surprised by the whole event, it will probably be much more valuable for me than Agile Development Practices was a year ago. I think I’ll seriously consider skipping this year edition of it.

The debate that occurred when I posted a few days ago about Google’s support for gay “marriages” was a surprise, especially because it largely concentrated on this particular issue, not on the point I was making. It has been, nevertheless, a good example of madness that is engulfing our supposedly rational civilization.

This madness boils down to belief that there is no objective truth, and therefore no laws governing human societies. Also, only truth accessible to man is the scientific “truth” – that is current theory backed by empiric verification. And since there is nothing besides what can be seen or measured then there is no purpose whatsoever to life other than pleasure and work to get means for more pleasure. Therefore there is no solid ground to base any moral or ethical reasoning on, so basically “anything goes”: all is good and should be respected if those involved in it like it and feel good about it.

This madness leads probably well-intentioned and passionate people to methodically dismantle our civilization’s foundations and cut off its roots.

Western civilization was built on the traditions of ancient Greece and Rome and was deeply rooted in Christianity. In fact it was Christianity that was shaping West’s values and morality for centuries, that was literally driving it. No surprise here – there was never in history a civilization that did not have a spiritual core and that was embracing absolutely everything. Also, there was no civilization in history that was not protecting family by ensuring its special social status and protecting marriage that creates it.

It looks, though, like we are finally getting one. Supposedly rational modern liberals want to built an utopian civilization with no dominant religion, no set of universally accepted moral values (and any reference to supernatural reduced to vague, easily dismissible “spirituality”) and no family as we know it. Reading some of the voices in this discussion it seems there is nothing they abhor more than Christianity and its values and they strive with great success to remove Christianity’s influence on Western societies.

Given the historical evidence it is very unlikely for this experiment to succeed, but it will have its consequences. The problem is those consequences are not immediately visible, but take decades to surface. Some we can see already, but those are the consequences of changes introduced long time ago. We’ll have to wait, maybe a few decades, for the results of what is being done now.

We see exactly same things happening with the economy, where current crisis is a consequence of a systemic error made decades ago in the US. Of course, few notice because only few are really interested in history. People don’t see real causes of today’s problems because for the most part they lie in the past when most of current population was not even living. Ideas tried before are not recognized as such, but rather welcomed as new – and re-applied perpetuating the problem (like the infamous $700bn bailout).

One commentator in the discussion here, Kevin, said that “the ground which humans have built on for thousands of years is eroding out from under our feet”. Cheer up, Kevin – it is eroding, but for the most part only under the Western Civilization. There are other civilizations – in fact if you look at the map of the world most people live in other civilizations. And all of those civilizations with no exception stick to their traditions and values, which incidentally all include protection of family as the basic unit of society. Of those the Muslim civilization is most visible in the West, because it is in fact slowly taking over Western Europe.

So, the brutal reality is that if our civilization wishes to commit a slow motion suicide the world will just shrug. There may be a crisis when it falls but others will fill the void. In fact many around the world can’t wait when it happens, because they hope it will be their civilization that will be more powerful and influential then. Christianity will survive West’s fall as well, just as it survived the fall of the Roman Empire, the passing of the Carolingian Empire and all the kings and emperors that threaded the Earth during those 2000 years since Our Lord has been here.

Nothing of this is news – I’m not discovering anything in this humble post. Wise men saw this coming long ago – like Pope Pius IX or Oswald Spengler to name just two writing decades ago – and many after them. So the problem now is not whether this is happening – the big question we should consider is: is this process inevitable? Can this be reversed? Can Western Civilization be resuscitated? And if yes – then how?

But even if it is not someone who thinks the biggest issue of our time is to push for mentally disturbed individuals to be allowed to “marry” each other and thus helps West’s “slow motion suicide” in his small way is well… a fool.

« Previous PageNext Page »