Business Know-how or Programming Wit? The Tech-Design Tussle

With the rapidly changing landscape of IT and business, having the right line-of-business (LOB) software is becoming more and more important to keep on top. In this article, we’re going to take a look at the ins-and-outs of software design, and aim to answer the question: Do you need to be a genius programmer to build high quality, line-of-business software? 

You may think it’s an obvious answer. Surely, without in-depth programming knowledge and know-how, where would you even begin with designing line-of-business software? But the clue’s in the name. If you don’t know what your business actually needs, how will you decide what exactly you want the software to do? 

The short answer, then, is a resounding no. Designing line-of-business software isn’t about knowing your way around the ins-and-outs of deep C++ script, or being able to jump into the Matrix at will. It’s instead about having an in-depth knowledge of your business requirements, and applying them to the design of a program.

A genius programmer can certainly make headway when it comes to designing software - they are a genius after all - but without knowing exactly what you need the specific software to do, you’ll probably just end up with a catch-all piece of tech that will need constant attention and development as your business requirements take shape. And we all know how that ends up... (the dreaded spaghetti code… *shudder*). 

Therefore, knowing exactly what you need the software to do before it comes to the build will put you in far greater stead than just rushing headlong into the nitty-gritty world of code. In much a similar way to choosing what software to use, it’s ironically more difficult - and arguably more important - to analyse your business and design a system around exactly what you need it to do, rather than actually programming and coding one.

As such, a tightly-scoped, simple program can actually deliver far more of a benefit than a genius-ly complex piece of software that’s able to simulate entire worlds, whilst also washing your dishes. Although - to be fair - that would be quite useful. But it certainly wouldn’t be cheap, and would probably take a good few thousand years to design.

Heading back to reality for a hot second, a little bit of both never did any harm, sure. But the point here is that this is software for business. And that means ROI, UX, UI and everything in between. As such, it’s probably best to let Mr. Business Whizz run wild before you even dip your toes in the type of code you want to use. That way, when your local tech person gets to work, you have a clear plan of exactly what’s needed; leading to a tightly scoped and efficient technological wonder, rather than a wild, untamed beast. 

So, in conclusion, the ultimate dream would be some sort of robotic business-whizz-programmer-genius-hybrid, but if you don’t have one of those to hand: know your business before you sow your code, and you’re well on the right track to getting your business running like clockwork. 

That sounded quite profound, didn’t it?

Need any help designing LOB software? We bring all the Business Whizz-dom you’ll need. We have a wealth of management consulting experience - but are also competent programmers. Go with us, and you get the best of both worlds. Check out our website for more information.

The Fine Art of Balancing Usability with Functionality

When it comes to developing software, there’s no such thing as one-size-fits-all. In fact, one of the toughest jobs for any developer is to create software workflows that are simple for beginners, but also scalable enough for advanced users. In today's article, we’ll explore how to strike this delicate balance.

This software balancing act really comes down to two things: usability and functionality. The former refers to making applications easy to use from the starting blocks, so even brand new users can navigate the software with relative ease. The former, on the other hand, refers to providing the maximum number of functions to the user – thereby making the software more powerful and, arguably, better at its job. So let's jump in and explore some strategies that developers can use to keep this balance on an even keel.

Strategy #1: Cater to both audiences

Perhaps the preferred solution for users and developers alike, the first strategy we’ll discuss is the idea of building the software with no restrictions at all, and then locking down advanced functions. For example, imagine a piece of software for connecting to the internet; for most users, it’s a matter of typing in the Wi-Fi password and clicking a button. But advanced users may want to configure DNS settings, static IP addresses, and so on. In this case, it’s easy for a developer to create a menu of functions in a dedicated Advanced section accessible by a single button. To spin this another way, developers may even want to create two modes which users can toggle between: basic and advanced. This way, the decision is with the user, making the software more flexible.

Strategy #2: Signpost the software

Love ‘em or hate ‘em, there’s no denying that tooltips and other forms of text guidance in software perform a valuable function. This form of signposting is particularly handy when it comes to guiding users who may be new to the application. In fact, in many businesses, UX (user experience) designers are being paired with UX copywriters whose job it is to write this text that informs and instructs users in how to achieve their goals in the software. In the best cases, this text-based content can be bolstered with videos and only made visible when the user explicitly asks for assistance – hence the necessity for clickable tooltips. By signposting applications in a smart way, developers are able to make even advanced functions accessible to beginners – effectively striking the all-important balance between usability and functionality.

Strategy #3: Keep things simple

There’s a reason that those UX designers we mentioned earlier exist, and much of it has to do with some developers’ tendencies to ‘kitchen sink’ software development. It makes sense, doesn’t it? If you’re developing a tool to perform a specific task, you naturally want it to carry out as many ancillary functions as possible at the same time. But from a development (and user experience) point of view, this can lead to cluttered interfaces which can be off-putting to users. One solution to this problem is to focus on usability first, by designing a UI which caters to the core function of the software, and then add options which increase functionality at the request of the user. For example, imagine you have a list of rows where users can type in up to 100 product names. You could include 100 empty rows to give the user room, but it may be better to start with 5 empty rows, then add a simple + button to manually add more empty rows. This is just one small example, but it speaks to a design philosophy that manages to balance usability and functionality in a very real way.  

Do you have any pet peeves when it comes to software ease-of-use? Whether you're a beginner feeling a little swamped or an advanced user frustrated with lack of functionality, we'd love to hear from you in the comments below or via social media. And of course, if you'd like to know more about the smart way that our team at BTC develops software, explore our website now or call any time on 0208 144 3900.