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?

Custom Software: DIY Advantages and Disadvantages

Good Planning a Key Differentiator for Custom Software

Custom software can be a great tool to match processes to your business. The recent proliferation of do-it-yourself tools makes this even easier because they allow people who aren’t professional programmers to create their own software.

This change in custom application development is part of the trend towards disruptive innovation, in which an innovation disrupts an existing technology. The ability of disruptive innovation to change traditional value organization and delivery has resulted in tools with bad user interfaces and poor performance.

A recent article in Brainzooming.com provides examples that illustrate the advantages and disadvantages of DIY software development.

DIY Custom Software Advantages

DIY custom software can be a great fit in those cases where they provide greater success than traditional off-the-shelf software. One example would be if a small business needed a basic level of reporting.

A well set-up Excel spreadsheet that is shared across the organization would probably be a fine solution. Even better would be if the business then uploaded that information into Tableau. This would bring a visual component to their report with a fairly low amount of effort.

DIY Disadvantages

This approach isn’t always the answer however. As more users started to use the spreadsheet, it would become bloated and difficult to share. The lack of a good user interface would also probably mean that the owner of the spreadsheet would start to spend more time explaining how to use it.

With the addition of more data, Tableau also can benefit from the kind of sound data management strategies that the average business user is not familiar with.

Sound Strategic Thinking

There are other reasons that DIY software solutions may not be the best fit for your business. Sound strategic thinking can also be a factor.

The following case illustrates why unassisted use of DIY tools doesn’t always work. As Mike from Brainzooming highlights, the organizer of an event created a post-event survey using SurveyMonkey for attendees to complete.

Custom Software: bad PlanningThe categories began with “very satisfied” on the left and progress towards “very dissatisfied” on the right. It’s not obvious to the layperson, but an expert in marketing research would have immediately recognized that these categories were in the opposite order from which surveys typically present them.

Respondents completing the survey may have made their choices based on habit, instead of actually reading the category headings before making their selection.

As a result, the results of this survey are unusable because the organizer has no way of knowing if the satisfaction ratings accurately reflect the respondents’ opinions. DIY tools failed in this case because the application required expertise in marketing research.

The bottom line on DIY custom software is that you should use and even embrace this option when it can provide you with an advantage over traditional methods of software development. However, you need to employ strategic thinking to ensure that your efforts provide the desired result.

For more on this topic, check out our series on the custom software buy versus build spectrum.

Custom Software: Your Business Logic, Codifed

When it comes to software, every company has to evaluate whether an off the shelf or custom software option makes the most sense. Off the shelf products are often cheaper, but they may not be able to provide the complete functionality that your team needs to get their job done. For one pipeline engineering services firm, a custom software application made the most sense for them because they needed a product that could specifically encode their business logic.

The engineering design system that we created takes as its input a system of pipes, with their insulations, material types, and required temperatures.  Its output is a network of heating cables that will maintain the pipes at the required temperatures for something approaching the minimum cost.

This keeps the pipes from freezing in cold weather, and keeps oil products with higher freeze points from solidifying even in normal temperatures.  (Think a pipe with wax in it.)

The actual heat trace (heating cables) design is a complicated engineering task involving lots of electrical engineering and physics math, and isn’t generalizable.  What is generalizable, however, is the inclusion of the business logic in deciding what components to include or not include.

For example, the system is capable of calculating which fixing tape to use, based on the temperatures reached, determining the amount of tape needed, and then converting the length of tape into a number of rolls required.

This happens automatically, every time a circuit is generated.  For instance, if the client calls back and says they are adding an extra layer of insulation, a new design can be processed at the click of a button.  Recalculating things like the amount of tape would be a tedious process.  Even with a tool and simple rules, entering in all the data into a separate system would still take a significant amount of time.

With this automated system, we are also able to track previous inputs and cascade changes.  When a small change is made to a design, it may have far reaching consequences.  Our system is able to quickly re-validate all of the user selected items, and zero out any choices that are no longer appropriate.  A system without the business logic embedded in it would require that the user re-validate all of their prior choices, a process that is both error prone, and easy to forget.

For more on custom software development, read our post on how the Agile methodology helps your company get the best possible final product.

Engineering Software Development Saves Time and Money

