How custom software ages | Application Development Video Series, Episode 1

Not unlike hardware, custom-built software applications can age over time. There are a variety of ways that a business can outgrow a software application, and those aging applications can become more burdensome to maintain than to update or rewrite.

We don’t typically think of software as something that can age. The code is written and run on a computer, so it doesn’t age like hardware does or like people do. It becomes obsolete or becomes less functional, unable to keep up with the demands of the business and the business users. Software is usually written based on a snapshot of a business need for a certain period or range of time. Unfortunately, software doesn’t change dynamically the way the business does. Businesses can change, market demands can change, the number of users can change, and the software can have trouble keeping up with that.

Another aspect of aging is that the software may have been built in a technology that is no longer supported or is slowly on its way out the door; it’s being deprecated or replaced by more modern design patterns and technologies. The software was written years ago, and the technical resources are no longer available or difficult to find. When you can find them, they are expensive, which makes maintaining the software more and more costly.

Technologies, design patterns, and understanding of software as a functional piece of a business were limited 10-15 year ago, and that technology continues to evolve. When we think about legacy applications, they were monolithic in nature and written top-to-bottom; every line of code was executed in one lump sum. To change one little thing in those applications, you had to change everything.  Thankfully, now we have better paradigms alongside better technologies where we can separate the different pieces of functionality and objectives into multiple layers.

  • We can have part of the application that is written specifically to manage the database.
  • We can have another piece that manages business rules and validation.
  • We can have another piece that’s a service layer that allows you to integrate other systems and software, preserving the code that’s already in place for business logic and the database.
  • We also have the user interface and front end of the database. This part is also changing: it used to be just PC-based, but now you’re going to want to think about new devices like GPS, tablets, and cell phones so people can access your software anywhere in the world.

We begin to realize there is an aging process that happens with software — as it ages, it becomes more difficult and expensive to maintain in addition to some of the lost opportunities for growth. For instance, older software wasn’t designed to take advantage of the hardware that you’re probably already using which has multiple core processors and robust memory capabilities. Bringing the software up to date will give you the opportunity to take advantage of those hardware options for better performance.

Software Modernization: When Is It Time?

Software Selection: Assessing Your Options on the Market

Software Selection and Available Product Offerings

In this software selection series, I have covered how to assess the need for custom software in addition to business drivers. In this third post, I’d like to spend some time covering how to answer a specific question. What percentage of my needs are addressed by available product offerings?

It can be a very obvious choice to go for an off-the-shelf product. You don’t need to hire or manage a custom software team. In addition, the costs for a software product that already exists are often more clear.

Custom software projects can stretch out over many months or even years. Depending on the quality of your team, the end product may not even be what you bargained for.

Existing Software Platforms

Software selection: connectorsBuying an existing product is no guarantee that you are purchasing all the functionality that your business requires. In the illustration to the right, you can see an example of a platform. This platform provides the baseline of functionality, with applications and a portal bolted on.

Many customers come to Entrance and say, “We’re spending $100,000 a year on SharePoint and we’re getting no ROI. What gives?”

What we tell them is that SharePoint only provides the toolbox. Your company needs to be prepared to make the further investment in customization and workflow in order to prove out the true business value of this platform.

The same is the case for many platforms. Before you make the investment in expensive software tools like these, a team that understands your business needs, budget, and resources should make a full evaluation.

When Software is Too Much

By the same token, there will also be times when a given software tool is way overpowered for your company or department’s needs. In this case, it would be a waste of money and resources to buy SAP if only one report was needed.

Doing a full evaluation of the available products in the market for your industry will help your company to see where a simpler option might fit the need very well. This will save your team and the IT staff the time for and money for investing where a larger business problem exists.

For more on the process of software selection, check out this case study for an oil and gas services company!

What is a software audit?

One of our software consulting offerings to our clients is a software audit, but this term may not mean a whole lot to you. I’d like to share some thoughts on what an audit is, and why you might want to consider one if your business owns proprietary programs or custom software applications.

What is it?

When Entrance performs a software audit, we examine code, often for a web application. We look for amateur development or code inconsistencies that raise red flags about the quality and longevity of the code system. Other factors besides quality include overall cleanliness, ease of maintenance, and security. Audits generally only take one to two weeks to complete.

Other reasons to consider an audit depend on the history of the software’s development and the business in which it is used. Does the software appear to be old or use out of date conventions or technology? Does the software have many bugs? Does the software frequently crash? Is the data in your software reliable and accurate?

You may have concerns about the performance of the software. Does the software seem to run much more slowly than other software? Is it difficult and time consuming to perform simple or common tasks? You may also have concerns because your existing software development provider may no longer be available or able to meet your needs.

The Benefits

