So you've decided the agilists aren't completely crazy and maybe it's time to think about it. And, your waterfall project is in the dumps. You'd like to make some progress, and oh, maybe even find another job because you can't see how your company can live through this project disaster.

If you're considering how to integrate Agile into your work, here are four tips you can try to implement now:

Decrease the size of your tasks so you can get to done faster. One of the issues in non-agile lifecycles is that the tasks tend to be too big. It's common to see 1-week, 2, 3, 4, even 6-week tasks. The problem with tasks that large is that people get lost in the task. They lose sight of what done means. They wait until too late to start the task (also known as student syndrome). It's just too hard to do. So, instead of trying to manage big tasks, break every task down into smaller pieces. I like 1 or 2-day tasks max (also known as inch-pebbles).

Work in short timeboxes. Once you have smaller task sizes, make a todo list for just one week at a time. I have to admit, I have my big todo list, so I can track and see all the work I have to do. But my working todo list is just one week long. Because I work in short timeboxes of one week, I have a pretty good idea of what I can get done in a week. And, I know when I'm not making progress in a week, so I have some early warning signs.

This can be quite difficult to do if you have many partially finished tasks, or if your boss wants you to multitask, or if you are depending on other people for input into your work, or if you've never received feedback about your estimates. Don't worry if your estimates are wrong. Estimates are just guesses, so guess for now, and track your work. I don't track actual hours per task, I just look at my one-week list and see how much I have on it and where I am during the week, and where I am at the end of the week. I often have a task or two I did not finish. I don't beat myself about it and neither should you. Take that information and re-estimate what you can do for the next week.

Finish partially completed work. One of the biggest changes I found when I moved to agile is I had much less partially completed work. I still have several articles (and books!) in progress, but they are all at reasonable stopping points. When you have partially completed work that's not at a reasonable stopping point, you feel a pull to go back to it until you get it to a reasonable stopping point. That pull causes you to multitask, which prevents you from finishing more work. So the more work you can get to a reasonable stopping point, the better. That frees your mind to go do the next piece of work. Which means you can do small pieces of work and get to done faster.

One of the ways I do this is to use the SCM system to help me. I integrate continuously, no matter what I'm writing (code, tests, documentation, project plans). That way the latest version is checked in, and I know the state that it's in and I don't have to think about it.

Know what done means. Any given task may have a different definition of done, but a project's definition of done is "fit to release." Since the project has to be ready to release, I like my pieces to be ready to release also. Sometimes, as one individual contributor, that's not possible until other people have done their parts. But make your pieces as done as you can make them.

For me, this means working by feature more than working by architecture. If your project manager is still organizing the work by architecture, offer to work with others across the architecture so you finish a feature, even if you don't finish the architectural layer. Yes, this may seem counter-intuitive, but it's faster and leads to finished product earlier.

Why should you do this? Because if you're looking for a job, even if you don't have agile experience, these practices will help you add value to your organization now. And you can talk about them in interviews.

The relationship between employer and candidate has often been seen as a one-way street, with that often-dreaded interview question; 'why do you want to work here?' springing to mind. However more and more, it's the employers themselves who are being asked the tough questions. Following a recent BCS report on how better company cultures would attract more women back into the profession; how much do we look into the company we're applying for? 

 

In the current job market, although many people searching for a new role will be keen to make a swift move back into work, the ways in which people make employment decisions is showing signs of change. For many IT workers, company culture is still high on the job-hunting agenda. Similar to the BCS findings, Computer People's Salary Survey conducted earlier in the year also suggested how the culture of an organisation is key to a happy and contented workforce.

 

Some 70% of those questioned placed high importance on the quality of their working environment and culture. Many also saw the culture of a company to be a deal breaker in their choice to apply for a position or not. Findings such as these highlight the shifting onus on companies of all sizes to sell themselves to the candidate rather than vice versa.

 

