Gil Zilberfeld, an agile practices expert, has posted on 4 warning signs that Agile is declining. I will not re-iterate his points; you should read the article for yourself. The overall theme though is this. The software establishment - including the managers, the consultants, the trainers, the vendors - has embraced Agile, to the extent that, according to Zilberfeld, more than half of software projects at least nominally use Agile methods. The results are disappointing though, because companies have simply absorbed bits of Agile into their existing top-down management culture. Therefore:
At this point, I feel Agile is declining into what TQM [Total Quality Management] was. A brilliant success in the beginning, and now just a history fact. In a few years, months even, the business side will wake up and say: Agile is snake oil. It doesn't deliver on its promise (and it doesn't matter if it's done wrong). The backlash will be grand.
I am reminded of something I learned from one of the excellent QCon conferences in London, which covers Agile in depth. It was not so much a specific speaker or talk, more a common theme running through many presentations. Software projects generally do not fail for technical reasons. They fail because the team - using the word team in its widest sense, to include all project stakeholders from users to executives - fails to communicate effectively. Many Agile techniques, such as the daily meeting which is part of the Scrum methodology, are designed to facilitate communication. I have also heard recommendations such as moving developers into the same office as managers in order to get them talking to each other. Another example, at a micro level, is Pair Programming, where two developers work side by side on the same code. You cannot do this without communicating your intentions, ideas and solutions to the person alongside you.
Kent Beck, one of the pioneers of Extreme Programming and Test Driven Development, highlights the human factor in software development. Take a look, for example, at his essay on Accountability in Software Development:
... while programming I offer accountability as a way of demonstrating my trustworthiness and encouraging my own best behavior. Pair programming; test-first programming; continuous integration; visible daily, weekly, and quarterly cycles; slack; and estimation are some of the way I make public commitments and render account of my activities. Knowing I will be honest and accountable affects how I do my work, just as knowing that I am hiding and concealing negatively affects how I do my work. Taking responsibility for my choices and actions deflects blame. There is no hidden shame if everything I do is above board.
What is important here is not the techniques in themeselves, but the trustworthiness and accountability they facilitate.
Human problems are harder to solve than technical problems, and seen in this light it is not surprising that companies which adopt bits of Agile methodology without changes in corporate and management culture will miss out on most of the benefits.
Another common experience at software development conferences is to talk to developers who enthuse over the insights they have received, but then lament that they cannot be applied in their workplace. The reasons are old and familiar: inflexible management, longstanding broken processes that nobody seems able to fix, little kingdoms which protect their borders at the expense of the effectiveness of the whole corporation, and so on.
A few thoughts in conclusion. First, if Agile projects are failing, that does not necessarily imply that something is wrong with Agile methodology. It all depends on how it is done and whether the people involved are embracing or resisting the change and communication that goes along with it. Second, irrespective of the methodology, effective communication is key to the success of a project; and if it is not possible to change the methodology or even the tools and technology, working on team communication may still yield amazing results.
Image via Wikipedia
Discover the joys of the Jobseeker Premium account
If it's a job you're after, you could do worse than invest in a premium account tailored to the task. The Premium Jobseeker account lets you apply for jobs using a featured premium applicant listing, which highlights your listing at the top of their applicant list. you can also see who has viewed your profile, helping you to find out who is interested in you. And finally, you can send
personalised InMails (emails via LinkedIn) to hiring managers.
Get to grips with groups
Groups are a LinkedIn goldmine, for two reasons. Firstly, joining the right group gives you access to a variety of experts and high rollers in your chosen field. This gives you a chance to get yourself noticed by making judicious, high-quality contributions to the discussion.
Secondly, a little-known feature of LinkedIn is the ability to directly message people in the same group as you, from within the group. These people may not be first-degree connections of yours, but group membership gives you access to them.
Monitor company movements
Just as people have their own profile pages, so do companies, and following companies on LinkedIn can give you some interesting data. Buried in each company profile page is a statistics section. Selecting this gives you information including how much companies are growing (or shrinking) their staff on a monthly basis compared to the industry sector average, in key areas such
as general and administrative, and research and development.
You can also see how many employees are changing their title compared to the industry average. And at the bottom of the page is the motherlode: who just left? You can find out about key departures, which could give you some clues as to which roles the company needs to fill.
So, there are some guidelines that will help you turn LinkedIn into a powerful
marketing tool. What are you marketing? Yourself! Go get 'em.
Maybe when you start that conversation, your boss can't believe that you are pushing back, or what you say or what you ask. Your boss might not remember everything you're doing. I had a manager like that. So I drew him a picture of everything I was doing for the next few weeks. I had the weeks across the top, and a list of projects down the side, and showed him how I was going to allocate the time. And, I had a big black line partway down the page, labelled "Unstaffed work."
"Johanna, you can't have 'unstaffed work', you're only one person."
"Yes, I can. I'm only one person. If I can't do it, no one can."
Now, you are not me. You might not want to have the conversation the way I do. In fact, you might want to be much less in-your-face than I am. That's perfectly fine. But you have to say no to multitasking. You have to manage your own personal project portfolio.
No matter what you do, start the conversation. Because multitasking is the illusion of progress, not real progress. And, if you have tried to have this conversation and are having trouble, join me in Peer Project Portfolio Coaching.
These days, especially for technology professionals, maintaining an online presence is crucial. But one of the biggest challenges facing anyone trying to bolster their presence online is choosing an appropriate service. Facebook, LinkedIn, and Twitter are all very well, but Facebook is mostly used for personal information, while LinkedIn is a professional site, but doesn't give you much latitude when creating a personal feel to your online profile. Twitter is even less conducive when it comes to personalised style - especially given that most people will be reading your Tweets in a dedicated reader rather than going to the Twitter site anyway.
Image via Wikipedia
Ideally, a personal profile site will be able to aggregate information from various social networks, while giving you the chance to create your own special look and feel. There are a variety of options to choose from.
This AOL owned site lets you create a personal splash page using any photograph
that you want. You can add your own links (say, to a variety of personal and
business webpages), along with links to services including all of the popular
ones, along with others such as Foursquare, Posterous, and Github. One useful
feature of this site is the analytics capability, which enables you to monitor
how many views your site has garnered, along with who is linking to you. You
can also measure your Klout score, which
gives you a measure of your online influence.
Flavors.me
Flavors.me is an alternative to About.me that I find slightly more slick. Not
only does it provide customisation capabilities and links to your other
services, but it also lets you read your social streams from those other
services, too, turning it into a kind of FriendFeed, but with a lot more
polish. It offers you a variety of design features, including multiple layouts,
and even provides search engine optimisation capabilities. This site works on a
freemium model, providing a basic (but still highly functional) site for free,
with an upgrade offering more layouts, specific mobile display options, and
other goodies, for a fee.
AboutOurWork.com
This site is designed more for small businesses that individuals, but then, if
you are an IT contractor who has incorporated, you qualify. It lets you
customise your profile page, in much the same way as About.me, but takes a
slightly different approach to measuring the value of your network. It uses a
social graph, replete with bubbles and lines, to show others who you are
connected with. You can also add a smattering of social network links, to take
visitors to your accounts on services such as Facebook and LinkedIn.
Kimtag
This aggregation site that you choose a tag, which can represent everything
from an individual to a company or product. Once you have chosen your tag
(which could be your name, for example) you can type a little about yourself,
and add information such as your name, location, and a vCard. You can also add
connections to the major social networks, along with other data such as your
phone numbers and address. One attractive aspect to this site is that it
automatically assigns you a QR code for your page (although it is easy to do
that for any page on any service, by simply using a QR code generator).
Naymz
Naymz focuses heavily on reputation management. It measures your social
influence, through other social networks that you link to the system. It also
uses assessments by your peers on the Naymz network. Together, your peer
assessment and social influence constitute your RepScore.
There are many more personal online profile sites, some focusing on social
networking links, and others focusing on presenting your information as
effectively as possible. Why use them instead of simply creating your own web
site?
They can take the hassle out of web site development, leaving you time to pursue more relevant pursuits such as finding an amazing job. Their social networking features are also beyond what most of us could build on our own sites, and pulling your accounts into one place is a great way to present your entire online presence in one site to a potential employer (although you may want to leave social networks with a personal focus off the list).
Of course, these personal profile and social service aggregation sites are themselves proliferating, leading to a similar problem: which one do you choose? At some point, surely, someone will come up with an aggregator for the aggregators, and so the whole tangled mess will continue. I chose to redirect to a site from my own domain name, and promote the domain name on my business card, giving me total control over my own home on the web.