When it comes to complicated engineering problems, such as determining the ideal pressure for an oil well or analyzing structures, having the right tools can make all the difference. For one Entrance client, their business involves selling  joints of pipe to other companies, in addition to services, to determine what product is the right fit for the environment. For this particular engineering problem, it is possible to manually take the conditions it will be placed in, regulations related to this use and the like for a prospective pipeline and analyze what is required without the use of any fancy engineering software.

The problem with performing this work by hand is it’s not only time consuming, it also requires the engineer to make broad assumptions. While a broad assumption will lead to a safe final product, it may not result in one that is cost effective.

With the benefit of an engineering software development application that Entrance created for this client, engineers can plug in an array of specifications related to a given pipeline and the software will sort through the available options in less than a minute. As a result, engineers can determine what the minimum number of parts to create a safe final product will be, for example. Or the pipeline could be configured with only one pass instead of two. The efficiencies resulting from more precise engineering add up to big cost savings over time.

Check out our case study to see how engineering software development helped one client save tim and improved their customer experience. Or find out how a good user interface can make all the difference in your engineer’s efficiency.

Don’t Let a Poor User Interface Get in the Way of Engineering Ability

Earlier this week in a post about streamlining engineering with custom software development, I discussed how lack of  scalability and poor planning can mean the failure of a great engineering idea when it comes to creating small in-house applications which are based in Excel or the like. But as I got to thinking about it more, I also realized a poor user interface can have a lot to do with the failure of an engineering software development project. The reasons for this are twofold:

It’s a Productivity Killer

Many applications created by engineers have little, if any, user interface (UI). A lack of clear operation or marked buttons can result in one big time-suck for this would-be programmer. As people catch on to the existence of the application, the application’s creator has to spend more and more time explaining how to use it or fixing bugs, and not nearly enough being productive and getting his or her own work done.

If this was an engineer working at your company, is this how you would want them to be spending their time?

It’s Missing Functionality

When engineering software is created with a purpose and a plan by software engineers, the user interface not only becomes easier to use, it can also provide an incredible level of extra data manipulation and visualization ability. Where before extra analysis would have been required to answer follow-up questions from clients, charts that allowed an engineer to hover over data sets and drill down for more information could provide answers on the spot. And because they can quickly run analyses and more easily manipulate data, your engineers will see a big productivity boost.

This extra functionality means your super smart (and highly paid!) people spend less time waiting around or performing data entry a lot more time providing the value computers can’t, in the form of engineering insight.

Find out more about what this looked like for one Entrance client right now in an engineering software development case study!

What is Software Engineering?

I recently gave  a presentation to students at Rice University on the topic of careers in software, with a particular focus on software engineering and software consulting.

In addition to outling the kinds of degrees and training that are required to work in the software business, I explained how software engineering is starting to become a respected field in the world of engineering, with the first ever licensing exam taking place this April.

That means that although software engineering used to be sort of ad-hoc, make it up as you go along, professionals in the field are now increasingly applying many of the same systematic, disciplined and quantifiable approaches to developing software that other engineers in fields like mechanical or civil engineering do.

For more on how Entrance implements these engineering practices, visit the Software Development Methodology section of our website!

PresentationI also discussed one real world application for software engineering and consulting. Software consultants use software to solve problems, with three main focuses:

All of these areas provide value to customers and help them find the best possible solution available for their specific problem.

For students or recent graduates looking to get a job in the software industry, I shared four things that I wish someone would have told me when I was just graduating:

  • Learn about business
  • Individuals can make a big difference at a small business
  • Know database fundamentals
  • Know about database internals

Looking for your own place in the software field? Check out Entrance’s software career openings and benefits here!

Streamline Engineering with Custom Software Development

Living here in Houston, I can’t help but know a lot of smart engineers. They do some incredibly awesome things that are over my head, like structural analysis or developing better ways to get oil from an old well. But when it comes to engineering software, there is a difference between engineers and software engineers.

An all too common scenario arises when an engineer runs up against a problem he can’t solve with currently existing software. Being the smart guy (or gal) he (or she) is, this engineer brushes off that dusty coding knowledge from college and creates a handy application for plotting ship locations and streamlining data entry. But this application was only planned for his/her use, and as other co-workers realize how brilliant the idea is, they start using it too.

The only problem is it was never planned with the long-term in mind, so it just can’t scale to the number of users required. You know your company’s engineers have great ideas like this all time. The question is, do you want those ideas to languish and die due to poor planning? Or flourish and grow into a custom engineering software application that everyone can be proud of?

