Category Archives: Blog

Undercutting – Using SCRUM sprints to strategically beat the competition as pit stops do in F1

f1-scrum

Good luck Max Verstappen (twitter:@Max33Verstappen) on getting podium places at USA and Mexico after the great achievements of Malaysia and Japan!

As said before, the pit stops improved. By incorporating all developments in technology as well as fine-tuning the roles within the team the pit stops were made as efficient as possible “difficult to beat 1.9 seconds”.  All in all, pit stops contributed the most when used strategically to win races; that means that based on the efficiency level attained on a perfectly synchronized process with flawless collaboration of the team, the squads gained an advantage of 26 seconds over the opponents. 

Without going into the overall strategy, rest assured that making the team work efficiently is not a mere milestone, it is constant practice and sharp focus from all involved members including the crucial factor of trust. As Michael Schumacher said – “When you start out in a team, you have to get the teamwork going and then you get something back.”

In that sense, at Uniface our teams have reached the level of efficiency which allows us to release our software on many platforms and for two different versions of the product every scrum sprint (every 2 weeks). We can still improve and we keep on doing that as KAIZEN are part of our DNA nowadays. And the biggest achievement we see is, as in F1, being able to apply that predictable process to the overall strategy.

f1-scrum

Let me go back to what happened at the F1 with the pit stop, once the team had mastered the level of efficiency, the squad decided to think out of the box and not concentrate only on the pit stop but on the overall performance of the race. At Uniface, we are aligning the business with IT to look at the overall strategy, although we still improve our SCRUM ceremonies. We think that the areas where we will gain the most are vision, strategy, roadmap, backlog management and overall in open two-way communication. I’ll keep you updated with the progress on this fascinating project. Remember, undercutting is the art of knowing when the competitor will stop or come back to the race so that you can intentionally beat him or her by planning your own pit stop accordingly.

In my opinion, we need to make the most out of the well-performed process of delivering software to use the ever-changing priorities and hit the market with the software our customers/prospects need on time. We come from an 18-month cycle (~78 weeks) to a 2-week cycle to release software, now we need to use that to strategically deliver what helps our customers the most… in a changing world.

f1-scrum

Food for thought
The following table is an attempt to compare pit stops and scrum sprints, I know it is not perfect but its intention is to spark thoughts. Let me know what your think about it. Enjoy!

Pit stops Symmetry SCRUM Sprints
Used in Race strategy Goal is to win Used in Delivery strategy
Execution of the pit stop Synchronized perfection Sprint work
Pit crew Highly trained technical members Development team
Team / squad Harmonious collaboration Scrum team
Preparation

Changing tires

Refueling

Adjusting car

Tasks mastered by the team Architecture

Coding

Testing

Delivering stories

Choreography Coordination Swarming
Collaboration Communication Collaboration
Changing rules Adapt / Fast response Changing requirements

 

Innovation doesn’t always have to be a revolution

On October 19th I will be presenting at QUBE’s inspiration session. I would like to invite you to join the virtual event. For more information and to register visit: http://qube.cc/inspiration/

I would expect that any business could innovate incrementally in the way I’ve just been describing in my blog series, and many would find it vital to do so. Yet organizations can easily find themselves stuck when it comes to innovation. They don’t always realize how much they can gain right now from moving forward, or how much they have to lose should others overtake them.

For many businesses, when it comes to IT, the type of innovation to focus on could be improving user experience, making them more efficient, by creatively using and connecting what is already there. This in turn can contribute to a virtuous circle of growing business agility and innovation. By becoming more agile about the way they innovate with technology, companies can become more responsive, freeing themselves up for business innovation.

Mobile is one of the most important ways to unlock innovation. The first step of moving existing capabilities to mobile isn’t necessarily very innovative; however, it can lead to many innovative possibilities.

Could moving some functionality to mobile unlock innovation and hence agility for your business? Is there some other evolutionary step you could take that would do the same?

This series is based on the paper: Agility and Innovation in Application and Mobile Development.

You can download the paper here.

SCRUM to strategically win from the competition as pit stops do in F1

