IOS Tutorials

Delegation on iOS This tutorial is a simple basic idea to show the concept of delegation on iOS, using Objective-C. Delegation is usually not something a beginner would use, so this tutorial would be targeting intermediate users, which also means it assumes you know your way around Xcode and Objective-c at a reasonable level. Final result – So here’s what the final app looks like: The app has 2 views, first view and second view. The first view has a label and a button, and the second view has a textField and a button. When you push the button on the second view, the text inside the textField gets placed in the label of the first view. Pretty simple, but its a great demo of how […]

Embracing The Flow Of The Web

A few years ago I was introduced to John Allsopp’s article “A Dao of Web Design” by a great UX designer that was on my team at the time.  Since then I’ve read a few times and have forwarded it on to co-workers in an effort to spread its good word.  The CRAZIEST part of this article is that it was written in the year 2000, the veritable stone age of web development, yet its message of harmony is just as relevant today if not more so now that we have mobile to worry about. I think this article can be summarized by just a few points.  I feel these points summarize adequately.  However, I encourage you to read the article because it is interesting to […]

Myth of the 5 Year Plan

Let me first get this out of the way, I don’t think you shouldn’t think about what you might be doing in 5 years, you should. What I don’t think is beneficial, is expecting that to be exactly what you are doing 5 years from now. Too often we get fixated on a single technology and start to think it is the best tool for every situation. This is where the old saying of if you only have a hammer in your toolbox, everything looks like a nail. What we should be doing instead of focusing too heavily on the technology we are using, we should be spending some of our energy reading up on new technologies and their capabilities. This way if something comes along […]

Distractions and the Software Engineer

I have been a software developer for a number of years and I find there are many sonic distractions in the office that prevent me from concentrating.  Sometimes it is something small like someone eating an apple in a loud way or something big like a boisterous meeting conducted in an adjacent cubicle.  A lot of developers listen to music but even music can sometimes be distracting especially if it has words.  So, over the years I have compiled a few sources of noise that doesn’t distract, to block out the ambient noise.  Here is a list of some good noise sources that cover sounds, but aren’t a distraction themselves. SimplyNoise SimplyNoise is my favorite noise generator because it simply plays white, pink or brown […]

Android Studio Rendering Problems

On Android Studio version 1.1.0 for Mac (and maybe other versions) a brand new blank application throws an error dialog in the UI editor that says: Rendering problems. The following classes could not be found: – The issue seems to be in the version of the UI editor Android Studio is using. On a blank default application Android studio is using level 22. Change the level in the UI editor to level 21 (or another other), and the error should go away:  

Tips on Gathering Good Software Requirements

At the request of an engineer who I wrote requirements for, I jotted down some tips for good requirements gathering in a software setting. Here they are, a bit tidied up: Identify the end users, the project owners, and other stakeholders who influence the success or failure of this effort. Schedule time as soon as you can to talk with each of them – especially end users – about their role, their pain points, and their vision for the project. This focuses your efforts and helps get buy-in from all parties early. It dramatically reduces last-minute objections that come out of the blue to torpedo your schedule. Have the end user walk you through their current process. Specifically, document: where they get the information they […]

How IT Consulting Can Help You

Whenever I meet someone new and they find out I am a Software Developer they often say, “I have this project…” I used to spend time listening in detail to what they wanted to do and I even embarked on a few “side” projects. These projects were filled with late night meetings in various basements, pizza, and a flurry of emails and phone calls but the excitement soon died off as the projects dragged on and completion seemed to elude us on every front. Why was it so hard? It was hard because I was trying to service all aspects of the project by myself on an already full schedule. A person can only do so much before burnout starts to set in. There are […]

Head Down – Data Entry in the Modern World

When I started writing software in the ’80s, most companies had just phased out keypunch operators, or were in the process of doing so.  To replace the vital process of entering massive amounts of data through a keyboard, programmers were tasked with creating terminal software that would replace the keypunch machines. This is when I learned about “Head Down” data entry.  I was writing this kind of program for people who knew how to type at astonishing rates and carry on a conversation at the same time.  It was if they had two separate brains, one that used the eyes and fingers, and another that used their vocal cords and mouth.  In any case, they needed to be able to fix their eyes on the […]

Tips For Writing Agile Requirements

Coming from a waterfall development environment, I was used to polishing a requirements document to the nth degree before handing it off to development, but in an Agile environment, this put me behind schedule, and didn’t even make good user stories. Here are a few things I learned while working in Agile for a few years: Give the developer all the information they need to get a good start on the user story. The developer wants to sit down, plug away at a user story, and knock it out. You don’t have to be exhaustive, but give them enough to begin without contacting you first. Briefly summarize why you’re entering the ticket, whenever it’s not self-evident. When the dev knows your purpose, he or she […]

Using Nuget Packages for Centralized Code

For about 4 years now, I have been utilizing Nuget Packages as a way to reuse centralized code. What do I consider centralized code? I’m going to go a bit more in depth into my DM.Core package, as it is the center of what I am describing of using a centralized or ‘Core’ code base. I currently use my DM.Core as a place to store methods and functions that I want to and can use in any of my projects. Email settings, encryption settings, object extension methods, and various other things. For example, my simple encryption handler has an Encrypt method, and a Decrypt method, which simply Encrypt and Decrypt a string using a base key. I have also created these as extension methods, so […]

Scrum Master, Project Manager Product Owner, What’s the Difference?

