December 2010 Archives

The best way to have a great Christmas, is to help others have a better Christmas! And you don't need to spend extra money to help others... sometimes everything  you need is already available to you, it's just waiting for a bit of imagination!

Here are 2 ideas to help others on Christmas:

1. Reallocate Budget

There's always some budget allocated for Christmas activities. For example, to print some holiday cards, to send some gifts to special partners, customers and so on. What if, instead of spending the money on a bottle of wine for your customer, you bought a gift for a kid that wasn't having a Christmas without your help? I'm sure that your customer would understand. Just handwrite him or her note explaining that Santa made a detour while getting this year's gift!  If you add up a bunch of bottles of wine you will find that you can make a lot of kids happy!

xmas-gifts.png
2. Recycle Old Hardware

Remember that old laptop you no longer use and that's taking up space in the storage room? It might be exactly what a kid needs to learn about computers and the internet. Having a computer can give a child the edge he or she needs to have a much better future, and all you have to do is clean it up, install a free operating system and deliver it! Way better than recycling! And while you're at it, why not install 10 laptops?

xmas-laptops.png
So there you have it, two simple ideas to help others for Christmas that don't cost you extra (well, we did offer lunch to the guys that installed the laptops, but it was well worth it!) 

What about you? What are your ideas for helping others, without making your CFO grind his teeth?

xmas-logo.PNG
Dear Santa,

I've been a good girl in the last few years, providing ITs all across the world the ability to have a productivity they could never imagine. I help all kinds of developers, from juniors to seniors, to implement large and robust web applications in a fraction of the time they would take if using traditional frameworks.

But I miss something... I miss a fast way to reach those developers that have not heard of me before. I miss a good way to let them know how valuable I am. Every time I want to introduce myself to someone I always need to take my friends SQL Server, IIS and MSMQ with me, turning that first introduction into a very formal commitment.

This Xmas I would like to be tried by those developers much more easily. I would really like you to bring me a cloud trial service. That way I would only send them Service Studio, my IDE, to show them all the awesome things I can provide. It would really be fun if they could play around in my cloud sandbox for a while.

Oh, and meanwhile, I could give them an engaging learning experience, with game-like tutorials that go straight to the point, contextually helping them whenever they need to know more.

I bet all of this would really bring my users closer to me. And that would make me an even better girl.

Thank you Santa. Hope you drop by this December.
The Agile Platform

Guess what... The R&D team pulled up their sleeves and made sure that Santa would come sooner this year!

Version 5.1.1 was released as a technical preview on Dec 2, and you are all invited to try it out.

The entire team made such a fantastic job in focusing on the most relevant user stories, in order to deliver a valuable release in a much shorter amount of time, that in the end we got ourselves a small party... And we even got a new mug!

cloud-release-collage.png
clock10.jpg
What's every manager's dream, after finding buried pirate gold, starting a unicorn ranch and marrying a beautiful globetrotting supermodel?  Why, improving  web application development productivity, of course!

Unlike the gold, mythical creatures and supermodel, this goal can be achieved. You can do it in small steps and realize slight improvements in team productivity. But if you're aiming at order of magnitude improvements, some deeper changes need to be made (it's still not as hard as starting a unicorn ranch).

When starting this process, it's important to consider the fact that both building new web applications and maintaining existing apps must be optimized. After all, the lion's share of a web application's cost comes after the first move to production! 

With this in mind, I have pulled together seven tips to help boost web application development:

1. Automate deployment
Moving a web app to production needs to be as simple and as fast as possible. To be truly Agile and keep up with the business, deploying to production must occur frequently, or delays will stack up across the development cycle. If it takes two days to place new versions in production, your productivity will suffer.
 
2. Reduce complexity
The more complex an application grows, the harder it is to change and adapt. The solution? Split the system into smaller parts when it starts getting too big. To do this, however, requires a technology that helps make sense of complex systems, as well as helping the development team split the system into more manageable components.

3. Aim for production, from day one
It's tempting to hack out a quick solution for an immediate business problem, and later clean the application up to make it production-ready. This may seem like Agile, but in reality, it's vital to not neglect things like monitoring, scalability, logging, user management and so on. The ideal solution is to build on top of a platform that let's you take these requirements for granted.

4. Impact analysis
To change quickly, the team needs to be certain that the changes will not break what's already working. This problem can be greatly minimized through three stages: First, use impact analysis tools during the development process: if a change to the database breaks the business logic, it needs to be immediately obvious. Second, use regression testing. Finally, make sure that the impact of changes can be measured, especially when placed in the production server with production data. 

5. Invest on Knowledge Transfer
Employee turn-around, different teams for development and maintenance, or the need to reallocate teams to different projects are all good reasons to invest in knowledge transfer. But don't put the burden of knowledge transfer on the developers. The documentation will never meet requirements and walking through code is slow and difficult. Use Domain Specific Languages or visual languages and relegate this work to the tools.

6. Flexible Control
The advantages of having a 10 second deploy process are lost in the face of a two day bureaucratic process to approve a move to production.  To have true flexibility, two things are needed: full accountability - to know who to ask for help if trouble occurs, and; most importantly, the ability to rollback a not-so-successful move to production.

7. Collaboration with stakeholders
The sooner feedback pours in from stakeholders, the sooner web app development will start moving in the right direction. There's no point in developing quickly if it's going the wrong way. With this in mind, it's highly important that stakeholders can easily provide feedback on what they would like to see improved.

Looks like a lot of work...
Correct - these aren't quick and easy steps (but it's still easier than that unicorn ranch)! But in following these tips, development teams can dramatically improve productivity.

As a case study for this, consider the Agile Platform. It was designed and implemented with all these factors in mind, and a recent study, based on function points, proved that teams using the Agile Platform are 10.9x more productive than using standard technologies.

What other tips would you add to this list? How would you make your team more productive by an order of magnitude?

Agile Platform

Build your next great Web App today: Take a tour of the Agile Platform