Developeronomics: a very necessary debate!

Last month, I read the Venkatesh Rao’s article about Developeronomics, a new word invented to underline the huge value that can be embedded into a single valuable software developer. Leveraging the idea that made Freakonomics popular, the author emphasizes the endless need for more and more sophisticated software and argues on the very active talent war on the market, both for large technical companies and for active startups. Then he advises anyone with some surplus capital to invest it in a brilliant developer as you would invest in stocks or in good wine. By the way, wine certainly was a good financial investment to make before the 2008 crisis, but this is yet another story.

Basically, I tend to agree with the idea developed in the article; especially regarding top developers that in my experience can produce more than a typical team of 10 average developers… provided the team has the skills to overcome all the technical challenges. So it is always a better choice to have an over-skilled developer rather than an under-skilled one. It’s much more inexpensive in the end.

When I was working at Microsoft, I had the chance to hear Bill Gates tell the Windows NT story and how he hired Dave Cutler from Digital to do the job. When Bill asked Dave what the optimal team size would be, Dave’s first answer was "1". Then he added, "It is the optimal for efficiency but if we need to deliver within a reasonable timeframe, let us build a team of about 10 very good developers".

This is totally consistent with our own observations on the field. Still, people who have never written software themselves keep reasoning in man-month logic as if the man variable in this expression were commutable. And unfortunately, many people making strategic decisions about software development have never developed themselves.

This led to the huge "off-shore" trend that no one is really able to confirm as successful. I deliberately do not qualify this as a global failure, as I am lacking reliable data to validate that off-shore as such is a failure, but I am also lacking reliable data that demonstrates that it really works. The point here is that we are lacking a key metric about what has been produced (in value, not in cost) so we could really compare results, not expenses. I will post more in the future, on both software development measurement and off-shore, because these are also key topics.

Interestingly, Jesse Jiryu Davis posted a valuable reaction to the article that extends the discussion in my view. In the process, his "It almost never works" demonstrates at least that you cannot succeed with mediocre programmers (them being off-shore or not).

His other interesting major comment is his "Each year we write software that prevents us from having to write more software". That clearly strikes a chord to me. This is the history trend that everyone has to consider, but my personal opinion is that the opportunity to get more "out of the box" solutions also creates the need for more software. This is as infinite as the knowledge of the world and I cannot really imagine the day when we say "Ok, we are done with software development, now let us just maintain the worldwide code base!".

This is why our CodeFluent Entities approach is not to replace developers, but instead to allow them to go a mile further by automating the repetitive tasks for them. The idea is to let the tool do the tedious work so we, developers, don’t have to do it.

To conclude, software developers always have to adjust their skills to ever-improving tools and technologies. This is part of the fun and the value of this job, and these are the guys that I typically want to invest in.

Daniel COHEN-ZARDI

CEO, SoftFluent

CodeFluent Entities: new version and new pricing

Discover or rediscover what CodeFluent Entities can do for you !

We have added always more features for an investment that we made accessible to everyone. Our new build has been announced recently on the product blog.

Now, for only $599, one can generate any model, whatever the complexity and size (we have customers with models beyond 600 entities). Fo the price of about a day of development, save weeks and keep yourself the fun part.

We also recall you that non-commercial usage of CodeFluent Entities is TOTALLY FREE (personal or academic usage). So get your personal license now and test by yourself.

Discover the graphical modeler, an unique tool on the market, that includes for example the “solar view” as illustrated in the screenshot below:

10-cfe_solarlayout[5]

And take advantage of all the advanced producers (multi-databases, Microsoft Office, Microsoft SharePoint) and of all official “aspects”: ready-to-use features taking charge of multilinguism, full-text search, etc…using the full-featured Ultimate license priced at $2499. There are no add-on charges for extra producers any longer.

The SoftFluent team

SharePoint List Synchronizer for Excel at less than 2$ per user!

Good news, we have made some adjustments to our product pricing, consistent with our volume strategy and the wish to allow the maximum number of people to use our technology.

