Are business problems more complex today? That's the assumption I'm going to operate on - and I'm sure you'll find no shortage of sources on the web to back that up (empirical evidence aside). So let's assume that rhetoric for now in good faith and an appeal to common sense. Padding aside, that complexity flows through to the systems we create - the software included. In order to manage that complexity, we've become Agile.
I hear ya: "Not another article about Agile...". I know, I know.
But let me at least tell the story about what inspired this and then move on to the point. An IT professional (non-technical) and I started chatting and the conversation led to tools for automating business processes. I've developed on platforms and developed custom solutions for business process automation. Evaluating solutions can be a complex process in and of itself. The analysis process is fraught with uncertainty, broad (inaccurate) estimation, bias, and difficult to predict outcomes. Marketing (being what it is) definitely can skew the analysis. Heck, that's part of the duty of marketing! With proper marketing, sales is nothing but finalizing the deal that was already done through the marketing. So what does that have to do with Agile?
Agile is about being able to respond to change. In software, if we are truly following Agile principles and the practices set forth by the minds that solidified the movement, then we are designing and developing software that can respond to changes in the face of complexity. Lately, that seems to be the mantra of the business world as well - business needs to be Agile so that it can respond to changes in the complex market. As technology and automation have been evolving exponentially, so evolves the need for business to evolve to respond to those - among many other - changes.
Thinking about what this means in terms of managing change in the face of complexity and cost. In the software world, cloud computing has become all-the-rage for just those reasons. In the cloud, you pay only for what you use; changing and configuring resources is relatively easy; there are no data centers or servers for the business to manage. Good software design has been about responding to change for many many years, but now the infrastructure has caught up. It is a service rather than an internal resource.
Back to the topic of deciding on a platform...
Some platforms follow the cloud model - pay for what you use. Others - pay a big fee up front along with licensing and maintenance fees annually. Some platforms can respond to change - they are testable, debug-able, manageable. Others...not so much. Some platforms can handle some business situations easily. Usefulness is a function of cost v realization of value - as always, use the right tools for the job.
But whom should decide what the right tools are?
When you take your car to a mechanic - you may be paying for the service and it may be your car, but the mechanic knows which tools to use. Same with the surgeon, plumber, accountant, attorney, chef, construction company, or any other number of service professionals. Why should it be any different for software? Professionals know their craft. Business people know their business - and many know how to do software, woodworking, plumbing, some things legal, accounting, have dissected a frog - does that mean they should perform surgery? If you've replaced the float in the toilet, should you be replacing your own stack*? So who should decide which tools to apply in software development? Logically, it should be the professional software developer who knows their craft.
However, the situation changes when the cost exceeds the budget of the development department. Other levels of the business has to get involved in the decisions, there are politics at play, the tool may be oversold - then what? Now you've bought a tool without a use! So then you look for ways to use the tool to realize it's value...now it's the non-tool user calling the shots (since they've put their money and reputation on the line) on which tools to use to do the job. Then partitioning of tool users happens - you have experts in such platforms. Someone higher up the food chain now decides which tool to use and assigns the problem to the expert(s) of that tool. The expert dutifully applies said tool to the problem (which of course is a problem that tool was designed to handle because when you only know how to use hammer, every problem is a nail).
What's the better model? Maybe that's better left to another post, but I'll give you a hint - there's no 01001001 in the solution.
*A stack is an air vent that allows the toilet to flush properly among other things; without it the suction would be a serious problem. Perhaps it gets blocked by leaves or a birds nest and you have some issues. They used to make them out of cast iron which is some really heavy stuff that can maim you if you don't know what you're doing. They've also used galvanized steel which rusts over time. That rust can also clog the stack. Replacement should be done by a professional only (no user serviceable parts inside).
Great post! I hope more unique tips about this topic and I am always following your blog. Please keeping more updates...
ReplyDeleteEmbedded System Course Chennai
Embedded Training in Chennai
Spark Training in Chennai
Unix Training in Chennai
Linux Training in Chennai
Primavera Training in Chennai
Tableau Training in Chennai
Oracle Training in Chennai
Embedded System Course Chennai
Embedded Training in Chennai
Thanks to the admin you have spend a lot for this blog I gained some useful info for you. Keep doing.
ReplyDeleteEthical Hacking Course in Chennai
Hacking Course in Chennai
ReactJS Training in Chennai
ccna Training in Chennai
Salesforce Training in Chennai
Angularjs Training in Chennai
ethical hacking course in chennai
hacking course in chennai
I have read your blog its very attractive and impressive. I like it your blog.
ReplyDeleteArticle submission sites
Technology
I am glad that I saw this post. It is informative blog for us and we need this type of blog thanks for share this blog, Keep posting such instructional blogs and I am looking forward for your future posts.
ReplyDeleteCyber Security Projects for Final Year
JavaScript Training in Chennai
Project Centers in Chennai
JavaScript Training in Chennai
Python Training in Chennaii
ReplyDeleteI am glad that I have visited this blog. Really helpful, eagerly waiting for more updates.
ca institute in chennai
ReplyDeleteA Professional Coaching Institute, founded with the vision of Creating Quality Chartered Accountants, has been a stepping stone to the success of Aspiring Students.
Now
best ca academy in chennai
ReplyDeleteA Professional Coaching Institute, founded with the vision of Creating Quality Chartered Accountants, has been a stepping stone to the success of Aspiring Students.
Now
big data hadoop interview questions and answers
ReplyDeleteCracking Hadoop interview will be easy with 101 Hadoop Interview Questions with Answers. Hope this will gain you with more knowledge!
hadoop interview questions and answers for experienced
j2ee interview qu
ReplyDeleteAre you a fresher who wants to crack the Java Interview Questions and Answers? Here we offer you some of the major Core Java Interview Questions for Freshers.
java interview questions for experienced
estions
This Information Very Helpful to everyone
ReplyDeleteselenium interview questions and answers
selenium interview questions and answers pdf
selenium interview questions with answers
selenium webdriver interview questions and answers
This blog is a great source of information which is very useful for me.
ReplyDeletedata science interview questions and answers for freshers
data scientist interview questions and answers
python interview questions and answers
digital marketing interview questions and answers
hadoop interview questions and answers
oracle dba interview questions
pega interview questions
Great experience for me by reading this blog. Thank you for the wonderful article.
ReplyDeleteSoftware testing training in Tambaram
Software testing training in Anna Nagar
Software testing training in T Nagar
Software testing training in Porur
Software testing training in OMR
Software testing training in chennai
Đặt vé tại phòng vé Aivivu, tham khảo
ReplyDeletevé máy bay đi Mỹ Vietnam Airline
vé máy bay hà nội sài gòn hôm nay
vé máy bay sg hn
vé máy bay đi đà lạt vietnam airline
ve may bay di Hue re nhat
taxi sân bay nội bài hà nội
combo đà nẵng 2021