Category Archives: Blog

European Women in Technology: An Event Recap

European Women in Technology 2017 – an event with attendees from every corner of the continent, was held in November in Amsterdam, and so it was a great opportunity for women working in Uniface to be a part of the event. It was an excellent platform to enable the tech sector to connect, learn about what is going on around the industry and to be inspired by the many women achieving fulfilling and interesting careers in technology. 

Uniface Women in IT
The group of attendees from Uniface
In this blog, we take 3 perspectives from those who attended. First up, Jyoti Singh, Software Developer:

The two day conference consisted of multiple parallel sessions running: inspirational keynotes, personal and career development workshops, technical classes, and networking opportunities; in short it contained all you need to progress and flourish in the tech sector.

As a whole, the event was significant from following different perspectives:

  • Inspirational and Motivational – It was an incredible experience to hear and learn from successful people in tech about championing women, the importance of female role models, accelerating career, getting into the boardroom etc. Some very interesting talks were about how to build confidence, use the right body language and market yourself to maximize your potential. It was also very encouraging to see how many women are leading in their career along with taking charge of their Life-Work Balance and succeeding in ever-Changing Technology World. It was a perfect learning for a reflection on your own career and where you are heading. 
  • Be Tech-savvy – Few sessions were targeted on latest trends and emerging technology, some are listed below :
    • Big data – being one of the hottest buzzwords across industry, but despite the hype there are challenges of distributed data storage and how to store and process big data are not yet fully understood. There were some good analysis in the session about how to approach these challenges by dispelling some myths, pointing out the pros and cons of various solutions available on the market and giving some tips on building reliable data pipelines.
    • Augmented Reality (AR) – Explaining how to build with AR using tools such as- ARCore and ARKit and find out the potential of AR for innovation in marketing and in product. 
    • Build Chatbots – with Amazon Lex – Amazon Lex is an AWS service for building conversational interfaces for applications using voice and text. The session was explaining that with Amazon Lex, you can build sophisticated, natural language chatbots into your applications to create new user experiences. 
    • Browser Peer to Peer Connections – How to create a server-less Realtime multiplayer game using peer to peer connections in the browser, making use of the WebRTC and dart technology.
    • Transforming the World with Artificial Intelligence (AI) – the hottest topic in technology – AI is not scary and that it can even be the exact opposite. The session explained that how AI is already helping people to do amazing things. How AI is can be used in our daily lives. Example: intelligent machines, self driving cars, smart camera’s, your own digital personal assistant, ways to discover new forms of medical treatment & much more! 
    • IoT and the Cloud – how to leverage Amazon Web Services (AWS) to build a real connected product which includes securely ingesting and sending data to the cloud and enabling device-device communication.
  • Networking – Last but very important, it was a great opportunity to meet like minded people and build the connections. 

The entire event was truly inspiring and thought provoking, and here I would like to end writing with my favourite quote from the sessions:

Uniface Women in IT

Next is Krissie Towikromo, Marketing Analyst:

In my whole career in the IT industry this was the first time that I attended the European Women in Technology Conference 2017.  I went to this event with no baggage and no expectations.  I wondered: “why is there a need for such a big event for Women in IT?”  I was overwhelmed by the passionate, positive and uplifting stories from the speakers.  We heard great stories from IBM, Microsoft and Adidas, among others.

Uniface Women in IT

During the inspiring sessions women explained the path they followed to get where they are today. The workshops were fun as some of the sessions were interactive and attendees could really participate in them.  You could visit one of the 31 companies on the exhibition floor who were there to show off their solutions and recruit talented women.

The lack of woman in tech does exist in 2017, and talking to all these talented women made me again realize we are far from ‘there’ yet.

Finally, from Christy Hillebrink, Marketing Director:

In one way it’s a pity that such an event exists—highlighting the shortage of female talent in the field of IT. However, the same can be said for other industries as well. Teaching for example is an area where the number of women far outweigh the number of men. So while it feels strange to have a specific event on this topic, on the other hand, it’s great that the lack of women in IT functions is being put on the radar and being talked about. That can only lead to more awareness and action from women, men and companies alike.

The focus of the event was around diversity and inclusion—and how companies that operate with these foundations can find more success than if they aren’t actively working in these areas. For me personally, there were several takeaways, thoughts and inspiration that I would like to share (in completely random order):

  • School curriculum and the promotion of IT topics in education is severely limited and outdated. This hurts everyone.
  • Be a “learn it all” vs a “know it all” to empower others and advance in your own career.
  • IBM prediction: medical labs “on a chip” will trace disease and predict our health. Cool!
  • Diversity is more than gender and race, and building teams based on which talents individuals can bring to the table is an art form.
  • Tech tracks being led by women engineers (everything from AI to blockchain to machine learning and everything in between) underlined that embracing IT is an opportunity for everyone.

Uniface Women in IT

It was very unique to attend an IT event with so many women. While there is not a quick fix, or even a concrete solution for having more women in IT, events like this help create a step in the right direction.

 

Triggers’ default behavior in Uniface 10

With the release of patch F205 for Uniface 10.2.02,  the Uniface 10 compiler has changed to ensure compatibility with Uniface 9 for triggers having default behavior. This blog explains when and how Uniface handles ‘empty’ triggers and invokes default behavior.

