Overview

Our Custom Software Services

The typical software project requires many different skill sets, but this shouldn't be your problem. In most instances, we have all the talent needed to define, design, develop and deploy a sophisticated custom software application. We're a one-stop software development shop. 

As I mentioned above, the average software project requires multiple talents. Every project requires a Project Manager, Business Analyst, one or more Computer Programmers, Software Testers, Database Architects, Technical Writers, System Administrators, etc. And that's just the software development side. Add hardware installation, database configuration, web servers...the list is pretty long.  That isn't to say that one person cannot fulfill multiple roles - I do it all the time. But what I am trying to convey (in a long-winded way) is that you need more than a Computer Programmer to have a successful outcome. Much more. 

About Our Service Area

You may be wondering if we work with companies in your area.  After all, we're in Colorado and you are probably somewhere else. Unless you are located in harm's way (I'm a software professional, not G.I. Joe), I'd be happy to come to you. To learn more about our service areas, click here.

Okay, let's take a look at our core IT services. 

IT Consulting

Anyone can hire a programmer.  Literally. But to achieve the best result, you need more than just a programmer. You're looking for someone who can help you turn your good ideas into great ideas. Someone who knows the optimal way to solve your problem, because they've been doing just that since Dallas was on TV.  Honestly, consulting is the most valuable service we provide. I've been creating custom software for 20 years. These are real-world solutions, not academic exercises.  When you hire me, I'll be involved in all key discussions and decisions related to your project. I personally help you decide the best solutions, features, technologies, etc. to make your project a successful one. And because I am fluent in English (fluke by-product of our education system), getting there is as painless as possible.  

Project Management

You mean we're actually going to manage your project? Shocking, I know.  But what exactly does it mean to manage a project? Is it just a matter of creating a slick project plan, and then handing out copies every week? Not really. Managing a project means understanding what your goals and objectives are, and then driving the entire process to completion, and accomplishing those goals. And yes, often times it means dragging people kicking and screaming along the way.

For example, one day I was in a meeting with a client discussing a feature of their application when a participant (employee of the company) took the entire meeting down an unrelated path. The topic had no bearing on the project, to be frank. These diversions can be killers to the project schedule, especially when you add them up over several months. So, as the "highly paid" consultant, what was my job in this scenario? Listen politely, hoping not to ruffle any feathers? Milk the hours, and act like I was mildly interested?  As a project manager, that's not what I'm paid to do. My job is to keep things moving, because if the project is late, nobody is going to remember these time wasters. They will just know the project is late, and I was managing it.  It's my job to make sure diversions like this don't derail the project plan. Of course, I do it in a polite way. I'm not a jerk about it!

Project management goes a lot further than managing meetings, too. To manage a project successfully, I need to manage all the resources involved in the project. I need to make sure everyone shares the same goals and objectives of the project, from the developers down to the testers. It's a symphony of effort, and I'm the conductor. It also means I take ownership of the project plan. Any problem related to the project is my problem

Of course, I employ recognized project management techniques, mainly from Project Management Institute's Body of Knowledge (PMBOK).  In case you've never heard of them, PMI is the gold standard for project management techniques and practices. Visit their site here.

Business Analysis

Your organization is pretty unique, and that "uniqueness" has probably led you to search for a custom software solution. After all, if an off-the-shelf solution existed, you'd probably buy it. When you go the custom route, the company/individual you hire is going to need to learn and document your unique business processes (needs), and come up with appropriate solutions. I'm talking about business analysis. 

Business analysis is the method used to facilitate business process improvement. As business analysts, what are our main goals? Let's list them below:

  • Identify the Right Requirements
  • Reduce Waste
  • Improve Business Efficiency
  • Create Appropriate Solutions

Software Design

To design the optimal web, desktop or mobile solution, I need to share your vision of the project.  My job isn't to build the system I want. I'm here to understand what you want, and then turn those wants into something you can understand. That's software design in a nutshell. So how exactly do I accomplish this Zen-like task? First, I listen. Yeah, it's a lost art. Then I ask questions. Okay, a lot of questions. Then a put all that info into the "Rob Hopper" (patent pending), and after a moderate delay come up with what I believe is the optimal solution. I then take this solution and create a prototype, which you and I review together. With a few refinements, we now have a complete design for the system you wanted. I use really cool prototyping tools, such as Serena Prototype Composer, which you can download for free.   

Software design involves more than pretty screen shots and prototypes. The technical foundation of your system also needs designing, in addition to system architecture, database design, and more. 

Computer Programming

Nowadays, it seems like everyone wants to be a computer programmer.  Build a pretty website, download a free development tool or two, and you are in business. Oh yeah, don't forget the business cards!  If you've ever hired one of these guys, you already know building software correctly isn't quite that easy. I can usually tell the experience of the developer by the coding standards they follow (or, more than likely, don't follow). There's a world of difference between software code written with the help of "The Idiots Guide to Programming", and software code written by a professional. For starters, the professional designs the inner workings of the program code first, defining how the system architecture will be constructed. The professional established coding standards, including how to name properties, events, methods, tables, fields, etc.  The professional plans the system internally before writing a single line of code. An amateur rarely does any of these things.