It is a little early for a review of the year, but not too early to state that 2011 has brought profound changes to the software development world. Although I am thinking mainly of the client, I would also argue that client and server are so intertwined that both are affected. As an example, I have heard developers moving away from SOAP web services not because of any conviction that REST is a better approach, but because the move away from Windows and towards HTML clients makes SOAP web services more difficult to consume.
So what's changed? Simply put, three platforms which once seemed strategic are now in obvious decline. Getting the nuance right for these platforms is tricky. Lots of software still runs and is still widely used long after it has ceased to be strategic for the company which supports it. All the platforms mentioned negatively below are still in active development; they are not going away and will still be running ten years and more from today. They come with health warnings though: depending on these platforms means that your software will gradually become more difficult for users to run and will be left behind by new technologies.
In the run up to the launch of Microsoft's Visual Studio 2010 I spoke to a number of Microsoft platform developers. The consensus then was that Silverlight was very important and possibly the future of Microsoft's client. The view was supported by the company's energetic development efforts for Silverlight. It also made a lot of sense: a lightweight, secure, cloud-centric client that escaped the GUI limitations of Win32, worked in the browser or as a desktop application, and as a bonus run on Mac as well as Windows. Silverlight, as I noted in several articles, is client-side .NET done right.
This is not the place to write a long screed about why Silverlight failed, but rather to note that at the end of 2010 it became obvious that Microsoft was changing direction. At the Professional Developers Conference, October 28-29 2010, it was hardly mentioned, and the company focused instead on HTML and Internet Explorer 9. The full extent of its new strategy was not shown until this year, at the BUILD conference in September.
It is not only external developers that were surprised by what seemed a sudden change of direction. The same seems to be true of many within Microsoft itself. Nor am I sure exactly when someone decided that Silverlight was no longer strategic, though there are clues in the Silverlight release schedule. When Silverlight 4 was unveiled in November 2009 it was still ascendant. Silverlight 5, due out shortly, suggests that it was still considered important in early 2010. Visual Studio LightSwitch released this year was likely planned in part as a way of boosting Silverlight, since it builds Silverlight applications. But nobody is talking about Silverlight 6.
Silverlight is still the development platform for Windows Phone 7, but many observers, myself included, believe this will give way to a variant of the new Windows Runtime (see below) in a future version.
This has been a costly experiment for Microsoft. If the company had done the Windows Runtime, rather than Silverlight, back in 2007, imagine how much stronger would be its position now. That said, it is not all wasted. XAML, the presentation language in Silverlight and in Windows Presentation Foundation, continues in the Windows Runtime, and so does the essence of the cloud-centric, client-secure development model.
Back in 2007 Silverlight seemed to be in part a competitive response to the increasing popularity of Adobe Flash. This month though, Adobe went though wrenching changes of its own, announcing the end of Flash on mobile browsers and a fundamental shift in business strategy away from enterprise development and towards content creation and distribution.
There are plenty of parallels with the Microsoft case. One is that the changes also came as a surprise to many within the company, who just a few weeks before, at the MAX conference in Los Angeles, were talking confidently about the future of Flash and of Flex, the application-centric SDK for Flash. Here is Doug Winnie, a casualty of the inevitable layoffs:
The product managers, evangelists, community managers, and developer relations team members found out the news and the way it was communicated at almost the same exact time you did. They are wrestling with the news and your reaction in real time--so please be supportive of them as they dig through everything.
While on the 3rd day of my vacation in Mexico, I got the call with the explanation that Adobe is doing a major refocus and as part of that, many of us "enterprise" types are no longer required. "Überflussig" I guess is the correct German word for the situation. Keep in mind that I now speak as an individual, not as an Adobe employee. I missed most of the official story due to the timing of my vacation but caught up with a few news outlets to get the rationale.
But isn't Flash still going strong on desktop browsers, and the Flex SDK heading for great new things as an open source project at the Apache Foundation? Well, maybe. Adobe is not betting on that though; it is betting on design tools for content, HTML5, and packaging and distributing publications and apps. Its Flash technology is still critical to how that is done under the covers, but Flash itself will be invisible.
Adobe also says that its LiveCycle middleware will continue to evolve in two specific niches:
We will continue to sell and support our LiveCycle products in the government and financial services markets, two areas where the LiveCycle value proposition remains especially strong.
Again, maybe. This sounds more like Adobe keeping faith with some important customers, than a strong future for LiveCycle.
Microsoft announced another profound change in direction at its BUILD conference in September. Although related to the decline of Silverlight, this one deserves its own heading. What we saw was that the Win32 platform on which Microsoft has built its prosperity for the last twenty-one years or so (Windows 3.0 came out in 1990) is now being shunted aside. "Shunted aside" is the right term because it is still there in the forthcoming Windows 8, but it is side by side with the new Windows Runtime (WinRT) and a touch-friendly user interface called Metro. The company's goal is to create a platform that will succeed against Apple's iOS. It runs on ARM as well as Intel x86 and has its own Windows Marketplace, similar in concept to Apple's App Store.
Leaving aside the merits of WinRT, the big news here is that Microsoft is finally moving away from the Windows desktop on which most of us have done our work day to day for the last two decades. The reasons are obvious: mainly the rise of iOS and the iPad, but also the success of the Mac among developers and at the premium end of the laptop market. Windows was already in decline.
Your Win32 applications will work forever, but Microsoft's energy is now going elsewhere.
What about the .NET Framework on the client? It is still there, and thanks to the excellence of the C# language I expect it will be the most popular approach for coding for Metro. Parts of the Framework will no longer work in Metro though, and it may even be that HTML5 and JavaScript, which is equally well supported, will gradually supplant it. Nor do I take the success of Windows 8 for granted; Microsoft may find the tablet market already largely absorbed by iOS and Android.
That is speculation; but the long-term decline of Win32 is not.
If these platforms are in decline, what the ones that are rising fast? That is simple to answer. Apple iOS, Google Android, and HTML5 in general. Are these good for the next two decades as in Win32, or will be on the deprecated list in a few years? That is hard to say; if I had to rate them in order of likely longevity I would guess this:
1. HTML, JavaScript and CSS
2. Apple iOS
3. Google Android
Predictions though are a dangerous game, and I would be interested in other opinions.