A small subset of the triggers in the Uniface model (*) falls back on default behavior if these triggers do not contain executable code. A typical example is the On Error trigger for a field or entity. If you do not define the trigger, the Uniface run time engine will still invoke default handling for error situations. If the trigger has been defined with executable code, only that code is executed, and the default behavior is suppressed.

(*) see the Uniface documentation, section “Triggers with Default Behavior” for the complete list of applicable triggers.

When does a trigger *not* have executable code and revert to default behavior?

In Uniface 10, default behavior is invoked if any of the following conditions is true:

  • the trigger is not declared at all
  • the trigger declaration contains no executable code
  • the trigger declaration only contains one or more pre-compiler directives that do not result in executable code
  • the trigger is undeclared.

Some examples:

Uniface Trigger

Uniface Trigger

Uniface Trigger

Uniface Trigger

What is the impact of the Uniface Inheritance model, how to restore default behavior?

Behavior defined in code containers is inherited at ‘lower’ or ‘derived’ levels. Examples:

  • a modeled entity subtype and its fields inherit from a supertype and its fields
  • a component can inherit from a modeled component (called component template in Uniface 9)
  • an entity or a field in a component’s data structure inherits from the modeled entity or field.

Inheritance can take place over multiple levels, but that’s beyond the scope of this blog.

In Uniface 10, inheritance of code in containers is module-based. Code is contained in explicitly-declared triggers, entries and operations.  If a trigger is declared again on the inheriting level, that definition takes preference and replaces the definition that was inherited from the higher level.

To suppress an inherited trigger in Uniface 10, use any of the options described above: declare an empty trigger, declare a trigger with comment only, or undeclare the trigger on the lower level. An ‘empty’ trigger or undeclared trigger will fall back on default behavior if that is applicable for that trigger.

The following table shows some examples:

Modeled Field trigger error Component field trigger error Result
not declared not declared Default error handling
trigger error
end
not declared Default error handling
trigger error
if ($error = 0105)
… some code
return -1
endif
not declared User defined error handling
trigger error
if ($error = 0105)
… some code
return -1
endif
trigger error
end
Default error handling
trigger error
if ($error = 0105)
… some code
return -1
endif
undeclare trigger error
end
Default error handling

What has changed since patch F205?

With the solution for Issue # 31689 in patch F205 (Uniface 10.2.02), explicitly-declared triggers that are effectively empty now fall back on default behavior, if that is applicable for that trigger.

Before this patch, an explicitly declared trigger in Uniface 10 without executable code or with comment only would not only break inheritance, but also suppress its default behavior. Prior to F205, the only way to ensure that default behavior was invoked was to not declare the trigger or to undeclare the trigger. In case of inheritance of a trigger from a higher level, the only way to restore default behavior on the lower level was to undeclare the trigger.

What has changed since patch F206?

In patch F206 the automatic migration logic in Uniface 10 was changed to benefit from the modifications in patch F205.

Before patch F206, the migration would attempt to assess whether a trigger container coming from Uniface 9 with potential default behavior contained comment or entry declarations only. If so, the trigger would be commented out or undeclared. This approach was not watertight and had a few disadvantages, like adding code during the migration (‘code pollution’) and causing additional compiler warnings compared to Uniface 9.

When migrating a Uniface 9.6 or 9.7 export file into Uniface 10 after installing patch F206, all triggers, including those with potential default behavior, are migrated ‘as is’.

Patch F205 is compatible with code migrated into a Uniface 10 using a patch prior to F206, i.e. there is no need to redo the migration. However, if you want to benefit from the changes in the migration, you should migrate after installing patch F206 or higher.

Uniface Mobile Supporting Latest Operating Systems

Last month, the Uniface mobile team added support for the latest mobile operating systems (OSs) available in the market. Since both Apple and Google have released new versions of their latest OS, we wanted to make sure that Uniface mobile apps can be run and deployed on them.

So from now on, Uniface customers can run and deploy their mobile apps on Android OS versions from 4.4 up to Android 8.0 Oreo and on iOS from iOS 8.0.0 to iOS 11.0.0. To take advantage of the support for the new versions, all that customers will need to do is recompile their apps using Uniface and Buildozer.

For us, adding support for the latest mobile OS means making sure that a Uniface mobile app successfully runs on all these above-mentioned OSs and a Uniface mobile app can be deployed on these OSs. If a mobile app is not compatible with a mobile device’s OS then Google Play or the App Store would filter the app from the ‘app to install list’ making it difficult to deploy on that device. To verify these scenarios, we developed our own mobile app and tested it on all the platforms in the product availability matrix.

The Uniface previewer app’s latest release is an example of a Uniface mobile app which can be run and deployed on iOS 11 and Android 8.0.

Uniface Previewer app
Uniface Previewer app

I would also like to mention that now we have made our apps forward compatible for both Android and iOS. To illustrate, here is an example:

  • a Uniface app is built and deployed on O.S ‘x’
  • a user device goes for a system update
  • this results in upgrading the OS to ‘x+1’
  • the Uniface app would continue to work on the later OS.

Personally, I really enjoyed working in this project. This gave us a better insight of a mobile app development and deployment cycle. We hope our customers find this as useful as we do.

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.