I’m often asked about the difference between a Scrum Master, a Project Manager and Product Owner.  They all are very distinct roles and are interconnected and dependent on one other. So, what’s the difference?  In Agile development there is typically a Product Owner and a Scrum Master.  Depending on the organization, a Project Manager may also be part of the overall team. The Product Owner is responsible for the overall product development and its lifecycle.  They set the vision and the metrics for the product (through market analysis, control groups, etc.).  They also maintain and prioritize the Product Backlog (consisting of user stories) of features. The Scrum Master is responsible for managing the work of the team developing the features.  They work with the delivery […]

Holding a productive Scrum Meeting

I have heard horror stories from colleagues of daily scrum meetings that run over an hour… STOP IT IMMEDIATELY! A daily meeting running this long becomes a roadblock to several of the basic principles of the Agile Manifesto ( Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Simplicity–the art of maximizing the amount of work not done–is essential. How can these principles be met, if the team is locked up for an hour EVERY DAY? It is the responsibility of the Scrum Master to assist the team in efficient delivery of product. Start with the daily […]

How Your Company Can Benefit From Staff Augmentation

Running a successful business, keeping up with and beating the competition, meeting the needs of your customers and growing your business.  It’s overwhelming what it takes to run a successful business.  There are so many departments that need your attention and one of the most vital parts of any company is its IT department. IT takes its fair share of the budget and it seems that IT and technical people are changing jobs more often than the people do who are in your other departments.  And the sheer volume of options available to you when it comes to technologies; what is right for your company and do you have the right people to make those technology succeed. One of the options available in today’s market […]

The Great Software Developer Secret

Pick any software company and take a stroll through their cubicle farm. You’ll find developers white boarding out problems, coding and staring at 2 or 3 monitors at a time and occasionally having nerf gun wars. Most will simply view this environment as a standard software shop but if you take a closer look you’ll discover something deeper lurking in every developer writing code for a living. What is it that every developer hides from those around them? A Secret If you corner a developer in the break room and start prodding them about their project or what they’re working on, you might notice the nervous twitch in their eyes as they tell you everything about their work except for their one secret. This secret […]

Trouble with Bash Scripting? STG Consulting Can Help

Unless you have a background working with computer programming, when you hear the term Bash script programming you most likely don’t know what it is. Bash script programming is known for being one of the easiest to learn when it comes to computer scripting languages. But the trick is learning it well, and making the foreign language that computers seem to speak make sense. Bash is a useful program because it allows the user to give the computer instructions and take more control of what their computer is doing. Many IT frustrations happen when basic programming isn’t fitting a company’s or person’s needs. Bash is one way to make sure your computer is working for you, instead of against you. It can be difficult to […]

The Importance of Event Tracking

My choice of analytic tracking is Google Analytics. For one, out of the box, Google Analytics is a very powerful tool. It measures Sessions (Total number of Sessions within the date range. A session is the period time a user is actively engaged with your website, app, etc. All usage data (Screen Views, Events, Ecommerce, etc.) is associated with a session.), Users (Users that have had at least one session within the selected date range. Includes both new and returning users.), Pageviews (Pageviews is the total number of pages viewed. Repeated views of a single page are counted), GEO location (Where the visits are coming from. it breaks it down by Country and City.), and Mobile (What device type was used to access the website. There […]

Great Ways to Increase the Cost of Your Software

After years of writing software I have seen a few areas that are often over looked.  These aren’t hard problems to solve.  But they do require planning.  If you take the time to think through these issues before building your application you will reduce costs for this and future applications. Don’t manage your data It’s just data.  This is the only app that’s going to need access to this data.  So just create it and move on.  WRONG.  Stop and take the time to think about how this data will be used in the organization.   What department is responsible for maintaining this data?  How are you going to share this data with other applications?  You want to avoid having the same data stored in many […]

Hedging Your Bets: How to Know Which Programming Languages to Learn

Early on in my development career I came across a lot of developers who would try and learn multiple languages; at the time, this was typically Java and .Net. I would often ask people as to why they were doing this and usually got a response of, “Well, you never know which language is going to be around so I am going to hedge my bets.” In the rapidly changing world of software development, it is always confusing as to what you should be learning, what you know well enough, and what you shouldn’t tell people that you know how to do. Although admittedly the last one can be a balance of longevity with security. So what should you learn? Fast forward from the early […]

Going Mobile With Your Business

How to get your business up to snuff with the latest technology! As Pete Townshend said, “Goin’ mobile…Keep me movin…Mobile, mobile, mobile yeah’”. Pete sure was a head of his time with those lyrics. Let me ask, where do you feel you are at with mobile technology? Is it a technology that keeps you movin’ or is your business lacking mobile traction? As you think about those two questions, I wanted to outline a few key areas where you can focus to help your business take advantage of the latest mobile technology. Know your users and their habits As I have worked with many different companies to help them with their mobile strategy, I share this everytime we have a discussion. Knowing your users and […]

The Evolution of the Employee

Having spent the better part of 20 years driving talent acquisition strategies within global organizations and small start-ups, I’ve had many opportunities to see and hear how organizations are evolving in the constant fight to attract and retain top talent. In today’s aggressive battle over top talent, there are so many more tools available to help organizations than when I first stepped into the profession in the mid 90’s; however, the workforce is so much different than it was back then, and it is evolving at lightning speed. Organizations who understand how to adapt to the way professionals wish to practice their trade, and put this understanding to practice, will have the best chance at winning the war on talent. Finding top talent is easy, […]