Congratulations to Max Verstappen on winning the Malaysian Grand Prix last weekend. You see, strategy pays out when everything falls into place.

Uniface Formula 1

So, my drive 😉 is to apply scrum in your business strategy to win the race too.

So in F1 the pit stop, besides being a masterly synchronized ballet of disciplined execution and expertise, the pit stop is used strategically by the team to win the race. How? The amount of pit stops depends on the desired lap time while gauging fuel consumption, tire wearing out, undercutting (taking over a car while making the pit stop or leaving one). With the above in mind the team determines to use certain amount of pit stops, or to add one more in order to win.

In SCRUM terms, the sprints are the perfectly synchronized production of software which can be strategically used to deliver value to our customers. Whether we deliver features gradually or change the order of delivery as to meet business value.

Here at Uniface, we are busy trying to get SCRUM to the next level where alignment between business and IT are essential to make a difference. We must be aligned to adapt to change and therefore better serve our customers. In that context, we already have a track record as we have been using SCRUM for more than 9 years and have done the necessary improvements to the processes ourselves.

As an example, we have even invented our own ceremony to facilitate the alignment among teams called  a Sprint Pitch (an already 3-year-old ceremony for us).

To stress why aligning the business with IT is important, I want to emphasize the analogy from the F1 championships; I was inspired to use it when watching a Red Bull documentary about “The history of the pit stop” during my last flight.

You know the thrill of changing tires and refueling the car in the shortest amount of time possible?

In the early days, the pit stop was just a pause that took up to a minute, there was no changing of tires. That came in the 1970’s when an unplanned pit stop to change tires would take 3 to 5 minutes. In the early 1980’s Gordon Murray turned them into the strategic pit stops, considering the car weight, the tire degradation and saw a relation on how all that influenced lap times. At that moment another race began, the one to bring the pit stop’s time down to the minimum. In order, to use the pit stop more strategically and make the time necessary for a pit stop negligible.

Well, it is no surprise that to reach the shortest time, it took analysis, collaboration, improvements to get to the changing of the tires or better even the entire wheel set and refueling the car, cooling the car’s engine in just under 2 seconds. Bear in mind that actually it takes a crew of 18 to 20 highly skilled individuals to handle a pit stop.

You may wonder how do we do that in SCRUM at Uniface, but first time for a pit stop … (to be continued)!

Mobile technology to power evolutionary innovation 

In this blog series I’ve covered how innovation can be evolutionary, but what does this look like in the real world?

Mobile technology is a great example of the power of evolutionary innovation, and is proving to be a major way of doing things better. Although mobile apps may have been just a fun distraction until relatively recently, companies increasingly see them as a way of unlocking their enterprise. In some environments, such as academia, users have already come to expect the applications they use to be accessible via mobile devices – and consumerization means this is increasingly the case across the board. What’s more, provision of mobile support often needs to happen fast.

Mobile evolutionary innovation 

Mobile lends itself to evolutionary approaches

You can add a lot of value by simply delivering existing applications’ business functionality via a mobile device, especially given they are typically always on and at hand 24×7. Porting key business tasks to mobile is a prime example of evolutionary innovation, especially as putting functionality on a mobile device can unlock many more innovative ideas. These could be as simple as capturing expenses on the fly, putting an end to lost receipts and time-consuming monthly admin.

Ideas could also be more ambitious. For example, a retailer could use location data to avoid missed deliveries and present alternative drop-off locations should the customer be away from home. Today, we already see notifications being heavily used to maximize the efficiency of deliveries.

With the right development platform, you can do this without much additional overhead. The team can focus on building good, responsive applications that can be deployed across platforms, whether desktop, web or mobile.

It is worth noting that for mobile apps, you don’t have to deliver the whole enterprise solution, just key processes that are relevant to the mobile platform. For example, in an HR application you can save a lot of time and money by putting holiday or expenses approvals on a manager’s phone. This is far more efficient than checking emails and possibly forgetting to act, as they can do the job with one or two touches in response to a notification.

Mobile promotes innovation

What we’ve just described can be truly innovative and evolutionary because you go back to basics. You start by thinking about what’s going on in a manager’s day and what they need to work smarter. You then enable that vision one bite at a time, reusing functionality you already have.

