Part 2: The threat of the Start-up and how traditional development teams can look to fight back

By Clive Howard, Principal Analyst and Bola Rotibi, Research Director, Creative Intellect Consulting

Part 2 (read part 1 here)

Appreciate the skills, knowledge and assets that you have

Once an organisation, however large, adopts a culture in which the development and IT teams believe that things can be done quickly but still within high standards of quality and compliance, then they can compete against their smaller challengers. This cultural shift can be difficult with often resistance coming from those entrenched in the old ways. Some may fear that the new processes will make them redundant. This is why organisations have to tailor new processes to their strengths and considerations such as governance have to be taken into account.

For example, when moving to Agile it is important not to be too fanatical about a certain methodology such as Scrum. The best Agile environments are those where the approach is tweaked to suit the organisation’s skills, needs and concerns. A start-up does not have to worry about large legacy investments with years of domain knowledge built around them. An enterprise most likely will and so that knowledge (people) needs to be retained. Equally some projects may still require a more Waterfall style approach due to the nature and scale of the systems involved. Enterprises therefore need new processes that embody Agile execution practices, but they must be sensible and balanced in their application.

Don’t forget operations

Agile will help developers add new features more quickly but it is only part of the overall process. Moving to CI and CD processes will create a development and operations environment that allows reliable and stable software to be released quickly. Embracing the concept of DevOps (the removal of artificial barriers between operations and development teams and finding a new working relationship that benefits the entire software process) will reduce the friction between the development and operations teams and so help to get new releases into production more quickly.

In addition the development teams need to make sure that speed does not sacrifice quality. Something that start-ups have learned is the importance of testing. The growth in popularity of Unit Testing and Test Driven Development (TDD) has been fueled by this. Enterprises need to make sure that they have the necessary testing tools, capabilities and culture in place – something that has been lagging within enterprise development teams. By making testing a constant within the development process they can increase the quality of code. Often in traditional Waterfall environments the test phase was squeezed and so in reality quality and software stability, was sacrificed.

All that glitters is not gold

Finally there is the question of technology. Start-ups have become synonymous with new technologies such as PHP, Ruby on Rails, Django and a host of other platforms, frameworks and services. They tend to gravitate towards these as they believe that they allow them to work more quickly and so focus more time on concerns such as the User Experience of the product. In reality some of these are immature and result in more time being spent firefighting than working on making the product better. Enterprises often deal in legacy software and far larger usage requirements than many start-ups have to deal with initially. A MySQL database may work great with a certain amount of data but as Facebook discovered at scale it can pose challenges. So, don’t throw out the Oracle or the IBM Database just yet.

That does not mean that technology is not an issue in the enterprise. With applications now needing to be deployed to an ever increasing number of platforms and devices the underlying technology choices will impact speed of delivery. Having a solution that places as much logic into a single codebase utilising a common language, skillset and tools will have great time and cost saving benefits. As many organisations are constantly discovering, having to maintain multiple codebases in different languages and tools that effectively do the same thing is increasingly time and cost intensive. Therefore approaches such as hybrid mobile development or model driven development will reap rewards especially over time.


Random Number Generator in Uniface

If you are not aware of it, Rik Lewis has a great blog about Uniface. I was quite interested in a recent post about the generation of random numbers. We don’t *officially* have this in Uniface. I don’t know why we don’t (probably something related to C++ across multiple platforms from the dark ages).

I’m interested to find out if this is something that we should put in the product (I’m assured it’s not too difficult), but I’m curious to know some use cases. The obvious one would be to generate primary keys, although there are other ways to do this.

But also things like how long would it need to be? 10, 20, 50 characters or should it be something like $random(10) which specifies 10 characters?

Comments welcome..

The threat of the Start-up and how traditional development teams can look to fight back


By Clive Howard, Principal Analyst and Bola Rotibi, Research Director, Creative Intellect Consulting

Part 1 in a 3 part series

Increasingly enterprises are feeling threatened by far smaller companies referred to as technology “Start-ups”. These micro organisations are often innovative and agile with a focus on user experience to quickly engage and win users. It is important to state that not all of these companies are the same. An academic “start-up” in the UK university town of Cambridge, could be very different from a two person company in Shoreditch, a borough in London that is being hailed as the hub of the UK Silicon Valley.

Start-up appeal

However it is most often the Shoreditch style of start-up that large organisations most fear.

Typically these companies are small, pure play and driven by acquiring as much market share as possible in as short a time as possible. To do this they have to focus on what attracts users more than issues that enterprises typically concentrate on like governance. If these companies get it right then they can rapidly become incredibly successful with large market valuations.

The poster child for “start-ups” is of course Facebook but there are many others, some less well known, that have seriously disrupted industries and have become worth billions of dollars in the process. In their wake often lie the demise of well-known “bricks and mortar” companies such as Blockbuster (film rental provider), HMV (music, film and games) and Jessops (photo processing and photography equipment). As these companies fell others looked on and began to think that they could be next.

That begs the question as to how any organisation either weighed down by decades of building software in a certain way (often very slowly) and without the environment to make change quickly  can respond to such innovative and nimble competition? How each company answers this question will probably decide whether they are still around 5 to 10 years from now.

It’s the culture, stupid

