How to integrate UI and UX into software development
How to integrate UI and UX into software development 150 150 dan.macduff

How to integrate UI and UX into software development

09/10/2015

UI and UX Integration.jpg

Anyone that’s been involved in a software development project will know that they are the sum of many parts. When those parts come together, beautiful things happen; your systems are not only meeting your business needs but users enjoy using them.

In order to achieve this goal, increasingly you need to be deploying multi-disciplinary teams that include User Interface (UI) and User Experience (UX) designers (read about the difference here). The extent to which UI and UX is integrated into software development projects varies from company to company. In some cases education is required to ensure you retain UI UX throughout the software development life cycle.

The importance of UI and UX in the software development life cycle

Despite how thorough the design specs and requirements gathering, there are usually unforeseen events which either limit the functionality of your system or require additional features to be added. Progressing with changes during the development without involving the UI and UX experts could lead to disjointed end solutions with an inconsistent look and poor usability.

5 tips for integrating UI UX into your software development methodology

1. A consultative approach

From writing design specs through to development and testing, the UI and UX team will be advocating the needs of the user which can sometimes be lost after the initial stages of development if the UI/UX contract ends here. Maintaining UI/UX skills on a consultative basis can work well here to ensure that any changes are kept in line with the original design spec as well as the system requirements.

2. Concepts and prototyping

UI/UX experts are skilled at dissecting complex information into visually appealing and usable designs. Their solutions are best brought to life by prototyping elements of the system or drawing up concepts which can be used by developers and also be subject to early testing, particularly in agile projects.

3. Cultivate a culture of transparency

It is important that developers understand the UI/UX thinking and that UI/UX can understand the developer’s constraints. Developers need to know the challenges faced by the users and designers need to make sure they are thinking of clever ways to overcome any technical obstacles. Open communication and regular discussion is key to producing the best outcome for all stakeholders.

4. Integrated testing and quality assurance

In theory your testing team should be able to write their test scrips by referencing the original specification documents. Thorough requirements gathering including user surveys and persona analysis by the UI and UX team should result in testing being better aligned to business and user needs.

5. Consider agile techniques

UI/UX professionals are critical in the agile software development process. You should consider using aspects of the agile methodology which promotes involving both designers and developers at every stage of the development. This should ensure that the system is being checked against the original wireframes and prototypes to build a well-design user interface that truly engages users.

To achieve the best results from your software project, creating multidisciplinary teams is a must. For further help or to integrate our UI/UX team in your next project, why not talk to us today.

Why write good software documentation: five key benefits
Why write good software documentation: five key benefits 150 150 dan.macduff

Why write good software documentation: five key benefits

When you get something new, do you ever have that eureka moment of not realising what you’ve been missing out on? It feels good, right? And that’s exactly how our clients feel when we help them document their systems.

Often clients approach us because they need help supporting a complex bespoke system or want to make changes to it but their developers don’t understand the underlying structure or code. They may also want to integrate new software but fear the old system will break. System documentation is what holds the key to overcoming all of these challenges.

5 important reasons to have good system documentation

1. Anyone can understand your software

Although common programming languages are used for software developments it is often the case that individual developers will create lines of code with narrative. This narrative will not always make sense to others which can time for future developers to decipher. Clear and concise system documentation provides a single source of truth for developers

2. Flexibility for future development

The system being documented means you are not tied to the original developer or supplier if future developments or enhancements to the system are required. Well documented systems will also save time and reduce errors in future if you need to integrate with other business applications.

3. Understand the compatibility of your IT systems

Often when a system is developed it will have specific requirements for compatibility whether this be in terms of access device or server technology. These requirements can sometimes change over time so it’s important that you are aware of the systems compatibility – not knowing could mean a move to a new server that the system won’t work on.

4. Retaining control of your IT

Without documentation you could be at the mercy of the supplier or developer that originally built the system. Clear documentation means you retain control. At any stage in the future or even during the development process itself, another supplier can take over.

5. It’s full cycle

System documentation is critical throughout the software development life cycle. Thorough documentation should exist from architecture and design to the technical aspects and source code to user processes and procedures. That way you’ll always know why the system was developed and how.

If you’re concerned about the health of your system documentation or want to check that it will sustain your future plans, get in touch with us today.

Four options for managing legacy systems – the pros and cons
Four options for managing legacy systems – the pros and cons 150 150 dan.macduff

There will come a point, in most IT departments, where legacy systems will become a nuisance. But this can be resolved with a bit of guidance.

In fact, all it takes is an evaluation of how complex your IT environment really is, and from here, you will be able to determine which of the following solutions is most fitting. We take a look at the pros and cons of each solution so you can measure how this will fit into your department.

1. Decommission the system

Although it is rare, a legacy system won’t always be required due to structural changes such as an acquisition. Decommissioning the system is therefore an option.

Pros

  • Decommissioning the system can be done with minimal cost and resources.

