Top-Down Development

    If you ask me what my development style is like? I would have to describe it as a form of top-down view with a model view approach. I've been describing my approach to build web application this way for a few years. Every now and then I encountered a developers who will agree with this approach. I guess you can just take the definition from wiki page but really I have my own way of marketing it.
    "Throw everything away thing and get ready to start fresh. That's just how it is with every new javascript framework and I think it’s safe to say if it not middle-tier or backend code get ready to rebuild it. This is actually an awesome thing and you need to believe it because forcing development to the backend or middle tier every time something new comes along isn't realistic. Besides why not have the biggest impact on an application's lifecycle with the least amount of work!?"
    This is how I marketed my approach it probably could use some work for some developers follow or get excited about. Regardless if you agree with me I'm out to make everyone's job better. It's a javascript world. Love it or hate it but nothing is the right answer forever in a rapid development environment. Whether you're using react, angular or something else you can't ignore the possibility that your code could be better. Well some can, but I like to step around those type of developers and just push through.
   At the end of the day I do know it’s about results and results pay the bills. However mobility and new capability with your application sometimes takes priority for me. There's always going to be another feature you could have created or improved but what if it takes less time in a new framework.
  Currently I have a way to simplify this approach. I'm not going to go in depth because it’s easier to show and I'll probably work on example in the future but to understand it you can try it with any existing website. From a frontend perspective you can completely redesign any site in seconds.

The steps to take tackle any website project
  • Layout
  • What's the setup for the navigation? Dashboard or mobile like? Build index.html and pick your js libraries. 
  • Design
  • Colors, Shapes and size! Start creating css files.
  • UI/UX Flow
  • Learn the routes and where things connect. Starting creating js routes.
  • Endpoints
  • API and data coming or going. Start creating javascript models in typescript.

Data is a Black Box
    One of the things that has helps me is to think of data like a mystery box until I'm ready to write it out. I don't care where the data is located or what different types of content are listed in a given record. Instead I just want a sample of the fields and an outline of the data types so I can guess what the data might look. From there I might think about the upper or lower bounds for each data type if I need to test. Example a telephone number, I don't know if its international but I would include it in my tests or user interface for support.

As spend more time on a project my data types start to change and this is where the foundation of my projects starts to move a little but my frontend code is always ready handle the new structure change. Just in case I didn't like a redesign or solution to the UI first.  This is why I always recommend treating data like a box black.

Everything is a Prototype
   Chances are if you're updating an old site your manager will be worried things will break and use the excuse that there isn't enough time but keep rolling out with a new features while including new stuff you want in the mix. While working on this mixed version have a new version that is completely separate from the existing application so you can compare notes. I don't believe anything I do with frontend code to be set in stone and neither should you!

Final Notes
   If you read my article on "sandbox methodology" you might say this approach enables such a situation that I want to avoid. And I would agree but I think in a longer terms it is good for combating it. Give you and your team enough time to address the issues in your development approach. Development can be fast and be done right if everyone is on the same page. Which is way I strongly recommend using a Lean methodology to improve your team's collaboration.

Popular posts from this blog

Installing Windows on Acer chromebook 15 cb3-532

Entity Framework: ToListAynsc & WhereAsync

CSharp Cheatsheet