There are many benefits to performing a software audit:

-A measurable (quantitative) objective quality score
-Basic technical documentation to help ensure business continuity

-Answer commonly asked questions, such as:
-Can I commercialize my software (i.e., sell it to others)?
-Should I continue to invest in my current software?
-Is my software good?
-Is it time for a “rewrite” or a “rethink?”

The cost

The cost to audit a software application is typically between 1% and 5% of the total cost to develop it. This may be a very small price to pay for the documentation it provides and the questions that it answers. The results of an audit may save you additional dollars going forward by allowing you to change course before committing to additional expenditures.

For more, sign up for a software audit today!

Building a Case for Custom Software

We meet new prospective clients on an almost daily basis, and one way or the other they all come to us with the need for custom software or consulting. What separates the clients with super successful final products from the others is their understanding of the business value behind a software project. This isn’t to say we don’t put 100% behind  every project, because we do. But this understanding makes a huge difference in overall satisfaction with the final product.

Every business has a number of problems that could probably be solved by software. For example, maybe your business has trouble keeping track of contracts. Or maybe a set of complicated algorithms that are currently housed in an Excel worksheet could be better utilized as part of a custom application. But not all business problems are created equal, and no business can address every need at once.

The best way to begin  is by understanding the true business cost for a given problem. Once you have done this, it is much easier to evaluate what the solution is worth to you. If contract management is costing your business hundreds of thousands (or even millions) of dollars every year,  it is probably worth a significant investment in both money and effort fix it. If by contrast, the problem only costs a few thousand every year, the solution should be smaller in scale. It is also key to evaluate the costs in time and personnel, not just money, for an inefficient process. Once you know the complete cost, it is much easier for your business to set priorities and measure the return.

When we pose these questions to some clients, they don’t have a good level of confidence about the full cost of the problem their company is facing, the order of magnitude, or the scope. Absent a good understanding of these factors, it can be hard to decide what success means, or when a project can be considered complete. We cover some of this in a previous post about developing user stories.

While it might sound time consuming or overwhelming, building a good business case for custom software is a very important first step before further personnel, time, or dollars are committed. Without one, your company will quickly be facing budget and schedule overruns, or a final product that doesn’t really meet the need you set out to fill in the first place.

Rapid expansion of touchscreen-enabled notebooks could be good for Windows 8

A research firm focused on the display supply chain, NPD DisplaySearch, recently predicted “a rapid expansion of the touchscreen-enabled notebooks over the course of the year. Last year, the company estimates that touchscreens were present on only 3 percent of notebooks sold, but it expects this number to grow to more than 12 percent during the course of 2013.”  And the growth of touch can only be good for Windows 8.

We’ve discussed in the last few weeks how Microsoft is struggling to effect transformational change with Windows 8. While uptake has been low so far, an article in ZD Net highlights that, “the primary reason for the growth is being put down to the new notebook form factors that Windows 8, with its focus on touch, has given rise to.”

So what will make the difference in people purchasing touchscreen-enabled notebooks? Another commentator on ZD Net says price may make all the difference. “New Windows-powered devices such as tablets, ultrabooks and convertibles don’t seem to have done much to reinvigorate sales, but cheaper hardware may be the secret sauce that Windows 8 has been waiting for.”

Josh_avatarFor more on Windows 8 and what it may take to make this new product a widespread success, check out a post from Josh who provides Windows 8 consulting at Entrance.

It’s time to re-evaluate oil and gas software to keep up with regulations

In the April Oil and Gas Journal, an interesting article entitled ‘Tempering the Revival with Regulation,’ discusses changes as a result of the surge of activity in West Texas. “With new levels of drilling…across the state, energy regulators want to ensure rules can keep up.”

The author goes on to discuss how TIPRO (Texas Independent Producers & Royalty Owners) and other organizations are working to navigate the “ever-changing” business climate. Many regulations are outdated, and thus, the rules are changing very rapidly as well. Energy companies also have reason for concern if regulations become too constricting, because their businesses depend on  “a balance between sound environmental stewardship and sustained industry growth.”

And as we’ve discussed before, many oil and gas companies don’t necessarily have the visibility into their software or processes to understand if regulations are translating to actual practice. “Oil and gas companies want to do right in terms of regulatory compliance,” but some of them may need help to actually accomplish that.

If your company is relying on Excel spreadsheets or disconnected databases to implement regulations, it may be time to consider alternatives.  I cover some of the questions energy companies should be asking themselves as they evaluate whether their processes or the oil and gas software for managing regulatory compliance currently in use are up to the job  in this rapidly shifting environment.

You may also find our guide to buying or building software solutions for oil and gas helpful should you start investigating your options…

The Benefits of Updating Your Web Application

