28. August 2011

Software Feature Paradox

By adding more features you'll achieve less.
By adding less features you'll achieve more.

Why is this paradox so common in the Sea of Software development?

It’s easier to add more than to add less.

It’s easier to rush than run for a long distance.

It’s easier to promise castle in the air than build it.

It’s easier to blame old code in the system than find understanding.

Is it harder to write test before a code than fix a bug within a bug within a bug?


17. May 2011

Quality in Flex/ActionScript development

Sergei Sokolov wrote article about Using automated tools across the lifecycle to develop higher quality Flex applications.

He explained some tools and approaches how to build better Flex based software.

I’d like to add some of my notes to this topic:

1. The key factor for reaching good quality of Flex products is learning. Flex is platform and it is evolving. Therefore it is imperative to learn new approaches to solve some problems.

2. Automation is very important. Flash Builder is bundled with support for Ant. That is not enough. Continuous integration should be implemented via tools like Maven using FlexMojos. Without this point everything is useless, because you’ll end up with mixing different versions of Flex SDK with your framework. Thanks to Jenkins and FlexMojos you reach stability in SW production. We already launched Jenkins CI for open source ActionScript projects – you can find some details at corlan.org.

Here is small example how to use FlexMojos.

3. Teach developers how to use FlexUnit. Companies tend to buy cheaper version of Flash Builder which has no support for FlexUnit. Investing few more bucks could give them very handy tool. See lynda.com or tv.adobe.com for lecture about FlexUnit. There are also other helpful tools like FlexMonkey, etc.

4. Different tools. Flash Builder is great, but real development power comes with combination of Flash Builder with IntelliJ Idea Ultimate. Those two tools together could speed up development and improve code quality. Also test automation has good implementation in IntelliJ Idea.

5. Flex PMD. This could help team which deals with new developers. Often it is hard to guess level of skill of new developer in the team. Using Flex PMD could help with measuring and detecting anomalies in his code style

6. Get rid of Not Invented Here Syndrome. There are many small useful frameworks which could help to improve Flex productivity, like Swiz, RobotLegs. Knowing those frameworks could save hundreds of development hours. So give a space to developers to learn new approaches.

I prefer small frameworks with less singletons inside. Some Flex frameworks are overflowing with singletons. Do not use sw with too much singletons, it will bite you and maintainability of your Flex product will drop to zero. Just a friendly warning at the end 🙂

In my opinion this is the core of producing real good and stable Flex software.

19. February 2011

Software travelers

Bas Vodde mentioned very interesting technique in his interview for SE-Radio.net. He call this technique travelers.

Let’s consider scenario: product development reached the end of iteration. Teams delivered results. People learned quite a lot. Some of them have very specialized knowledge.

Let’s give opportunity to people with very high technical knowledge to choose their team for next iteration. Give them the badge of traveler. They can choose where they want to travel in the organization.

Some of them will stay. Some of them will enjoy traveling between teams.

This technique can improve flow of knwoledge inside organization.

Software traveler is definitely not a new idea. Companies with wise management are already doing it. What I consider as very important is that Bas Vodde gave it the name.

You can download very good episode of podcast with Bas Vodde from Software Engineering Radio – episode Large Agile Software Development. I really enjoyed listening to this episode. Bas was talking about many interesting concepts in software development and agile.

Bas Vodde and Craig Larman wrote a book with title Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale SCRUM.

Note: You can follow SE-Radio Twitter – @seradio.