The New School of Systems Development: Simple, Dynamic, and Agile
I have a confession to make: A little over six months ago, I was a traditional SDLC developer. It’s hard to admit but it’s true. Now don’t get me wrong, developing according to the Systems Development Lifecycle has its benefits (See what I did there… I defined SDLC for all you non-engineers).
For unstructured problems or attempting to define a root cause of a problem and a plan to address it, this should look familiar:
Or the 30,000 ft. view. I can still hear my professor drilling it into our minds: Plan, Analyze, Design Build, Test, Deploy, repeat. But for developing, I mean really developing, a large scale, functional, proprietary system, the SDLC poses serious challenges.
For complex systems, this methodology only gets you so far. It is impossible to understand the implications of all the interactions of attributes and entities (read databases and their “rows of data”) without seeing how the UI will interact. With rapid-development prototyping, the beta releases of the system can help facilitate design discussions (more to come later).
Put another way, end-users will select and de-select everything and anything in a system, just to see how it works. In addition, typically the technical individuals (read nerds / engineers) with the skill-set to build a User Interface (UI), Database (DB), and the connecting middleware have little knowledge of the process that is being modeled (i.e. underwriting a loan, processing an insurance claim, determining the credit worthiness of a consumer, etc.)
Oh no this is bad, what should we do?
The old answer is” Buy an out-of-the-box solution, cross your fingers, and hope the teams of engineers got it right.
But what if there is a better way? There is, it’s called the agile methodology.
Ok great another diagram, WTF am I supposed to do with that?
Answer: Sign up for Mendix and try it for yourself.
I know what you’re thinking: Wow, I read this far and now you are doing a sales pitch… Don’t worry, keep reading. There are other products out there, and yes I work here (www.mendix.com), but I kid-you-not, this platform is transforming the way IT supports business. By using Data Models rather than mySQL commands (non-nerds, read: creating your DB), using visual modeling (think: visio) for complex middleware (i.e. connecting your UI to you DB), and a simple form builder (interface creator), Mendix takes custom applications to a whole new level (and much, MUCH faster than out-of-the-box “Solutions”)
This is what I am talking about:
The Microflow – Implementing Functional Logic, Business Rules, Workflows and Processes
By taking out the inevitable “Spaghetti Code” step with Microflows (nice work R&D!), Mendix SIGNIFICANTLY reduces the risk of project failure. Oh yeah, did I mention you build mobile forms the same way you build web applications? That’s because it’s all based around HTML 5. Think about that for a minute. With one Platform (Mendix) you can build mobile and web applications that are compatible with Blackberry, iOS, Android, Windows Phone, and their corresponding browsers Internet Explorer, Firefox, Chrome. And what about that ever-elusive cost curve? You know, every time I want to add new functionality to the system / application the cost goes up exponentially…
Cost Curve for Software Implementation
Yeah, with Mendix, that’s not true either. I have been on Multi-million dollar projects in my old life (SDLC, remember?) with over 25 consultants that lasted over 12 months. In the past 8 months I have completed projects with similar or more complexity (integrating with multiple systems while building mobile and web-solutions) in teams of two with the Mendix App Platform.
Think about that for a minute… Two guys and a platform outperformed 25 consultants because they had the right tools. Not because the other 24 consultants weren’t capable, they just used the wrong technology and tools and the wrong methodology (SDLC) for the problem at hand. Simply put, they never really had a chance to begin with.
As the popularity and understanding of what it means to be “agile” from a software perspective becomes mainstream (like “cloud” 10 years ago), more businesses will adopt app platforms like Mendix in order to more tightly integrate their business and IT operations, with significantly more emphasis on mobile.
What do you think? Agree, Disagree, Concur, let me know in the comments below!