Professionally written programs all have common characteristics, too. They are all:

  • Well Documented
  • Maintainable
  • Scalable
  • Robust
  • Secure
  • Expandable

Software written by an amateur rarely exhibits any of these characteristics. Over the years I've developed a clear, well documented set of coding standards, covering all of the items mentioned above, and more. It might appear like all these things would add a lot of time to your project, but in reality they save us and you a lot of time in the long run. For example, a poorly designed application will break more often, perform slower, be less secure, and generally be a pain in the rear to fix or modify. How much time do you think your organization will spend on those problems, just in downtime alone, over the life of the application? How much more will it cost to have your expensive developers fix and maintain the application? And yet, a few hours in the beginning (and along the way) by your developers could have avoided the entire nightmare. 

My point is this. Professional computer programming is not a luxury. It isn't a "nice to have" feature. It is a requirement.  It is going to cost you 100 times more if you do it any other way.

Database Development

I cut my teeth over 20 years ago writing custom database management systems (DBMS) using dBase III+.  I still have the 3.5" diskettes to prove it. I'm not your average person, because I actually have a real passion for database development. I know, it's like saying you have a passion for a rock. There's just something about taking a real-world software problem, and then turning it into a system of tables, rows, and columns that manages everything neat and tidy. I find it challenging, too. Building a database is sort of like building a 10,000 piece puzzle, but having someone hide one piece, just to mess with you. Sure, building a professional database system requires analytical ability. But it also requires a surprising amount of creativity, determination, and the ability to think outside the problem. And when you eventually find that last piece, it is very rewarding. I know. Hard to imagine all this from a database management system! 

I take a pretty unique approach when it comes to developing database systems. For starters, I'm fanatical about entity relation design (don't ask). I'm equally fanatical when it comes to achieving an optimal database structure. I make no compromises when it comes to speed, security, and data integrity. Without those characteristics, you aren't talking professional DBMS in my humble opinion.  Sure, I use standard data normalization techniques, but building real-world applications requires more than an academic approach. Sometimes I have to violate a few normalization rules (I'm a Rebel, I know) to achieve a desired level of performance. 

Today I mainly focus on SQL Server and MySQL, two leading database management systems.  For each project I personally create the Database Dictionary, ER Diagrams, and other Data Architecture documents. I build web, desktop and mobile database applications for a variety of industries and verticals. If your project requires a relational database, I can probably help. 

Software Testing

Yes, we test all our applications.  But software testing isn't a linear task to be performed once the coding is completed. We employ a test-driven approach. This means we test your application through the entire development process. But wouldn't it be easier to just wait until the end, and then test everything at once? No. In fact, problems within the code have a way of cascading, meaning that one problem impacts another, which impacts yet another. The easiest, and least expensive time to deal with a problem is immediately after it is coded. It gets harder, and more expensive, as time elapses. That's why we test our applications the second they are committed to the source code repository. We also run automatic functional and regression tests nightly.

My point is, by the time the coding portion of your software project is done, your application is 90% tested. And that saves us all a lot of stress. I don't like that kind of stress, and I doubt you do either. 

We use a variety of tools to test our applications. I couple of my favorites are Selenium and QuickTest Professional.

Software Deployment

As I mentioned above, our service is a one-stop shop.  Our responsibility doesn't stop when the coding is complete. We'll also assist with the deployment (installation, configuration, data conversion) of your new software application. Usually we perform this task remotely, but on occasion on-site visits are required. Our attitude is to do whatever is required, regardless of your geographical location. 

    If you'd like to discuss your software project call my direct line. It's 1.800.984.6977 Ext. 708.