“Thou shalt not deliver software with bugs!”
This, folks is the Microsoft Student Champs Meeting. The idea is to get students and industry professionals who work with Microsoft products into one room and let them, ah, connect, share and learn in the course of an evening. The most recent one happened just yesterday on the 14th of March, at the DHPL building (as usual) and featured four key presentations by both students and members of the industry.
Now, the the 1st presentation of the day isn’t much: basically OOP (Object Oriented Programming) 101 by Sanka Bulathgama from the Open University. He went through OOP concepts using C# – nothing you can’t pick up from a bit of Googling. Sad to say, we felt his time could have been better spent explaining something that’s not already all over the internet.
Up next we had Methni Dassanayake, a Senior Business Analyst from Hemnette Information Technology on Business Analysis : for a lucrative and awe-inspiring career. Methini began her presentation by defining what a BA does. As a Business Analyst, she doesn’t care about technical jargon such as objects and classes: neither do her customers, but at the end of the day it’s important that software developers ship a product that meets the requirements of the customer. To illustrate, she shared the story of a customer who wanted an elephant. He went to a software development company and gave a description for what he needed. The developers looked at his description and gave the client a modified donkey that met his requirements. BA’s exist to prevent this kind of miscommunication from happening, by precisely capturing the requirements of the customer and passing it to the developers. At least, that’s the general idea.
We’ve spoken about BA’s and their problems before, but we haven’t examined the job of being a BA per se. Apparently, you don’t need a business background (though that helps): what you need is the ability to communicate well, think straight and make sure the developers don’t end up with contradicting requirements. She concluded by turning the presentation into an advertisement for IIBA Sri Lanka. While we admire IIBA’s efforts to improve BA in this country, one questions whether a more broad-minded approach – such as the one we saw at the Agile BA event – would have been more helpful. After all, every role has its downsides: it’s better than students learn both sides of the coin now rather than later in their careers.
The 3rd presentation of the day was Important Packages in Application Development by Prabath Maduranga Peiris (@mpmpeiris) from the Rajarata University. Prabath covered the definition of a package and the tools that he routine uses to code (using a demo Windows Phone app as an example). .Net.Http, Newsoft.json, Coding for fun, Live SDK and the Windows Phone toolkit were mentioned – you can check out his work at prabathsl.blogspot.com.
The final presentation of the day was Software professionalism: The definitive honour, given by Adnan Issadeen, Head of Production at Anything.lk (@kiriappeee). This turned out to be the most critical and most useful speech of all. Adnan began by referring to how software influences practically everything around us, from the projectors in the room to the air conditioners.
Adnan then went onto criticize the industry saying that today, it’s become the equivalent of street vendors shouting they’ll do software and the software engineers are simply “Yes men” who are undependable since they say yes to everything but don’t deliver proper software.
He then gave the attendees a few points to always follow as software engineers:
- Love what you do. If you don’t love software then you’ll look for shortcuts to simply get it done and that results in poor quality software.
- You will only deliver the highest quality of software. You will not deliver under any circumstances software with bugs.
- Say No. No to unreasonable deadlines. No to unreasonable pay. No to instability. No to telling your manager “I’ll try” because they hear “Yes I’ll do it”.
- Be transparent and admit your mistakes. Don’t try bluffing and covering it up because bluffing is for the weak.
- Always test; never stop testing your software and use automated testing. The QA team’s job isn’t to find bugs but to break your software and find faults.
Here’s a link to his entire presentation – http://slid.es/adnanissadeen/software-professionalism-honour-code – it’s worth the read. Adnan concluded by telling the attendees, “The hope of making the software industry professional is us. People are depending on us. We have an honour code. It’s difficult to follow – but not impossible.”