The alternate ending to this story is this: The engineer brings a prototype to his boss. The boss and upper management see the value in the idea and put out a bid to a company that does custom software development on a regular basis. The software engineers at this company know how to properly scope the project before getting started and:

  • ask questions about what might be required of the application in the future
  • do research on the best technology and software available for creating the application
  • create a prioritized list of requirements with a timeline for development

They then encapsulate the engineer’s good idea within the code of the application, allowing the brilliance of the idea to shine, combined with a great user interface and scalability to boot! They say that the best  programmers are up to 28 times better than the worst programmers. When it comes to your software and your bottom line, who would you prefer to be in charge?

Find out how software consulting and engineering custom software development helped one Entrance client cut their user time in half in this case study…

How to think about software if you’re not a software engineer

I’m not Entrance’s typical employee. I love technology, but don’t consider myself technical. Ask any of our programmers – I’m the canary in the mine here. If there’s a way to break something, I’ll manage to do it – with my aura alone. But being surrounded by brilliant software minds is kind of catching: Even with my propensity to ‘break’ computers, I’ve learned to love metrics and automation. I thought I’d share my beginner’s guide to understanding how to think about software for business. I hope it’ll help any other non-techies appreciate software’s growing role in our lives!

I’m not a natural at software, but I’ve discovered that I am a natural at metrics and have completely fallen in love with them. I jumped from marketing space technology to software a few months ago, with the instinct that software is key to technology advancement (after seeing it created for the world’s largest nuclear fusion facility, ITER). I’ve joined a great team of people, have been introduced to super-efficient technology, and have kept my ears open enough to hear the warning bells ringing that it’s no longer just rocket scientists and gamers who drive the next steps in software – the speed of business is changing. We’re at a crucial moment where everyone needs software – from field ticket management to executive dashboards it’s happening whether you’re savvy or not. And this is the moment to decide to sink or swim. Businesses are being inundated by an ‘info-lanche’ to quote Andrea Kates in ‘Business Genome’. Are you comfortable with that much data? Are you ready to work with it? When I got inundated, I learned to swim – so let me share my floaty!

Software isn’t just for nerds anymore!

I’m extremely right-brained. I see patterns easily, but I’m not a very structured thinker – I’m intuitive and creative instead. Yet somehow our engineers have bridged that and made systems work the way I think! I had two very separate moments of clarity this week about how universal ‘metrics’, ‘key performance indicators’, ‘feedback loops’ and ‘workflows’ really are. One was at physical therapy (no kidding – just had surgery on my knee last month) and one was in my role as a marketing manager guiding our rebrand.

Metrics in Sports Medicine

There’s a machine at the Ironman clinic where I do physical therapy that lets me ‘play games’ while strengthening my knee.

Let’s take the simplest game as our example – it’s like Pong. The plank at the bottom of the screen moves left and right as I bend and straighten my knee (and oh man does bending and straightening hurt one month out of surgery). The software is a simple way to explain all of the metrics good software should give to let you know where you stand:

A)     Feedback loop: I get immediate feedback that keeps me engaged despite the burning thighs. It’s all about instant gratification – my score goes up when I manage to bounce a ball back upward, and falls when I can’t get there in time. And of course, things turn red – which is never good, and as a perfectionist I’ve got to go in and get my score back on track.
B)     Workflows: It remembers who I am, sets up specific targets for me and I get to play X number of games, with a break of Y (not enough) seconds in between. Seems so easy – but when I saw my trainer customize it with three clicks, I knew that it was just right for me – and that I could do it on my own.
C)     Key performance indicators: Before starting I get a quick score overview that not only lets me know how I did on this game last time, but how I’ve done on other games – showing me where to concentrate most.
D)     Metrics:  The biometric software gives me not only feedback on the spot but summaries at the end. I know where I stand both going into and coming out of the workout, and I know that the next time I step up to that machine it’ll re-engage me and guide me to that next step toward being able to run again. Status known, goals set, what more could I want?You can call me a super-nerd if you’d like for spending my time at PT thinking about these things. But ask any marathon runner – there’s not much else to think about 1.25 hours into a workout.

Software for Marketing

