Your smart refrigerator can be my enemy

Akamai reports that hackers are turning “smart” devices into botnets, or a group of computers that, without their owners’ knowledge, send out spam or viruses to other computers on the Internet. A common tactic is to use a proxy that hits a target from a variety of locations.  The most widespread device used in such attacks is a CCTV camera with a DVR, satellite antennas, networking routers and modems, and NAS. Read more

Will You Save by Cutting Daily Scrum Time?

A company’s daily use of Scrum time adds up.  Why not cut this cost?  Imagine how much money you could save with a five-person team if it didn’t need to spend time in daily scrums, doing actual work instead.  It can be as many as five hours a week. The reality is that, in our experience, the cost of an engineer’s dissociation from a project is higher.  Building the wrong project because an employee made wrong assumptions, because they didn’t talk to the client, can be a lot more costly than the cost of Scrum for one employee, one hour per week per person. Read more

Why Agile?

Much has been written about the Agile methodology, and we are not here to say anything new.  Essentially, Agile marries the values of the business world with the values of the engineering world, and allows them to coexist happily and collaborate with minimal conflict. It allows software engineering shops to make their living, and it lets businesses get their products. Companies that either deliver or consume software engineering services and have not adopted Agile are destined to live in pain and drama. Read more

MVC vs. MVVM: Pros and Cons of Single-Page Applications

There’s been a ton of writing on the subject, so while I can’t say anything unique, I’d like to post this for a discussion, both internally and with our clients. Historically, we’ve been going with MVC most of the time, especially for MVPs, where time to market and low cost is of an essence.  However, MVVM presents a few advantages when you are building for years to come. I like MVVM better than MVC in a form of complete isolation of FE from BE: run a RESTful API server with whatever back end platform there is (Ruby on Rails, Node.js, Java, .NET or Django) and a completely separate JavaScript application (Backbone.js, AngularJS or React) running Read more

Why test automation and continuous integration?

Test automation is essentially taking existing test cases and making a computer do them instead of a human being. Test automation is usually part of continuous integration.  We would run Jenkins on a new instance in AWS. Every time an engineer commits new code, Jenkins runs all of our Cucumber test cases against it automatically, without the involvement of a single human being. This way, if any commit breaks anything anywhere in the system that’s covered by the automated tests, the error will become visible immediately and will be fixed before we even get close to a release date. The advantage of this approach is that you don’t have to wait to accumulate a bunch of features so that Read more