The Face of Your Company

Nowadays, almost every business has launched an application or app of some sort. Customers log in for a number of reasons, like purchasing products or checking on the status of projects. Either way, these are still the face of your company and give people a feel for how professional and modern your company is.

However, many corporate applications still rely on outdated technologies, which can limit an application’s effectiveness. The older technologies used may have been excellent choices at the time they were implemented, but have been rendered obsolete by advances in web experience technologies such as AJAX, jQuery and knockout.js, among others.  These new technologies have also raised the bar of expectations for clients and customers. We all expect a certain level of functionality like we see in Facebook, Gmail or the now defunct Meebo. Slow load times, limited functionality or a confusing user interface all indicate to customer your app is out of date.

But how does one go about bringing an old application up to speed?  Does it simply need to be updated to use modern technology, or should it be completely re-thought? What technologies should you choose? Is it worth the cost?  These are all important questions that must each be carefully considered.

What do you need from your application?

For starters, before updating an application, the purpose must be considered.  Is the app simply a landing page for clients to find out who you are and where you are located?  If so, then a simple website is likely enough for your needs and updating it should be a relatively simple and inexpensive task.  Simple pages don’t require much technology and are therfore rendered obsolete less quickly than advanced applications, which tend to be subject to the whims of modern library developers and the trendy web technologies of the moment.

More advanced applications, especially ones which expose data to clients and use advanced technologies for styling and interaction, can become outdated quickly.  When considering apps like this it is important to make sure you keep in mind the purpose of the app. A few questions to address in this case include the following:

  • Is it performing its job acceptably and simply?
  • Is the user interface outdated?
  • How does the functionality compare to competitors’ apps?
  • How does the functionality compare to what your clients expect?

Modern web technology allows for the complete separation of the business logic and the presentation layer (which has benefits beyond the scope of this discussion), but even some older applications can properly separate these two things, provided a good design was originally used.  If this is the case for your application, then the business logic can remain in place and only the  customer-facing display side of the application needs to be replaced.  

If you are not in that situation, regardless of your future needs, the best course of action is probably to create a new application, and as a part of that application design, separate the business and presentation logic from each other.  The benefits of this course of action are twofold: 1. It prevents you from needing to start over from scratch in the future, and 2. It allows you to create a front-end for other platforms like Android, iOS and Windows Phone.  Considering the ubiquity of these mobile devices today, this might be a very large gain for your company, allowing you to have customer interactions across many devices. 

Spreading Out the Load

Modern web technologies also benefit from the fact many of them allow you to transfer some of the load to the client’s computer (all of the graphical rendering being done client side), specifically on their web browser.  While for a given user this is not a CPU or memory intensive task, for hundreds or thousands of  users this can add up and your server will greatly benefit from the reduced load, while the client actually will receive an improved user experience. It’s a win-win scenario for both the server and the client. Your DBA’s (database administrators) and server admins will thank you.

In our experience, the Microsoft stack (Windows Server, SQL Server, IIS) works very well for developing new custom applications. It provides proven reliability on a platform backed by a company with decades of experience and gives you a platform for development that leverages existing expertise in Microsoft SQL Server, C#, .NET, and JavaScript to provide the best product possible for the investment.

For more on using applications to create a customer portal, check out this case study…

Windows 8: A Transformational Change

Last week, our consultant Josh, discussed some of the reasons why Windows 8 has been slow to launch. I’d like to take the topic a step further and cover some of the challenges any company faces when they are  truly engaged in transformational change.

Particularly for a large company like Microsoft, when you know the status quo is not sustainable in the long run, how do you roll out change?  You create a vision of the future and then try to find stable stepping stones in that direction. Windows 8 and its recent launch is an example of this in action.

The consequences for Microsoft if they don’t react to the need to change are huge. Two great examples for failure in this regard are Nokia and Borders. In the case of the leaked burning platform memo from the CEO of Nokia, the Harvard Business Review commented in a blog post , “the lesson of the burning platform is that it is far better to anticipate the crisis and change your behavior well before the explosion.”

With the launch of Windows 8, Microsoft is attempting to get ahead of the crisis and introduce a product that is smaller and utilizes touch before it’s too late. There are some other implicit challenges, with the x86 architecture’s ability to downscale to lower power consumption being the primary one, which may make it harder for Microsoft to compete.

It’s important to note Microsoft currently has market share for operating systems somewhere in the range of 88%, so for now, the Microsoft platform is still a solid player. It will be interesting to see whether this heft is enough to swing users who are nervous about making the switch to Windows 8.

For more on Windows 8 migration, check out our resources on the topic in our Knowledge Base!

Custom Software Techniques: Waterfall Development

