(AKA: Keys to Building Amazing Software) Building amazing software doesn’t happen by accident. It’s the result of a disciplined team who understands the importance of key principals, or cornerstones of software. These key principles set the foundation for a successful piece of software. Software that’s both rewarding for the end users as well as the team responsible for building it. In part one, we talked about the first two cornerstones of software that set the foundation needed for a project to succeed....

(AKA: Keys to Building Amazing Software) Software is squishy. It’s an engineering discipline unlike any other. Software is like building a bridge where the materials are unknown, the river you are building over is constantly changing course, and the laws of physics could reverse halfway through the project. Without a firm foundation, product teams cancel about 19% of software projects before completion. A staggering 47% are over budget, behind schedule, or fail to meet the expected quality standards. With the odds...

Requirement Driven Development (RDD) focuses on the attributes of a product the dev team needs to keep top-of-mind as they work. Clients and key stakeholders propose the requirements and the contractor refines them, talking with the client back and forth throughout development. In order to do this successfully, features must be constantly tested and requirements vetted through formal testing and evaluation. The purpose of a formal Test and Evaluation (T&E) program is to accomplish two goals; verification of the build...

Have you ever heard the expression, “you can have it cheap, fast or good – choose two”? This is an important concept to remember when contracting work out, especially software development. Here, we explain why the two options you choose are important and why you can’t have all three. In today's society, everyone wants things immediately. Instant gratification is trending to the point of being a way of life (thanks, Amazon Prime.) The faster we get something, the better. As new...

Building code and releasing code are not the same, despite what some may think. Most organizations become proficient at the act of creating software including writing code, adding new features, fixing bugs, etc. However, many struggle mightily when it comes to releasing what they’ve made into the world. I would argue releasing code is somewhat of an afterthought for most development teams; it continues despite the recent rise of the DevOps culture. In an effort to kick-start improvements in your...

The rise in popularity of open-source software has made the usage of third-party libraries nearly universal. Projects often use dozens of them and those, in turn, use dozens more. We want to avoid reinventing the wheel and if someone else has already solved a problem, it doesn't make sense for us to solve it again. The Good and the Not-So-Good At its best, open-source software provides solutions that have been thoroughly vetted by hundreds or thousands of users. Bugs have been...

A Client Guide from Our President/COO Heath Clinton If you or your organization is considering custom software as a solution to further your business, you may not know where to start. You may not know exactly what you need. That’s okay. In my role as Phase 2’s president and COO, I’ve seen what works and what doesn’t from both the client-side and the developer-side. I want to share what the client or organization might want to know - and quite frankly,...

Phase 2 starting working with Pioneer Library System (PLS) to create an extremely user-friendly and functional solution for a dilemma the library industry sees across the nation: offering remote services in one central application. This issue is especially prevalent in areas still growing in tech innovation, like Oklahoma. Through our process and great partnership with PLS, the solution has become so successful through user adoption as well as receiving The Journal Record's 2016 Innovator of the Year Award. The PLS Connect...