A key part of this process involves alerting all potential candidates, male or female, to what your company offers over and above a paycheque. From offering flexible working hours or childcare facilities to regular company-wide social activities or duvet days and sabbaticals, employers that offer the best mix of work and play will be the ones attracting and retaining the best candidates.

As the credit crunch bites, IT contractors are quickly picking up the pace as organisations look to take action as the permanent market begins to slow. Although hiring contractors can be pricier than salaried employees, it's often the case that companies are more likely to pay that little bit extra to hire someone on a temporary basis to allow them to switch that resource on and off as needed. In the current climate it's a certainly a trend we've seen developing.

For those considering a move into contract work there are certainly benefits. For permanent staff, many employment niggles lie with a lack of variety of opportunities available. For many contractors the freedom and flexibility of their work allows them to focus on a specific project and remain 'psychologically distant' from company politics, moving on to new opportunities when the occasion arises or according to their own circumstances.

For the uninitiated - on a typical contract, you'd spend around 8 hours a day, for 5 days a week working on a specific project, with your roles, responsibilities and goals outlined in your contract description. Typically your work would be overseen and monitored by a manager within the organisation. However as jobs tumble, contractors and temporary staff are often the first to feel the effects.

One of the issues people have with moving into contract work is the very cutthroat nature of the business. As competition increases, we've also seen contract pay rates decrease over the last few weeks, so there are a number of reasons to weigh up the pros and cons of such a move before diving in. For those IT staff currently working on contract the expectation of going from one role to another in quick succession has been tempered, forcing contractors to be much more pragmatic about their work.

The overall feeling remains optimistic; as organisations seek short-term measures to offset a period of instability, opportunities will be there. It's for those with the right skills, determination and confidence to go out and take them.

IT and The City

November 26, 2008 10:51 AM

For IT staff the City has always been a popular destination, with attractive salaries on offer, advanced technology at your fingertips and employers eager to snap up the cream of the IT crop. Yet with the shake-up in the City and jobs foundering, IT workers may have fresh thoughts about the importance of job security. With their confidence in the City dented, IT professionals could be forgiven for thinking a role in finance might not be the most secure career path.

 

However no one can ever predict what the future holds for any industry sector and despite the economic downturn there is still demand for IT professionals in the City. IT remains at the core of most businesses, and improving efficiency, boosting customer experience and often helping organisations remain competitive. As such, few businesses would be willing to cut corners by sacrificing their IT, or the staff that manage it on a daily basis.

 

Currently the banking sector has shown the same level of demand for IT professionals as before the credit crunch, as many organisations are now keen to set up systems that manage risk more effectively. Middleware, Java and transaction processing specialists all are examples where demand remains high. 

 

Though IT and the City have had a turbulent relationship over the past year, there are still opportunities available out there for the taking, for those who know to look for them.

A Freelancing Checklist

November 25, 2008 2:54 AM
As a web professional, I've found myself in both full time positions and in freelancing roles - and most IT skills-led jobs can be fit to either pattern. While the majority of people working in IT are in more conventional permanent (or at least, semi-permanent) roles, freelancing can prove to be a lucrative and challenging type of career move.

While the economic climate may be a little bit discouraging at the moment, if you fancy going freelance it's probably not a bad time to bide your time and make plans for the day that you do decide to go it alone. The freedom you gain from working for yourself can be most rewarding, although you do lose much of the comfort of a regular 9 to 5 position.

It is important, then to hedge your bets and be prepared - and there are a few things you might just need to consider. The first - and most immediate - is your finances, particularly on day one.

Savings & Finances

You can't just dive straight into freelancing work - inevitably it will take time to build clients, and during this time you'll still have all your usual expenses. It's typically recommended that you about 6 months worth of your salary - at least 6 months living expenses - in reserve, before you even start thinking about heading out on your own.