For the uninitiated, Waterfall and Agile Development probably sound unimportant, and you probably don’t care what the difference is. In one recent survey, only 2% of the respondents said management knew what Agile was.

But if you’re about embark on a large scale custom software or software modernization project, there are a lot of reasons why you should care about how your software is created. I’d like to cover the differences between Agile and Waterfall development methodologies in a two-part series. This week, I’ll cover Waterfall Development.

waterfallMSF

The five phases show in the figured to the left show how Waterfall Development is a linear process. To get started, all of the requirements must be established in the beginning and all of the design work must be completed before any solution development commences. This is very much like building a house in that the full architectural plans are complete before construction begins.

When utilizing the Waterfall development process, we spend a lot of time at the front-end of the project gathering all requirements and designing the entire solution during the Envision and Plan phases. The implementation of the solution (e.g. SharePoint implementation, a custom application, etc.) begins in the Build phase once all of the requirements are enumerated and screen mock-ups are approved. When the implementation is complete, functional testing and User Acceptance Testing (UAT) are carried out in the Stabilize phase against the requirements captured in the Envision and Plan phases. Once testing is complete and we have sign-off from users and business owners, we transition into the Deploy phase where the solution is delivered into a production environment.

This process works best when the requirements can be captured in full at the beginning of the project and there is very little change in requirements over time. One major thought to consider before you commit to Waterfall development is that no matter how sure you and your team are that you know what you want, generally as projects develop, perceptions of what is required tend to evolve too.

The Waterfall process does allow for changes in requirements to be made through a Change Request process. The Change Request process requires the source, rationale and impact of the change to be documented and signed off on before the change can be implemented. This process is administratively intensive and can impact the overall timeline for delivery of the solution depending on the scope of the changes requested.

Next week I’ll cover how Agile development is different and why we generally recommend it as the best method for achieving quick results for our clients.

For more on custom software and how Entrance develops software, visit our resources on the subject in the Knowledge Base!

Windows 8 is Slow to Launch, But It’s Too Early to Declare Failure

We mentioned a few weeks ago that Windows 8 has taken its time ramping up compared to other Microsoft launches in the past. I ran into a provocative article this past week saying that Windows 8 has failed.

While Windows 8 does not have a huge following yet, there are probably lots of reasons for this having to do with the buying, adoption, and implementation cycle in IT, and it is probably premature to say that it is a failure.

For one thing, all desktop applications running on Windows 8 will still run on Windows 7. In addition, there is really no compelling business reason to introduce touch based applications today, as there is no killer app we know of yet that revolutionizes the business world.

Here are a few other thoughts on Windows 8’s slow start:

  1. Bad press has scared a lot of potential users off. People fixated on things like the missing start menu and leaped to the conclusion Windows 8 in desktop mode is a difficult-to-use joke. Using it for more than 15 minutes belies this.
  2. The desktop/touch mode split is indeed clunky and weird at first. I barely use any apps and the layout actually makes it somewhat harder to find and launch rarely used desktop programs.  It’s off-putting and has attracted negative reviews. I happen to like Windows 8 simply for its performance and some new utilities and UI features, but I barely go into Metro mode. I can see how the things I like are not going to be compelling for someone who’s on the fence based on the bad reviews.
  3. There aren’t that many touch enabled laptops yet, which is one of the drivers for having a touch interface in Windows. A big part of the OS is not really relevant to a majority of Windows 7 users.
  4. Similarly, Micrsoft put a lot of energy into allowing you to share apps and data between devices, say a laptop and a tablet. If nobody has a Windows tablet this feature is again not compelling.
  5. The Surface seems nice, but might be caught in a Catch-22. Not many people have it, so not many apps are developed for it. Since there aren’t any great apps for it, why would I buy it? Similarly, maybe it would be nice to have one interface for tablet and PC, but I don’t have the tablet, so why would I upgrade my PC operating system? Also, I hear so many bad things about Windows 8, I won’t upgrade my laptop, so when I go buy a tablet it’s not compelling to me that it inter-operates with my laptop, because I haven’t upgraded it.
  6. The expense for big companies to upgrade operating systems across the enterprise is typically huge. Windows 8 so far is much more oriented to the public rather than corporate users.  There’s not enough added value for companies to invest in the upgrade at this point.
  7. Metro-style apps are a major pain and that probably doesn’t help the bad rap surrounding Windows 8.

I read recently that 90% of users either won’t know how or won’t care to learn to use a new operating system like Windows 8. So while Microsoft hopes business users will start adopting Windows 8, the hassle and longer learning curve probably mean until Windows 7 starts to sunset and/or there are a steady stream of compelling Windows 8 business applications, Windows 8 will continue to experience slow adoption.

For more on Windows 8 upgrades, check out a few of our resources…