This is Steve Moon, the Founder and CEO of Clever Coding. As a quick intro, I went to Brigham Young University and received a degree in Computer Science. I worked at BYU for 7 years in the IT department as a developer and team leader. After BYU I worked for a year and a half as a consultant helping Universities with their HR systems. In 2008, when Apple opened up the App Store to third party developers, I created one of the first 2000 apps on the Apple App Store. Shortly afterwards I founded Clever Coding. 2018 marks Clever Coding's 10 year anniversary of developing mobile and web apps for clients all over the world.
Topics to Explore
I have learned a lot over the last 10 years as we have gotten the opportunity to be a part of some amazing projects. I will be writing a weekly blog post. A few of the topics I would like to explore are:
- What I have learned over the last 10 years in the mobile and web development space
- Where I see mobile and web development going over the next 10 years
- How I see AI revolutionizing the world we live in
- How I see AI revolutionizing the software development industry
- Being an entrepreneur in the web and mobile development services industry
- Our current in house project is to create a better solution to run a software services company
Our App Development Process
One of the main things I want to write about, in the beginning, is the process of developing apps for clients. Application development as a service or development for hire has been an extremely rewarding and challenging endeavor. I have been able to partner with some amazing clients along the way on innovative mobile and web apps. As a company we continue to expand our team and take on new work. The last 18 months has been an exciting time at Clever Coding as we have experienced 200% growth. I have always aimed to do app development as a service the right way. We strive to be conservative with our bids and transparent in the development process. When we send invoices we provide a detailed breakdown of all the hours billed during the week. We quickly identify any issues that come up that may affect the budget or timeline in an effort to ensure open communication with our clients. We are flexible in working with each client in a way that is most productive for their circumstances. Working with a large corporation is very different from working with a startup. No matter the size of the company, each one has unique needs and we work with each individual company to create a plan that best meets those needs. I personally know each client and make myself available to help resolve any issues that might come up during the process. I make myself available as a consultant to share the knowledge I have gained over the last 10 years. As a developer at heart, I like to be involved in the development process to make sure that all projects are well architected with consistent programming practices. I still love to jump in and do coding when I can.
Despite all we strive to do, to be a great software services company, issues still come up from time to time. The most painful one for everyone is when a project goes over budget or takes longer than expected. We use an agile approach to development and are currently using the kanban method to accomplish this. I believe this approach delivers the highest quality product that meets the client's needs the best. One problem that happens with an Agile approach is scope creep. Over the last 10 years, the biggest contributing factor to budget overruns and missed deadlines is scope creep. Catching big scope increase items is easy. When big items are requested, we will give a new estimate then adjust budgets and timelines accordingly, but it is often the little items that get added over the lifetime of a big project that add up to a big number. A hundred little 1-2 hours changes can easily add $10k - $25k of cost to a project.
While historically scope creep is the number one culprit, on an individual project bases one of the things that sometimes happens is underestimating a task. Anyone that does software for a living, and is willing to be honest, will admit that estimating isn’t an exact science. I am still personally involved in all the bids/estimates that we send out as a company. After 10 years in the mobile and web space, we are able to give a much more educated estimate on how long something will take based on past experience, but sometimes we still underestimate a part of a project. This often happens when clients present unique features that they plan to use to set the app apart. Trail blazing new features and technologies is one of the funnest things we get to do, but it is often the most difficult to estimate. I tell clients that if they can dream it up we can do it and we have always delivered on that promise. I always make it very clear that the estimate for a given feature like this is my best estimate, but there are a lot of unknowns that could crop up. A few years ago, I finally started to add a 20% contingence bucket of hours on projects to cover scope creep and the unknown factors of estimating. This has greatly improved our ability to deliver projects on time and on budget.
We are constantly looking for ways to improve our process to become a better app development company with each new project. This includes looking for ways to better manage projects and provide more accurate estimates. This has lead me to see the opportunity to revolutionize the development process by applying Artificial Intelligence (A.I.) to the development process. In the not so distant future, I believe AI will supplement what developers do in a dramatic way. I think there will be tools that allow developers to create complex apps in a fraction of the time it currently takes. The productivity of developers who learn to harness these new tools will grow exponentially.