Software Engineering

For software engineers and those interested in learning about and developing skills in the area.

How to Get Your Team’s Buy-In to New Processes

buy-in thumbnail
In my last post, we discussed the tactics of process change, in particular choosing either a “big bang” or incremental approach. This time we’ll address the other big factor in making a process change successful: team buy-in. Buy-in takes effort. You have to start early. You have to take the meetings. You have to be convincing. You have to do something the team will accept. Fiat is a lot easier. So why bother with buy-in? Why Does Buy-In Matter? The… continue…

Changing Your Software Delivery Process

Big Bang
Software processes come and go. Over the last 20 years we’ve seen the industry choose various types, ranging from the Rational Unified Process to V-Model, Scrum, Kanban, unprocess and many others, and — most commonly — combinations of all of them. We talk a lot about the advantage of various processes in different scenarios, and somewhere out there is a process that’s right for you. Once you find it, you’ve only got to overcome one more hurdle: getting to it… continue…

Why Technical Interviews Work (And Why They Don’t)

Frustrated Programmer
Some developers see technical interviews as just part of the process that they have to put up with when they’re looking for work. Others think they’re great, and a great deal more think they’re the worst thing to happen to programming since <insert most hated programming language here>. Having made a business out of helping people prepare for coding interviews, let me be the first to say this: Technical interviewing isn’t perfect and I don’t think it is the way… continue…

Should You Build Your Product on a Proprietary Platform?

Oil Drilling Platform
A potential client of mine had a great idea: They were going to build the next great product (let’s call it WidgetFoo), and it was going to be social for enterprise. So, we sat down to have a high level architecture discussion. How were we going to build this thing? Before I go further, let me say for the record: No, the product’s not a widget, but since they’re in the middle of building it right now, I can’t actually… continue…

QA Lessons From iOS 6.1.2

iOS 6
Shortly after the release of Apple’s iOS 6.1, reports appeared about issues with iOS Mail and Microsoft Exchange mail servers. They said iOS devices were generating excessive interactions with the server, resulting in huge log files, and there was talk of reduced battery life on the iOS device. In February, Apple released iOS 6.1.2 to address the issue. It turned out the excess Exchange activity only occurred after the user accepted an exception to a recurring calendar event. It seems… continue…

Implementing an Engineering Training Plan

Starting Line
And now, the thrilling conclusion to our tale. After completing a hiring wish list, meeting a prime candidate and considering what goes into a training plan, the startup WidgetCo and its new hire JavaGuy were ready for their first day. The first draft of WidgetCo’s training plan looked like this: Give him an assignment, and be around to answer questions. That is a recipe for failure. The basic idea is sound: Let the candidate learn by doing, and answer any… continue…

How to Design an Engineering Training Plan

Training
We’ve been exploring the tale of the startup and the engineer, and how their fates became entwined. First, we looked at the hiring wish list — the job description — drawn up by the managers of  WidgetCo, a company focused on Ruby on Rails. Next, WidgetCo met an engineer, and although they weren’t perfect for each other, they all took the plunge: WidgetCo hired a “trainable” Java engineer with a lot of skills with some differing technologies. WidgetCo knew they’d… continue…

Does Scala’s Enterprise Penetration Threaten Java?

Scala Logo
Created in 2001 and running on the JVM, Scala has started gaining traction in the Enterprise space because its use of functional and object oriented programming gives it an advantage over Java. It’s quite rare to see software disruption happening. It’s said that you don’t start recognizing a new Hollywood film star until you’ve seen them six times. The same may be true for new programming languages. A mention here, an article there and up it pops on your “Should… continue…

Understanding Variable Types in Dart

Dart Language
In my first tutorial about working with Dart, we looked at how to use its editor, definitely the best way to learn your way around. Now, we’ll get ready to do some real work. First, A Tip In Tools, Preferences you’ll find an Update tab. This lets you specify whether you want to manually run the Editor, or have it updated automatically. Once you download the editor, go to Help, About and click Apply, Update. The editor’s updated about once… continue…

Why a Java Guy Was Hired for a Ruby on Rails Job

Hiring Flow Chart
Earlier this week, I explored the frustrating process a startup, WidgetCo, went through as it searched for an engineer who could work on its Ruby on Rails platform. After tepid results, the company’s leaders switched gears to look for a skilled engineer who could be trained in the necessary technologies. Here’s what happened once they relaunched their search. Finding a ‘Trainable’ Engineer Once it removed the “Ruby on Rails” filter from its job requirements, WidgetCo quickly discovered that its network… continue…