You also need to seriously consider cutting down costs - pay off any extraneous debts, be sure you're not paying too much on a car loan or mortgage, and generally cut back as far as you can without it infringing on your ability to do work. Low expenses and a healthy amount of capital to fall back on will both help get your freelancing career off the ground. If things get rough, you'll need a cushion until the situation improves.

A Good Portfolio

A portfolio is vital for those working in an area remotely creative or production-based - from designers to programmers, web-oriented or otherwise. If you don't have the means to show off the things you can do, you'll struggle to sell yourself.

It doesn't necessarily have to be of epic proportion - just a couple of strong examples of your work should suffice to impress, but it is this proven ability that will close deals. If you're looking to freelance, get a portfolio and make it available to as many people as possible. Solid examples of your own work that are demonstrable are invaluable.

A Means of Client Acquisition

Important one, this - you need to think long and hard about exactly how you plan to snare work. When you're first starting out, this will take up the bulk of your time, so it's important to be aware of the avenues through which you can get work.

Simply putting together a quick website and printing some business cards won't be enough - you'll need to take a more proactive tack if you are to succeed. The traditional means - endless telephone calls to prospective clients - can work, but the internet opens a few more doors in terms of hooking up with those people who might require your services.

Freelance job sites, viral marketing, blogging, participation in social media, forums, etc. Are all good ways of increasing awareness and getting contacts - some are better than others, and can be dependent on specific situations, but the internet does provide a lot of good ways for getting work. The trick is to be flexible, try new approaches - and with a spot of luck, you might just be able to get a steady stream of new clients.

Pre-Existing Clients


Even better than a plan to get new clients is a pre-existing set of clients. There's no reason why you can't start to dip your toes into the world of freelancing whilst remaining in full-time employment - and if you can slowly build up a client base in your spare time, you'll find the transition to freelancing full-time much more easy.

It can be a bit of a chicken/egg type conundrum, as working full time can hamper your ability to get clients, but it's certainly not impossible to take on smaller jobs in your spare time, get some good contacts, and a little spare cash in the meantime. It does, of course, mean a little extra stress and a few more hours to the working week in the interim.

I wouldn't recommend forgoing the above point regarding the acquisition of further clients - new customers are always a benefit (assuming you have spare capacity to handle them) - and there's no guarantee that today's clients will return tomorrow.

'The Right Stuff'

Freelancing can be very hard work if you're not cut out for it. You need to be equally strong on all the fronts required - you need to be technically competent, a self-motivated and quick worker, boast great communication skills and politeness with your clients, and take a more direct, brash approach to selling your skills.

It's a heady mix - and not everyone can pull it off. You have to be sure you can make it work, else you might find yourself in a position where you can sustain yourself but naught more - a stalemate between paying the bills and excelling in a freelance role.

You also may have to accept failure - sometimes there simply isn't the market for a specific skill set in any given area - or it could be the case that there's an oversaturation of your skills. In either case, you may have to try a different approach.

Get it right, though - and you'll be laughing. An unfettered work schedule, no boss and the potential for unlimited riches? It might not always work out quite as planned - but with freelancing there is always potential for such opportunity, given that you're motivated enough and can cope with the strain of working for yourself.

For years the South East of England has been the Mecca of the UK's IT community, with swathes of IT companies setting up camp along the M3/M4 corridor. Of course the region's status as an IT hub has rarely been questioned and seldom challenged until now.

 

With councils and development agencies ploughing money into local business schemes, and larger corporations setting up shop in the region, the north of England has recently started giving London and the South East a run for its money on the IT scene. After years of lagging behind in terms of opportunities, benefits and technology, northern cities such as Leeds and Manchester have firmly established themselves as the new hot spots on the IT map; something both businesses and IT professionals are beginning to take heed of.

 