The first issue that enterprises should look to address is process. Many enterprises still follow software development processes created for a different era when software ran on desktops and quarterly upgrades were considered regular. Most start-ups can get a product to market in weeks (sometimes days) not years and upgrades come every few weeks, daily or faster. These small organisations have often adopted Agile methodologies and concepts such as DevOps, Continuous Integration (CI) and Continuous Delivery (CD) (see CIC report on Continuous Delivery and DevOps : link – Such processes inherently allow for software to be altered and delivered very quickly. The dynamics of the workflows truly embody the notion of a software factory with repeatable and predictable deliverable outcomes.

These new processes are not beyond the enterprise and certainly Agile is rapidly gaining ground. The traditional Waterfall based approach that large organisations have pursued for years is being replaced. This is by no means easy and requires transformation programs that involve departmental restructuring, new roles (such as Scrum Masters) and training. Most significantly it requires a change in culture as well as a mind shift that is willing to address and shake up the underlying politics. It is here that start-ups truly have the advantage. Often populated with young developers who usually have to take on many different roles (including operations) they have a culture of delivering quickly.

Once you have teams that can turnaround new features and push them out to production rapidly then you have an environment in which innovation can thrive. Innovation can be difficult when an idea has to go through multiple tiers of management and takes months to design, develop and deliver. Instead, using faster processes and idea can be pushed out, tried and then refined based on user feedback very quickly. In a world of ever increasing platforms and different devices, the ability to create an app for a new platform or form factor very quickly allows that business to be more creative.

Uniface web workshops, closing the generation gap

In March and April this year, a new initiative–the Uniface Plusprogram ran in the Amsterdam Uniface Lab. The Plusprogram originated from the Benelux user group Face to Face to deliver Uniface / Web workshops for Uniface developers. A special so-called PlusMembership allows Face to Face members to participate in the program which consisted of two parts:

  • HTML5 CSS3 and Javascript concepts
  • Uniface web components like HTML5 widget and Uniface Dynamic Server pages

The workshops were given 8 weeks in a row on Tuesday and Thursday evenings from 5:30 PM unitil 9:00 PM including a “light” Pizza or Sandwich dinner. Participants could choose to go on Tuesday or Thursday as the content for each evening was the same.

Tons blog

Five evenings were all about Web basics and the latest and greatest in HTML5/CSS3 and Javascript technology. These workshops were done by a young Master in Computer Science (Tim–who also happens to be my son) and has a lot of both hands-on as well as theoretical web knowledge. During those evenings it was very nice to watch a 24 year old teaching a class room full of very experienced Uniface developers Modern Deployment using Git.  Looking at the evaluation we held afterwards, the students very much appreciated and learned a lot from these sessions. Every evening consisted of 90 minutes theory, 60 minutes “hands-on” and a quiz. Having a quiz at the end of each session is quite common for Web trainings these days, but for most of the students is was pretty new. I think this a little “generation gap” between a “raised with gaming and Google generation” and a more traditional “schoolbook” generation.

Tons blog 2

The final Web Workshop evening explained modern Javascript libraries like Node.js and NoSQL databases like Mongodb. The other 3 evenings were given by Uniface consultants and developers and explained the concepts of the new Uniface HTML5 widget, DSPs and responsive Web programming which is a “must have” for deployment of Mobile Websites. These workshops showed that Uniface already has many possibilities to use the Web technologies which were showed in the first part of the program. The PlusProgram was very successful. During the 8 weeks over 90% of the participants showed up and we also got requests from other countries to organize the same program locally. For now we are almost ready to organize the same program in Belgium after the summer holidays.  For other countries we will determine on a case by case basis if/when/how the program will be presented. If you have any questions about the Plusprogram please feel free to contact me!

A toolbox in Uniface 10, anyone?

What’s an engineer without tools? The first hit of a Google search for the phrase “Engineer without Tools” is a quote from Star Trek Deep Space Nine – Millennium Book Three (Inferno): “He was alone and useless, an engineer without tools, … “

Alone and useless … I guess that says it all.

Vice versa: the better the tools, the more efficient the engineer can be. Application developers, software developers, software engineers, they all need tools. Of course, the Uniface Development Environment as we know it in Uniface 9 and before is a very advanced tool already, or a collection of tools. In the Uniface 10 IDE we take that to a much higher level, using the concept of the toolbox.

The next release of Uniface 10, internally named 10.00c, shows the first contours of the toolbox. This release will be used for product demos at User Conferences as of mid-May. And no doubt the toolbox will be featured in the next product update on the Uniface Partners United website.

Each task in Uniface 10 will have its own dedicated toolbox. Visually the different toolboxes look and work the same and they can always be found in the same location: at the left side. A toolbox provides the elements (the tools) that are appropriate for creating content in the editor we’re in: when we model an entity we’ll have a toolbox that enables us to create fields, keys and relationships. The project editor will provide a toolbox for creating project content: the elements to choose from in the project editor’s toolbox may range from a single component to a completely predefined application.

The Component Editor in Uniface 10 has three main tasks, each supported by its own specific toolbox: Define Structure, Write Script and Define Layout. Here’s a preliminary screen shot of the Component Data Structure toolbox:

Henk blog May2

The toolbox allows for multi-select, which makes it easy to pull multiple elements into the editor with just a few clicks. In a superficial test we noted down which steps we needed to create a data structure for a DSP based on a modeled entity.

First of all, it’s much more intuitive to discover what you need, because the toolbox puts it ‘in your face’. But more important, in Uniface 10 we needed less than 50% of the mouse clicks compared to Uniface 9.6 to achieve the same result.

But it’s not limited to these benefits, in fact the sky’s the limit! Engineers can create their own custom toolboxes. Whether as a matter of convenience or as a way to encourage or even enforce standards, e.g. project or organizational standards. Agreeing on standards and guidelines is no longer an exercise on paper, but can actually be implemented through software in an intuitive and consistent manner.