Cons

  • Before going ahead with this, it is imperative that firstly nothing relies on the system.
  • A restoration plan must be put into place, to account for mistakes in the assessment process.
  • Training may be required to ensure that everyone involved fully understands the process and reasons behind the decommission.

2. Re-write in a new technology

Although it can be an intimidating task to instigate a re-write, for most situations the pros will outweigh the cons:

Pros

  • Opportunity to highlight and correct problems.
  • Freedom to add new features which would further build on your competitive advantage (which weren’t previously possible due to design issues or lack of knowledge).
  • Convenience of a modern technology, making it easier and more cost effective to support and maintain.

Cons

  • A large investment which will require tight budget control.
  • User training will be required to use the new system.
  • Staff resources will need utilising for effective project management.

3. Migrate to a packaged application

A reassessment of your business requirements may establish that a packaged solution could adequately meet your needs. Here are the arguments for this solution:

Pros

  • Less work will be involved and the system should be well supported.
  • The legacy system will be completely removed.
  • You will benefit from future package upgrades.

Cons

  • You may have to adjust business processes to suitably accommodate the system.
  • Scalability may be restricted.
  • Integration with other systems could be difficult.
  • You won’t own the Intellectual Property Rights (IPR) preventing further development and the opportunity to potentially sell the systems to other businesses as an alternative revenue stream.

4. Maintain the existing system for the foreseeable future

Should your system be likely to be decommissioned in the near future, this could be an ideal solution. Here’s why:

Pros

  • No or limited expenditure involved.
  • If the evaluation doesn’t highlight any glaring issues the risks are minimal as nothing will change during the interim period.

Cons

  • In-house skills to maintain the system may be limited, putting the business at risk.
  • If business needs change or the timescales for decommissioning the system are extended, the system may fail to meet requirements.

Talk to us to discover how we can help you overcome the issues of legacy systems.

150 150 dan.macduff

MicrosoftNETBusinessBenefits- Aug 13.png

Microsoft began development of the .NET framework in the late 1990s to enable application development primarily for the Windows platform. Originally called Next Generation Windows Services (NGWS), the framework morphed into .NET when version 1.0 was released in late 2000. The current version, .NET 4.5 was launched in August 2012, just over five years after the previous major release of 3.5.

The decision of whether to upgrade your application is not an easy one. It is fair to say that the end user is unlikely to notice the difference between framework versions but the changes are noteworthy and could bring significant benefits to your application, and organisation as a whole.

.NET 3.5 to 4.5 – reasons to upgrade

The new features and updates in .NET 4.5 are vast but rather than launching into the technical world of BigIntegers, garbage collection and minification we are just going to focus on the overlying business benefits. However, if you would like to view an in-depth review of all the key features visit: http://msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Reason 1: .NET 4.5 gives better performance

Microsoft has added a number of features to improve performance. Those which we found most interesting are:

  • Better memory resources – the latest upgrade has improved the speed in which an application allocates and releases memory. Previously an application could become sluggish whilst ‘cleaning up’ the memory but this process has been separated from other aspects of the application to greatly enhance its performance.
  • Parallel computing – the latest version introduces a new programming tool called parallel computing which gives the application a great deal more capabilities to perform operations simultaneously, thus increasing performance.

Reason 2: .NET 4.5 is easier to develop and support

The updates and additional features in .NET 4.5 will simplify the process for your developers. Changes such as the introduction of web forms and MVC to jQuery will save time during the development process and the simplification of other aspects will enable the support team to fully understand the application quicker. As a result, less time should be required for both development and support.

Reason 3: .NET 4.5 provides improved security

There have been numerous changes to the security of .NET 4.5 which has ultimately improved security for the end user whilst also introducing new security methods which simplify the process for the developer.

Is it time to upgrade your .NET application?

As well as weighing up the benefits of the new features against the cost and time required to upgrade your application you must consider its longevity. For example, will your application be required for many years to come and likely require future development? If so, it could be worthwhile upgrading now while the application is more manageable.

If you anticipate a need for developing future Windows 8 applications the Windows Store may be of particular interest. The Windows Store provides a new opportunity to distribute and sell apps and there are many new development options in .NET 4.5 which will help your developers build compelling Windows Store Apps. The latest version of .NET also embraces HTML5 and CSS3 and has introduced many other improvements which further enhance app development.

In contrast, if you have applications which target Windows XP or Windows Server 2003 you will not want to upgrade because 4.5 does not support these operating systems.

Talk to us to discover how we can help you with your .NET applications.

Which is more secure – ASP.NET or PHP?
Which is more secure – ASP.NET or PHP? 150 150 Kindy Mann

The differences in the innate security of ASP.NET vs PHP come down to the scope of what functionality and features are provided by either technology. Fundamentally, the security of a web application is dependent upon the implementation, but the technology used to implement that website will impact the amount of effort required to write secure code.