Research conducted last year showed that just under 90% of IT workers in the South East are considering relocating in the next five years; a huge percentage which seems to imply a growing realisation that opportunities can and do exist outside the Southern counties. What's more in the last few years even well known organisations such as The BBC, The Bank of Scotland and the Bank of New York Mellon have embraced the idea of migrating north as rising costs in the capital and advances in mobile and wireless technology make relocation an increasingly attractive and viable option to big business.

 

For IT workers, the main concerns in relocating often revolve around both the opportunities available to them and the sacrifices they'd have to make to their salaries, with the north-south pay divide playing a significant role in the decision not to move outside the South East. Also in the current housing climate a move north that doesn't quite work out in the long run may hamper chances of finding and buying a home if and when you decide to head back south.  On the plus side however the pay gap is undoubtedly narrowing, as salaries grew by 4.8% in the north of England last year, compared to just 3.7% in the capital. Northern IT workers can now expect to earn an average of just over £30,300 per annum.

 

In terms of skill demand, the North of England has seen a need for IT support staff with .net and Oracle skills over recent months, as well as some of the more niche skill sets such as business intelligence, as companies look to cut costs by analysing their own performance internally rather than through engaging with outsourcers. As with the South, the Northern IT market is still fairly buoyant with demand for staff still relatively high. If the hectic pace of London or the tedious queues on the M4 don't really appeal to you anymore then the answer may lie due north.

 

 

 

 

 

 

Adobe's MAX conference in San Francisco this week was focused on what it calls the "Flash Platform", a technology stack oriented round the Flash multimedia runtime. The "platform" word highlights the fact that you can code for Flash and have your application run everywhere that Flash runs, including Windows, Mac, Linux, and some mobile devices as long as they are not from Apple. It is not a complete platform, being essentially an Internet client, though there are some server-side pieces such as LiveCycle Data Services, to simplify and optimize communication between Flash clients and Java middleware. You can also blur the distinction between browser and desktop with AIR, which runs Flash outside the browser and adds a local database engine.

So what's new? There was the usual set of announcements. The key ones are as follows:

AIR 1.5: an update to the desktop runtime which adds support for Flash Player 10 features such as Pixel Bender, for runtime graphical effects, and an option to encrypt local databases. There is also the SquirrelFish JavaScript interpreter - though this only comes into play if you are running JavaScript within HTML, rendered by WebKit, rather than ActionScript without the Flash runtime, which has its own just-in-time compiler. AIR 1.5 is available now.

A new version of Flex and the Eclipse-based Flex Builder IDE, code-named Gumbo. This has a new skinning and component architecture, more advanced text rendering, easier two-way data binding and a new Client Data Management (CDM) feature which from early descriptions looks reminiscent of a .NET dataset. You work with data on the client, storing updates locally, then zap the updates back across the wire in a single update operation. One thing that is not yet clear to me is the extent to which CDM requires LiveCycle on the server; I'll be sure to clarify this in a couple of weeks at MAX Europe (I was not present at the US event). The database aspect is significant, because so many enterprise applications boil down to CRUD (Create, Retrieve, Update, Delete) in one form or another.

Catalyst, formerly code-named Thermo, was previewed. This is a fascinating product which converts Photoshop artwork into Flex code; it also allows designers to create and preview a degree of interaction in their designs. Catalyst shares the same project format as Flex Builder. Again, I will be taking a closer look at MAX Europe. Here's a preview screen grab:

 

catalyst.jpgCocomo (yet another codename) is a cloud effort from Adobe, focused on conferencing. Adobe hosts the services and provides Flex components to enable file sharing, text and VOIP (Voice over IP) chat, whiteboards, and data messaging; there is also user management built in.

Alchemy is a tool that converts C/C++ code to ActionScript, for execution within the Flash player. It's intended for re-use of existing libraries, not for general development.

Third-party announcements that caught my eye included Ensemble's Flex add-in for Visual Studio (though I was underwhelmed by the preview), and Zend's addition of AMF (Action Message Format) into its PHP Framework. AMF is a binary format that optimizes data transfer between servers and Flash clients.