Image by intheozone via Flickr
Where do you work? I've been a freelance writer since 1994, and I have almost always worked from home. It offers its benefits - the coffee is free, there's a well-stocked fridge, and there is always an office cat or dog available to lower your blood pressure. You get to arrive at work whenever you please, and you get to work in your jim-jams, all day, should you wish.
But there are downsides, too. Isolation. A lack of people to bounce ideas around with. A distinct dearth of office camaradarie. Let's face it: for a freelance worker, working at home can be dull, and lonely. And that temptation to work in your pyjamas all day can be a curse in disguise.
Coffee shops and libraries are alternatives, but they're largely transient. You may get to enjoy the ambient background buzz, but you are unlikely to really connect with someone who has the same mindset as you. What's the answer?
Co-working spaces aren't a new thing, but they create new possibilities. Known in the past as as 'telecottages', they have been gaining traction. For a freelance worker, or for someone starting out building their own small company, a co-working space can be a godsend.
Co-working spaces are best when they play host to a co-working community. The community is really the meat in the sandwich. Without a community, a co-working space is little more than a collection of desks and a whiteboard. But bringing a collection of like-minded people together can produce a whole that is greater than the sum of its parts.
What does a co-working community look like? It shares an element of commonality. It may simply be that all of the members work in the same field. Maybe a cadre of coders can come together to lend each other support and advice, for example. Or the sense of community could be little more than an ideology, such as subscribing to the notion of quality in work. For some, simply sharing a fabulous working space can be enough.
There are various approaches to co-working. Some of them emphasise the community, and the space is secondary. One example is Jelly, an occasional get-together where people in an area arrange to work together in a temporary space, such as a coffee shop or a person's home. For writers in particular, National Novel Writing Month hosts a series of 'write-ins' where people gather together to work on their novels. These are valuable initiatives. Working together encourages and inspires people.
I like the idea of co-working communities because they help you to manifest your own ideas. As a freelance writer I have had lots of business ideas over the years, but I have never got any of them off the ground, because I didn't have a community of people around me that could help me to make it happen. It is very difficult for one person to make a large project work without the help, support, and skills of others.
Other co-working initiatives focus on the space and the community together, as a single entity. I recently set up The Office, a co-working space and community based in Vancouver, it brings together a selection of people with different skills. I have graphic designers, coders, copywriters and videographers. There's an ounce or two of social media in our skill set, and one or two startups too. I created a set of principles for The Office, that everyone is asked to abide by when they come to work in the space. The principles are pretty basic. Integrity, honesty and transparency figure highly, as do the willingness to commit to something larger than yourself, and be fulfilled in your work.
The idea behind The Office is to make individuals more powerful when they come into the space. We host speaking events and workshops on a regular basis, and also encourage people to share what they're working on via 'show and tells' with a networked projector.
The ultimate goal behind this not-for-profit co-working space is to create a fund using any surplus revenue. Rather than the founders taking a profit, we pump the money back into the fund. Any member with a socially progressive business idea that needs help to get started can apply for funding, and can also use the skills of the community to make their businesses happen.
The Office is based in Vancouver, and most of our readers are in the UK. Otherwise, I'd invite you to stop in for coffee. But for freelancers in our fair city, it is turning into a sanctuary for people to come and work at, and feel at home.
What's your ideal working environment?
I have posted before about Delphi, a rapid development tool forgotten by some, but still the best option for Windows native code development combined with a productive visual component library. That was over two years ago though, shortly after I met with Embarcadero CEO Wayne Williams who promised a version of Delphi that would compile for the Mac as well as Windows.
I had nearly given up waiting; but a couple of months back Embarcadero released a new Delphi with features which, on the surface at least, exceeded my expectations. Here are the highlights:
It is an amazing list of features, particularly considering the rather disappointing first version of Delphi XE. Embarcadero seemed to have done everything promised and more, in one release.
I was keen to try cross-compiling for the Mac, and set it up in what seems to be the most popular way, using a virtual machine on a Mac to run Windows, and running Delphi in the VM. When you install Delphi, or the full RAD Studio which includes C++ Builder and other features, it installs several components that you then run on the Mac side, including the FireMonkey libraries and a server calls the Platform Assistant. You then create a remote profile in Delphi that connects to the Platform Assistant, password protected for security.
Everything worked first try. I added an OS X target to my Windows FireMonkey app, clicked to run, and my simple app opened like magic as an OS X application on the Mac desktop.
Coding for iOS was more work, since you end up exporting the project to Xcode and compiling with the Free Pascal compiler rather than simply using Delphi on Windows, but it did run successfully, and I was able to use my simple test application on an iPhone.
Embarcadero is promising to add Android support at some future date, making this an interesting tool for those who need to support multiple platforms.
Is this the Delphi we have been waiting for? There are a few things that spoil the product. It does seem to have been rushed, which is hardly suprising when you realise that Embarcardero acquired VGScene and DXScene, products for Delphi that form the basis of FireMonkey, from a company called KSDev only around 6 months before RAD Studio XE2 was released. I am not sure what plans Embarcadero had for a cross-platform framework when I spoke to Williams in 2009, but does look like the KSDev deal solved a number of problems.
This rush shows itself in the immaturity of the FireMonkey framework. There are some performance issues as well as limited features compared to what was available with the VCL (Visual Component Library) for Windows. The VCL may be wedded to Windows, but it is hard to leave behind sixteen years of VCL evolution in favour of the first release of a new framework. Existing applications will not necessarily port easily. It is not only a matter of porting from the VCL to FireMonkey. Delphi developers are used to calling the Windows API when necessary, creating code that will not run cross-platform.
It is also worth noting that all FireMonkey controls are custom drawn. There are always compromises in cross-platform development, and in the case of FireMonkey you are giving up the advantages of using native controls on Windows or Mac.
As a cross-platform development tool, Delphi is now up against Adobe Flash Builder, Appcelerator Titanium, PhoneGap, and others. I have been impressed with Adobe AIR in this context, and PhoneGap also has lots of momentum and is ideal for web developers who now need to create mobile apps.
There is every sign though that Embarcadero is serious about FireMonkey and investing in its future. Existing Delphi developers now have a way to move beyond Windows while still using their preferred tool; and the product looks likely to attract new users thanks to its cross-platform capabilities.
Finally I should add that while it is the cross-platform aspect that is most eye-catching, the VCL is not dead and with 64-bit support Delphi is better than ever as a Windows development tool.