I expected, and you’d expect, that as a Microsoft Partner, we’d work with all the latest and greatest software – and we do. But I never realized how much I could love working with good software that’s made to work like me. I knew it would save time, but it also motivates me, helps guide decisions, lets me not sweat the small stuff and keeps the forest and the trees in balance on my radar.

  1. I love SharePoint: We just migrated to Office 365 and our new SharePoint Team Lead taught me how to assign tasks, create automated pings when I add data that’s important to certain people, have a tracked team discussion about a topic we’re not sure of so that we always know what we’ve talked about – even if we haven’t formalized documentation yet. All of these are extremely compelling functions of the work environment. Also, since we’re rebranding, I get to go in brand it to reflect the direction we’re going! This way we consistently represent ourselves both internally and externally. I also can’t wait to promote our company culture that’s so dear to my heart with the fun social aspects of Office 365 and SharePoint 2010.
  2.  Think like a marketer, structure like a programmer: We’re creating a new website as we speak – and I’m going through and making sure that we have all of the content to match all of the potential goals of our visitors. There’s a great little diagram from Eloqua which grids content types with buyer decision making process. So moving this into the way we do business I started thinking that the best way to make sure that our audience is covered is to create content to match our 4 main industry types, 4 main buyer needs, and the 4 buyer stages toward wanting to work with is. Now, as someone who is fascinated by the concept of a ‘datacube’ but has never worked with one, it took me a while to settle on this cube pattern – and now with that and the pages everyone needs (about us, careers etc.) I should have my bases covered. I’m now using SharePoint and tagging to put all of our content into one area, tag it and then find our gaps. This way I know where I need to be writing more content, where I need to be editing what we already have, and where we already have enough!
  3. Making it personal: As part of our rebrand, we’re looking into what our visitors are interested in knowing about us. Part of the fun is creating heat-maps with imposed metrics. I sent this image around at the end of the day yesterday, and suddenly after having attempted a few times to let people know that keeping a current picture and bio matters, our sociable but humble software consultants are flocking to show off not only their new beards (no kidding) but their experience, interests and expertise. Of course, to generate interest I titled it ‘Boys > Girls’ and I think that worked quite well to start the inputs toward showing off our awesomeness as a company as we move toward our new site!
  4. Bring home the bacon with KPI’s: This is the biggie. Between Pardot (my marketing software automation tool) and Mycrosoft Dynamics CRM, I can go in to my CEO’s office and say hey, this week we have more visitors, and engagement is up, but we have touched fewer of them personally, and our opportunity generation has dropped. How should we go about reconnecting? And where are the opportunities we’re missing based on this data? Marketing used to be very theoretical, and while it’s still retained the creativity I love, I’m no longer working on instincts alone, but proving and disproving them with relevant and recent data. I’ve always needed creative release, and have also always loved scientific processes. I am really happy to have found a place where those two live in harmony!

Metrics = insightful, informed decision making

In my first posts, you can tell I was testing the waters moving from my aerospace comfort zone into thinking like a software engineer, but now I’ve seen the impact to my effectiveness first hand, and have learned to trust our engineers to think like engineers – and therefore let me think like me. The end result is accessible information that’s valuable to me, when and where I need it. If you had 15 minutes today would you know where to spend it based on real-time data? I do now and it’s made all the difference.

Engineering software development project completed

It’s been a long journey, but today we delivered the Release Candidate 1 for the software modernization project we announced back in 2009. Our client, a pipeline supplier, now has new and improved software that assists purchasers of pipe in designing multiple segments at a time based on specifications that they enter. Compared to the old product, it has a database that will scale with the company as it grows, in addition to providing capability for  users of their software to design multiple segments of pipe at a time and better manage compliance.

Future releases will provide the ability for users to collaborate with their teams to design separate pieces of pipeline and merge them into one project.

Read our case study to find out how this engineering software development project  improved our client’s capabilities.

Engineering Software Development for Pipeline Services

Work is coming along on the engineering software development project we announced last spring. The re-vamped software is progressing nicely, and our software engineers are feeling good about an initial release sometime towards the end of next year. Our client is excited about the work, as they are anticipating that its improved user experience and capabilities will really set them apart from the competition.

One great feature we are really excited about is that the future release will allow purchasers of pipe to perform multi segment pipe design. Currently they can only design one pipe at a time, which is not the best representation of how pipes operate in reality. This will really represent an improvement in productivity and ease of use.

As our engineers have worked, one thing they have found to be really helpful is the Agile methodology for managing projects. As they dug deeper into the client’s needs for this software, as often happens, it turned out that more time and thought was required than we had initially scoped out to complete the project satisfactorily. Agile has really helped on both ends to give great visibility into what is going on with the project as we move through different iterations to completion.

For more on Agile, find out how user stories can help your team get started.