Although none of these announcements is spectacular in itself, taken together they show the momentum behind Flash as a client for applications as well as video and multimedia, as I have mentioned here before. A good thing? Designers love Flash because of the freedom it gives them, along with the excellence of Adobe's design tools - Creative Suite 4 really is spectacular. Nevertheless, I have a nagging concern that if we adopt Flash rather than AJAX - interactivity in HTML and Javascript - for our next-generation clients, we are giving away the openness of the Web, because Flash is proprietary technology. I recommend this thoughtful post from Google's Brad Neuberg, which recommends not only open-sourcing the Flash runtime, but also integrating it more deeply with the browser and embracing web standards. There's little chance of Adobe adopting Neuberg's proposals, but he does a good job of spelling out the issues. Flash is compelling, as is Microsoft's Silverlight, but each is controlled by a single vendor. Do you think that matters? I'd be interested to hear your opinions.

 

Are you the business?

November 17, 2008 12:18 PM
Finding that next rung on the career ladder can often be a daunting process with an expectation that a host of IT qualifications under the belt will set you apart from the crowd. Unquestionably having the tech skills in place can be beneficial but it's also important not to overlook the changing demands of the IT workplace as well as the checklist of other skills employers will look for.
 
The IT industry changes on a daily basis, with new technology and new qualifications emerging all the time. Keeping up to speed with the changes is becoming increasingly difficult and rather than hoarding accreditations and milking them for all they're worth on your CV, it's crucial you don't overlook the basics. It's often said that IT and business are one and the same, a sentiment which in today's industry is becoming more and more potent. The ability to demonstrate a flair and understanding of the business environment has found its way to the top of the recruiter's wish list, with businesses keen to employ IT professionals who can link their technological wizardry to the overall business objectives.
 
One area that best reflects this growing trend, is the demand seen for IT staff with Web 2.0 knowledge and qualifications such as Ajax and Microsoft's Silverlight. With many businesses keen to build a Web 2.0 presence, candidates with knowledge of these applications and an awareness of how they can work for the business on a wider basis are becoming increasingly popular. Even now, employers are ever more open to recruiting individuals with limited or no previous background in the world of IT, looking to those who can demonstrate an understanding of the business environment and apply it accordingly with the existing infrastructure.
 
As we all know, IT is a constantly changing industry and it's important IT professionals are aware of and adapt to the changes as best they can. When it comes to updating your CV or looking for a new challenge - knowing what the employer is looking for will help to put your CV on the top of the pile.

Is easy concurrency the road to hell?

November 14, 2008 2:10 PM
Tim Anderson

Concurrent programming was a major theme at Microsoft's recent Professional Developers Conference. We all know the reasoning: processors are no longer getting faster, but multiple processors are now commonplace. Even my desktop PC is a quad-core. However, having multiple processors is no guarantee that applications will run faster. For that to happen, the application has to be coded with concurrency in mind. Therefore, if we want to write fast applications, we have to learn concurrent programming.

Unfortunately concurrent programming is hard. Think deadlocks, synchronisation, non-determinant, race conditions, and so on. Fortunately, Microsoft is good at making hard things easy. The original Visual Basic transformed the coding of a graphical user interface from something intricate done in C or C++, to something anyone could do with a few clicks of the mouse.

Now Microsoft aims to do something similar for concurrency. The .NET Framework 4.0 incorporates the Parallel FX Library, which does a great job of simplifying multi-threaded development. The new Task Parallel Library is smart about how many processors it finds at runtime, and spins the right number of threads to take advantage of them. PLINQ lets you easily apply parallelism to LINQ queries. Daniel Moth does a great job of demonstrating the benefits in his session at PDC, which you can watch online; and if you work with .NET I highly recommend it.