Microsoft’s ASP.NET provides a full stack of technologies to enable developing a maintainable, performant and secure website. Each layer of this stack has been tested by Microsoft for security vulnerabilities and is deployed as a whole. When a security vulnerability is identified, in any layer of the ASP.NET stack, the fix can be deployed in the same manner, no matter where in the stack it occurs. Applications written using ASP.NET would typically use the facilities provided by the ASP.NET stack rather than bringing in third-party libraries to provide fundamental web application framework features.

PHP on the other hand is actually quite a low level website runtime, providing limited functionality to the developer for creating a website. One could make the argument that PHP is inherently more secure than ASP.NET due to the fact that it has fewer features and therefore a smaller attack surface. However, the comparison between ASP.NET and PHP is not an equal one.

Modern PHP websites would typically use a third-party framework to provide a maintainable structure to the site and to maintain developer productivity levels attached by other web technologies. So, one would typically compare developing with ASP.NET vs PHP/Zend or ASP.NET vs PHP/CakePHP. There are quite a few different frameworks that all target the same problem of writing maintainable websites in PHP (http://www.phpframeworks.com/ lists several popular frameworks). This is where the main security issue lies.

Not only is a PHP web application subject to vulnerabilities in the PHP runtime, but also from vulnerabilities in the third-party frameworks and libraries fundamental to creating a maintainable and secure site. These frameworks and libraries are often provided by multiple vendors which have differing capabilities to manage security vulnerabilities in their frameworks. While packaging PHP frameworks and libraries has improved in recent years, and several libraries are often packaged with various Linux distributions which ease deployment of security updates, a typical PHP site will use libraries from various sources. There will therefore always be additional complication when deploying security updates as compared to an ASP.NET based site.

Discover how Software Solved can help relieve the pressure on your IT department.

 

Are there any tools to convert my Delphi application code to a more modern language?
Are there any tools to convert my Delphi application code to a more modern language? 150 150 Mark Reed

FAQ: Are there any tools to convert my Delphi application code to a more modern language?

One of the questions we are frequently asked is whether you can use code conversion software to migrate a project from a legacy language to a modern language. This is coming up increasingly in relation to Delphi applications where despite the Delphi product’s continued endurance, resourcing support is becoming increasingly challenging and costly as time moves on.

The short answer to the question above is yes, there are tools to help convert Delphi applications to C#, most notably TurnSharp (by Collabratus) and Delphi2CS (by Netcoole). However, before taking this path, there are a few important things to consider about the potential migration of your application.

Considerations for migrating Delphi applications to modern programming languages such as C#.NET

1. How well written is the Delphi code of your application?

If you know the way your application code structured is poor, or even just outdated (e.g. highly procedural rather than object oriented) then using a code conversion as the basis for your new generation of software code would be very ill-advised.

2. What type of database/data access layer does your Delphi application use?

Many Delphi applications made use of the Borland Database Engine (BDE), a proprietary middleware layer provided with Delphi at the peak of its usage. Whilst TurnSharp does boast the ability to covert code that utilises the BDE, one also has to be aware that the BDE was designed primarily for file-based ISAPI database access. Therefore, many of the component types (e.g. TTable) would result in a very poor-performing application in a client/server database environment.

3. Does your application use 3rd party controls/components?

The success of code conversion tools depends on recognition of VCL (Visual Component Library) components to a great degree. Where a project uses 3rd party components or even custom components developed in-house or specifically for the project, the code conversion will be far less successful.

4. Does the functionality of the application model your business processes (or would you design the software differently with a “blank canvas”)?

Normally we find that applications written in legacy technologies will have a natural drop off in investment as a business looks forward to a replacement, reserving capital to commission the replacement project. Therefore, by the time the replacement project is commissioned, there are often a number of shortcomings with the application as a result of the fact it has not been kept in step with the way the business is operating. These will often result in manual workarounds and additional effort for key members of staff. The blank canvas approach provides much greater opportunity to address these issues.

5. Would your application benefit from being web based (in either a private intranet or public internet context)?

Nearly all Delphi applications we come across are Windows 32 bit client applications. There are a few ISAPI dll’s which drive websites and are built using Delphi, but these are in the minority and in most cases these would not convert at all well (because of their reliance on non-standard VCL components). Therefore one of the decisions that you will normally face when upgrading a Delphi application is whether a web based solution would suit better in the modern era. This is a particularly persuasive approach for most businesses as it eases deployment, makes remote and/or mobile access easier and modern browsers in conjunction with client side script allow a very rich user interface. So the question for a new development project is generally phrased the opposite way around, i.e. is there any compelling reason why the application cannot be web based?

When to use code conversion

You may have gathered by now that code conversion is not something that we would generally advocate, the only scenario in which I can see a good case for it is where you have developed a complex process represented by a well-structured code algorithm which has minimal user intervention and stores application data exclusively in memory rather than using a database, e.g. a file processing service. In that context, there would be a potential benefit of using code conversion.