sharepointlistsynchronizer

Beside a deeply adjusted pricing model for CodeFluent Entities, our flagship product for developers, we have also lowered the price of our popular SharePoint List Synchronizer for enterprise-wide usage.

The price of a license for 1000 users is now only $1,999 and the Unlimited site license is at $2,999, both with unlimited email support.

So don’t wait any longer, and keep your SharePoint lists updatable from Excel even if you are now running 2007 and 2010 versions of Microsoft products!

Buy now on SoftFluent web store!

CodeFluent Entities is now used in more than 80 countries!

We typically refrain from posting product-related information on this blog and created a dedicated blog for our CodeFluent Entities product.

Still, we share here some major milestones for our product in terms of roadmap and we are proud to announce that CodeFluent Entities is now used in more than 80 countries.

We recently added a world-wide customer map on our web site showing all CodeFluent Entities customers:

image

The map is built in real-time, once a day, and circles are drawn using data from our activation database.

There is one circle per country, and its size and color depends on the number of activations per country. This means that what we show on this map are countries where actual developers used CodeFluent Entities at least once and not just visited our web site (we have visits from more than 160 countries, almost the whole world).

In the end, the map shows that, as of today, CodeFluent Entities is used in more than 80 countries!

Considering the fact that our international strategy really began about a year ago with the creation of the personal license and the fact that the end of the Beta phase for our Modeler ended in October 2011, this is really a good start!

We are still working on conquering the other 80 countries but let us keep some work for 2012 Sourire

Thank you to our customers and the happy developers that trusted the product!

Daniel COHEN-ZARDI

CEO

SoftFluent resolutions for 2012 on this blog

Now is the time to wish our worldwide readers all the best for 2012!

New year is also a good time to take a bit of distance from day-to-day business and make resolutions.

Last year, we decided to start sharing our experience about .NET software development and we published various articles. Meanwhile, we were busy with our product that extended its audience to more than 160 countries.

But we did not find enough time yet to cover all the topics that we would like to talk about.

So let us make the resolution for 2012 to write at least 3 articles on each of the following topics:

  • Measuring software development performance,
  • Development teams management,
  • Software testing best practices,
  • Production-aware programming,
  • Software maintenance and evolution,
  • Platform choices,
  • Software methodologies & design,
  • Leveraging third-party code,
  • Software engineering tooling,
  • Off Shore development,
  • Trendy patterns that can kill you.

Stay tuned and be patient, we are more committed than ever on contributing to debates in those areas about .NET software development.

And once again, all the best to all developers around the world!

Daniel COHEN-ZARDI

CEO SoftFluent

SoftFluent at Model-Driven Day 2011

SoftFluent was a sponsor again at Model-Driven Day on November 25th with a selected group of companies committed to evolving software development methodologies.

AlloCiné testified (in French) on how it significantly reduced its technical debt using CodeFluent Entities over a year using a step by step approach (full case study in English here). The case was strenghtened by the fact that it proved to be efficient both for the local developers and the off-shore team (located in Ukraine).

Carl Anderson delivered a short demonstration of new features inCodeFluent Entities, including its brand new modeler that has been released in October.

Since then, SoftFluent R&D accelerated delivering Visual Basic .NET support and a technical article illustrating heterogeneous technologies including Hibernate and Java code running on a Linux/Oracle environment. Those elements demonstrate strongly the benefits of a model-driven approach to avoid technology dependency.

Considering the quick pace of evolution of technologies, including inside a single vendor platform, this need is making more and more sense for who cares about the durability of his investments.

See all presentations of the event (in French)

Release management: SoftFluent’s experience – 12/12

Common mistakes as observed on the field

This series of posts aimed at sharing our experience. We detailed our own approach and how we deal with the different dimensions internally as an ISV.