The worrying aspect is that while Microsoft is making concurrency easy, it is not making it safe. When I was playing around with Visual Studio 2010 and .NET Framework 4.0, one of the first things I did was to look at my code for counting primes and to see how I could optimize it. I found I could do so easily by changing a For loop to use Parallel.For instead, one of the features of the new library. I got a nice speed boost on a two-core machine, not quite double, but nearly so. One snag: the result changed every time I ran it.

I soon figured out what was wrong. My code declares a numprimes variable, then increments it within the loop. Everything is fine when single-threaded, but if you have two threads running the loop in parallel, they might both increment the variable at nearly the same time. That means reading the value, incrementing it, and writing it back. Occasionally this happens:

  1. Thread one reads value
  2. Thread two reads value
  3. Thread one increments value, writes it back
  4. Thread two increments value, overwrites it

Result: the value is one less than it should be. The fix is to lock the value first, or to find a better approach; this exact problem is discussed here (scroll down to Aggregation).

Bugs are nothing new in programming, but concurrency bugs are particularly tiresome. The code may work fine on some machines; in my example, the bug would not occur on a single-core PC. If your loop is a little less tight than a prime number calculator, it might be that the odds of the bug occurring at all are rather small. It could even pass all your unit tests. Deploy the application though, and you can bet that wrong results will soon crop up with the usual potential for calamity.

Haven't we already had, and survived, this problem with previous abstractions like BackgroundWorker, a class in .NET Framework 2.0 that makes it easy to push some code into a background thread? True to some extent, but BackgroundWorker is less dangerous because it is typically used more for keeping an application responsive, than to increase performance with parallel threads on a multi-core system.

The bottom line is that while I am full of admiration for the work Microsoft has done with the Parallel FX, I have a nagging worry that as more and less skilled programmers are encouraged to do this, we may be introducing a new wave of buggy code, as argued in detail by Edward Lee in his paper The Problem with Threads [PDF]. The hardware trend is real though, so I suspect greater concurrency in everyday business applications is coming whether we like it or not.

The other conclusion is that before using something even as apparently simple as Parallel.For, developers have a responsibility to learn about the pitfalls as well as the benefits.

it-job-satisfaction-versus-salary.png






















Job satisfaction is a funny thing - while there is a definite relationship between the benefits you receive for a job well done and the resultant satisfaction, the correlation only extends so far - and at the higher levels of expectation and remuneration, there can even be a detrimental effect on the appeal of a particular position.

The Bottom End

For those in an entry level position, or those who deem themselves to be beneath the market average for a given role, the lack of financial reward may hamper the resultant sense of satisfaction and self worth. Being underpaid for work that others may do for considerably more is a considerable downer for morale, and can be a cause for a worker to look elsewhere for employment.

As you'd expect, then - as salary increases for a given position the general level of satisfaction will increase in a correlating fashion - but at a point around the market average things will start to change, as payment beyond market rates usually requires a greater commitment.


The Perils of Middle Management


For the technical worker who wishes to progress up the ranks and beyond the core positions in the middle, there is ample opportunity. One such way is to take on more responsibilities, in either a project scope sense or in a managerial one.

Such endeavour to escalate one's career can lead to dangers as far as happiness is concerned - while increased responsibility may be beneficial to some, in most cases such a path will lead to an increased workload and a resultant rise in stress levels. This is, of course, not always the case - in some cases such promotions will grant more flexibility in a role, more creative control.


Achieving Nirvana

The perfect blend between reward and enjoyment is difficult to attain; there are very few jobs that both pay exceedingly well and provide a fulfilling, stress-free existence. The fortunate few who are in this position are probably toting highly specific and sought-after skill sets - particularly within leading edge and high-tech companies.

While we can't all aspire to such heights, that's not to say that you can't forge an enjoyable niche beyond the level of the average. While it may be sometimes impossible to avoid the cloying nature of elevating responsibility during your career, the worker who values job satisfaction over monetary concerns may find a sweet spot between the two.

Current Vacancies

Powered by cwjobs.co.uk
Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4