As well as reusing your existing solutions on mobile, you can also innovate by combining them with other technology. For example, a mobile device can continually gather information about location and other aspects of the user’s situation, presenting the right options when most appropriate. You can take advantage of all this real-time information to make your applications better. For example:

A salesperson could be alerted when they are in the neighborhood of a new lead.

While a shop assistant is talking to a customer, the assistant’s augmented reality glasses could feed live facts about products they’re looking at.

A building automation app could use geolocation information to manage lighting, heating and security as a person navigates the location.

A choice of approaches

Mobile innovation can pay big dividends. How evolutionary it is depends partly on the approach you adopt. Possible approaches range from native device development through to mobile web sites. Each has its pros and cons. By taking a pragmatic view, it is possible to combine the best aspects of different approaches.

A hybrid approach combines native and mobile web development, arguably giving you the best of both worlds. It yields opportunities to reuse much of your current functionality and team skills, while also taking advantage of device features. This opens up many innovative ways to improve user experience and efficiency when using the business application.

This series is based on the paper: Agility and Innovation in Application and Mobile Development.

You can download the paper here.

Uniface’s use of Authenticode

In this blog post I discuss how Uniface uses Authenticode for signing Uniface executables on the Windows platform. A word on the merits of signing your executables. Code signing is nothing more than taking an executable and calculating a checksum, attaching that checksum in a cryptographically secure way to the executable. This way any customer can be assured of the integrity of the code they download from Uniface’s download server: it has not been tampered with nor was it altered while in transit. The use of a public-private key certificate from a reputable vendor adds the advantage that you can rest assured the code you downloaded really originated from Uniface.

Designing code signing requires you to take a step back revisiting your existing processes to identify potential issues. Any statements on the integrity of the code can only be satisfied if you manage your code signing keys in a defined way. We have a defined process of managing where keys reside, who has access to them and what people having access can do. Keys reside in a physically secured location, with access being controlled and limited to a small group of people in the company. Only these people can get their hands on the Uniface code signing keys for a limited set of defined purposes. Strict logging is in place so that key usage can be reviewed from audit logs.

The Uniface build factory consists of machines, that take source code from a version control system and run the build scripts to produce signed executables. The code signing is run directly from our makefiles. We use a set of ‘internal’ certificates when building Uniface. Machines that are part of the Uniface build factory have access to the ‘internal’ certificate and physical access to the build machine is limited. Only Windows executables that were produced in an official build can thus be signed using this ‘internal’ certificate. The certificate is only valid within the Uniface development lab. Outside the Uniface development lab a machine with Windows installed would lack the Uniface development lab ‘root’ certificate, which is needed to build a trust chain required to validate executables signed with the ‘internal’ certificate. Once we package a Uniface q-patch, patch, service pack or distribution, we also sign these deliverables. This effectively seals the package and protects its contents from unauthorized modifications.

We also timestamp all files, which means all signed files also carry an official counter signature with a timestamp. Should there be an irregularity, forcing us to withdraw our software, we can do this by revoking our certificate. This comes in two flavours: Either we fully revoke a certificate, or we revoke the certificate from a certain cut off timestamp. When the certificate is fully revoked, all files signed with this certificate become invalid and hence cannot be trusted anymore. If the exact moment in time when the irregularity occurred is known, we can revoke the certificate from this moment in time. This results in all files signed after this moment to become invalid. Files signed before this moment in time remain valid.

When we decide that a package is ready for shipping to our customers, we go through a process of re-signing such a package with our ‘external’ certificate.  This is done as part of the publication process. What we do is check every file in the package to see if it was signed using the Uniface ‘internal’ certificate. If a file was signed with the ‘internal’ certificate, it is resigned using our ‘external’ certificate. This ‘external’ certificate was obtained from a reputable vendor and the public key of the root certificate from that vendor is present in every Windows distribution. Hence using public-private key encryption, your Windows distribution can check that files that we have signed in our Uniface distribution have not been modified since we signed them and that the software is actually from us. So the next time you install Uniface, you can be sure the software is fine.