But as we also have field experience in advising software companies, I thought it would be worth to also gather-up a list of common mistakes which we observed and that can severely impact the ability to master the product release management process.

  1. Linking product version to a particular customer: In the field, we see many companies claiming to be ISVs but in fact linking strongly product versions to one or a few customers. In our experience, it is very hard to keep a real product-oriented approach when you have a too strong customer connection. It often ends up in having a custom development that is too specific for the customer context.
  2. Setting too high expectations for version 1: Some ISVs also set very high expectations from the beginning, or for their new offering if they start a brand new product. Trying to address all needs in a very complete way in a first version is doomed to failure most of the time.
  3. Starting without a minimal vision of sellable product scope: On the opposite side of the spectrum, we also see teams that start without having a real vision of what minimal scope can be achieved and sold as a product. Pushed by the trendy messages about agile methodology, some people think you don’t need to know very well where you are heading to start your project. In most cases, this does not work well. In our views, agile methodologies work well when used as a delivery method inside a more macroscopic global planning process at vision level.
  4. Neglecting documentation: Because it is not very fun to write documentation, especially for developer profiles, this area is not enough covered with the appropriate quality level. As an ISV, you should never develop a feature that you are not ready to fully document. Isn’t it obvious written that way?
  5. Underestimating tests: Test and QA is a critical area for software success. It encompasses many dimensions (see our previous post about software testing best practices) and should be allocated the right level of resources and attention.
  6. Considering coding as pure low-added value production: We see some ISVs trying to apply the recipes of industry with a simple scheme saying that all the value is in the design, and that code can be outsourced to low-level service companies, those companies being local, near-shore or off-shore. It can be true for some very basic management software that is broad in coverage but very simple in the features. Still, most of the time, you would be able to achieve much more efficient results with 1/10th of the investment with software engineers of the right level, and above all, the proper level of experience.
  7. Subcontracting what is not internally mastered: I am a big believer of specialization and subcontracting. This can prove to be very useful when used properly. But there is a golden rule that I learned over time: you cannot subcontract what you don’t understand well. You need to have the ability to pilot and control the work of your subcontractors, and you cannot do this if you lose the basic knowledge of key elements. This applies strongly in all software dimensions that you might want to subcontract.
  8. Going for a technological leap without measuring the methodology impacts: I have audited tenths of projects that have fallen into this trap. Despite the platform vendor pitch that everything is getting simpler with new technologies such as .NET or Java, this is simply not true. These platforms give new technical opportunities and connection capabilities, but they are more complex and bigger than ever. An ISV switching from a traditional CASE Tool based approach (such as Progress, PowerBuilder or NSDK to name a few) is more than likely to fail his new projects if he does not measure the impact of technology change. The methodology needs to be adjusted as there are many implementation possibilities in those open platforms. Finding the right balance on many topics is more than tricky.

As a conclusion, we do hope that the experience we shared might be useful to some people in the field. These are only our views, we might have missed some points and we are always eager to learn more, so we welcome any feedback on those elements.

Daniel COHEN-ZARDI

CEO, SoftFluent

Release management: SoftFluent’s experience – 11/12

Tools summary

Considering the numerous elements detailed in these discussions, we mentioned different tools that are useful to our Research and Development department.

 

Area

Tools

Roadmap Planning

Internal tool: Excel lists of modules and features

Product Design

Microsoft Visual Studio Team Foundation Server 2010 & especially WorkItems (tasks & bugs)

Development

Microsoft Visual Studio 2008/2010, JetBrain Resharper, Redgate .NET Reflector

Embedded in our product: Actipro SyntaxEditor

Documentation

Innovasys HelpStudio & DocumentX

Internal Tool for schema « DocMaker »

Testing

Rich internal tooling for UI automation

Build management

TFS Build, MS Build, Internal tooling, WIX, CodeFluent Templating Engine

Release/version management

SoftFluent.Licensing, Direct integration with our web site

Licensing & activation

SoftFluent.Licensing, internal technology for activation and obfuscation

Support

WordPress blog, YAF forums, Customer-organized dedicated mailbox

Follow

Get every new post delivered to your Inbox.

Join 35 other followers