Architecture Is Not Overrated

One of the tenents of Agile programing is make only what you need when you need it. Every scrum team I have participated on has set out on a development course that only knows a week or two in advance where it is going. This occurs because most product owners don’t have a clear vision of what they want. They think they know what they want but more often than not they get into a “Bring me a Rock” situation with the team. Storyboarding at the business level with some key details is essential. And having a technical person sitting in on these sessions is also essential. If a technical person is in the room Use cases that are “useful” to the team can be determined. This last week I have spent researching the “what” I will use to build this application. I already indicated that I will use Realm. I like its road map to integrate with MongoDb. If I ever decide to publish this application into one or more App Stores I will then move on to build a project to create a central repository for wine meta data. As users add Wine info to their inventory the app could query for and/or submit that information to the central repository. Likewise, wineries could add their information and the app can be augmented to pull that information when wine is being checked in to a user’s cellar. But, we are a long way from that. The point is, these concepts have direct impact on how you build an application. If you know them in advance it will impact on how you lay your foundation for the application.

I have been doing my research by watching videos on Pluralsight. It is a treasure trove of great courses and overviews and worth every penny of its subscription price. Ramping up on Realm required the installation of Android Studio. I have to say for a free IDE this application is pretty sweet. However, it got me thinking; “Do I really want to make a native application?” Being the Microsoft Technology bigot that I am, I had to ask; “Can Xamarin Forms (a set of tools for developing Android and iOs apps) really consolidate into one place most of the code I would need to develop on two platforms?” A little research on Pluralsight showed there were ample courses on Xamarin Forms as well as a very interesting short course called Xamarin: The Big Picture. It basically indicated to me it had the chops to do what I wanted and it made me aware of a potential shortfall I could run into, specifically Xamarin doesn’t provide charting capabilities. I had to find a path forward from this as what is an inventory application without a dashboard and while that is pretty far down the “backlog” of things to do. I certainly don’t want to crash and burn many hours into the development. Syncfusion has a “Community Licence” for little guys like me and they have a charting package for Xamarin and since the price is right (free) it is a no-brainier.

The last piece of the puzzle is a path forward to make the iOS app. Well, it so happens we have a Mac Book in the house. My son abandoned it several years ago. It is pretty beat up but it works and it will become my iOS build server when I get around to it. (Still need an iPhone but I think my daughter will get a new phone in a year or two and I hope I can mooch her old one). So, I think I am ready to go. I have the hardware. I have the software. I have clear vision on the moving parts and a path to make them. The “Hardware” Architecture is in place and the software players have been recruited. Next comes the “Good Stuff” for the Software Architecture. I have to map out my “v1” use cases and come up with a namespace skeleton for the app and I also have to study up on Xamarin forms. More to come…and comments are always welcome.

Published by Boyd Taylor

I have developed software for over thirty years. I am a husband, father, wine collector, and Microsoft technology bigot.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.