"We human being, always find a solution, maybe not today, but if you really want to solve a problem, there’s always a way" – Ma Yun @ Stanford, 2013
Category Archives: Software Engineering

BSADD – BUET System Analysis, Design and Development group

by Md Imran Hasan Hira

বেশ কয়েক বছর আগে, ডিপার্টমেন্টে আমরা কয়েকজন মিলে সিস্টেম ডিজাইন নিয়ে কিছু কাজ শুরু করেছিলাম। আমরা বলতে আমরা ‘০৭ এর বেশ কয়েকজন আর ‘০৮ এর কয়েকজন। স্যাররা অবশ্য অনেক হেল্প করেছিলেন, যেমন সেশনগুলো অ্যারেঞ্জ করতে ডিপার্টমেন্টের পারমিশন এর জন্য দৌড়াদৌড়ি তো আছেই, সেটা ছাড়াও স্যাররা আমাদের ব্যপক উৎসাহ দিতেন সেশনগুলা নেওয়ার জন্য। লতিফ স্যারের একটা কথা এখনও মনে পরে, স্যারের কাছে BSADD এর কোন কিছু নিয়ে গেলেই উনি বলতেন “I appreciate”, কথাটা শুনতে খুবই সাধারণ শুনায়, কিন্তু আমাদের কাছে এই লাইনটা বেশ ইন্সপায়ারিং লাগত।

মজার ব্যাপার হচ্ছে, শুরুর সময়ে আমাদের লক্ষ্য ছিল সিস্টেম ডিজাইন এর কন্টেস্টগুলোতে বুয়েটের টীমরা যাতে ভাল করতে পারে, এইটা। তখন দেশে কেবলমাত্র SDDC (System Design and Development Contest) ব্যপারটা চালু হয়েছে, আমরা শুরুতে একটাতে পার্টিসিপেট করার পর মনে হল, এই দিকটাতে আমার শিখার অনেক কিছু বাকি আছে। তারপর ভাবলাম যে বুয়েটে এরকম একটা প্রাকটিস গ্রুপ থাকলে, সমস্যাগুলা নিয়ে অ্যাকাডেমিক এর বাইরেও বড় ভাইয়াদের সাথে আলোচনা করা যাবে।

তো আমরা লেভেল-৪ এ গিয়ে সেশন নেওয়া শুরু করলাম, সেশন নিতে গিয়ে মনে হল, সিস্টেম ডিজাইন শুরু করতে গেলে যে বেসিক লাগবে, সেগুলার জন্য আগে আরেকগাদা সেশন নিতে হবে ( অনেকটা chicken-egg সমস্যার মত :p )। যাই হোক, আমরা একটা ড্রাফট কোর্স প্লান করলাম। Git, Coding style, Code modularity, Class Diagram, Java basics, Web Framework, Database Connetions এইরকম বেসিক কিছু জিনিস নিয়ে।

প্রথম সেশনটা IAC’র একটা রুমে হয়েছিল। ওইটার জন্য আমরা খুব সিম্পল একটা ওয়েব আপ্লিকেশন বানিয়ে নিয়ে গেছিলাম। বাকিদের জন্য চ্যালেঞ্জ ছিল, ওই আপ্লিকেশন থেকে বাগ খুঁজে বের করতে হবে। যে সবচেয়ে বেশী বাগ খুঁজে বের করতে পারবে, সেই উইনার। এইরকম করে বাকি সেশনগুলো শেষে আমরা একটা ইন্ট্রা-ডিপার্টমেন্টাল সিস্টেম ডিজাইন কনটেস্টও অ্যারেঞ্জ করছিলাম। এরপর ‘০৮, ‘০৯, ‘১০ থেকে বেশ কয়েকজন সেশন গুলো কন্টিনিউ করছে।

আমাদের দরকার ছিল একটা প্লাটফর্ম, যেখানে জুনিয়ররা অন্তত সিস্টেম ডিজাইন / রেগুলার সফটওয়ার ডেভেলপমেন্ট নিয়ে যে কোন প্রশ্ন থাকলে জিজ্ঞেস করতে পারে। সেই হিসেবে আমরা চেষ্টা করছি জুনিয়রদের ভিতরে একটা চিন্তা করার স্কোপ তৈরী করার। একটা সফটওয়ার বানাতে গেলে হুট করে ধুপধাপ কোডে না গিয়ে, পসিবল মডিউল গুলা একটূ চিন্তা করে নেওয়া, ইন্ডাস্ট্রিতে কি কি ধরনের টুলস ব্যবহার করে সেগুলা সম্পর্কে আইডিয়া থাকা। একবার এই কমন জিনিশ গুলা মাথায় চলে আসলে তারপর ধুপধাপ কোডিং করলে সমস্যা নাই :p এখন অবশ্য অনেকের কাছেই এগুলা দু-আঙ্গুলের খেলা B| তারপরেও ইন্ডাস্ট্রিতে আমাদের বড় ভাইয়ারা যারা বিভিন্ন কোম্পানিতে কাজ করতেছেন, তাদের নলেজ গুলা আমাদের সাথে শেয়ার করলে অন্তত ট্রেণ্ডগুলা নিয়ে আইডিয়া থাকবে।

এতক্ষণ আলোচনার পর এবার একটু গ্রুপের ঢাকঢোল পিটাই। BSADD প্লাটফর্মের একটা পার্ট হিসেবে অনেকদিন ধরে আমাদের একটা ফেসবুক গ্রুপ আছে। এখন অবশ্য আমরা একটু অলস হয়ে গেছি, তাই খালি মাঝে মাঝে বিভিন্ন আর্টিকেলের লিঙ্ক শেয়ার করি :p সব বকবকানি তো এই ফর্মাল গ্রুপে করা যায়না। যেহেতু যারা পাস করে বিভিন্ন অফিসে কাজ করছে, তাই সবার পক্ষে কোন ইভেন্ট ছাড়া ক্যাম্পাসে আসা সবসময় সম্ভব হয়না। কিন্তু, কারও যদি সিস্টেম ডিজাইন নিয়ে কোন প্রশ্ন থাকে, যদি হঠাৎ করে মনে হয় “আরেহ এই রকম একটা সিস্টেমের জন্য কি কি class নিলে ভাল হবে?”, মোবাইল থেকে ওয়েবে ডাটা পাঠানোর জন্য মাঝখানে আরও কোন লেয়ার লাগবে কিনা, এইরকম প্রশ্নগুলো গ্রুপে করতে পারে। তাছাড়া নিজেরা ভাল কোন রিসোর্স/আর্টিকেল পড়ে থাকলে সেগুলার লিঙ্কও শেয়ার করতে পারে, অন্তত আরও অনেকে জানবে।


Smartphone recharging assistant

by Md Imran Hasan Hira

Is it possible for a smartphone to suggest when to recharge ?

When people get home after office or say after classes, it’s possible forgetting to recharge the phone. And you know these days, how much power a smartphone requires. In most of the cases, smartphones runs a day when it’s fully charged. If you regularly use internet (wifi/cellular), then the lifetime becomes fewer than that. What you need to do, recharge every night before you go to bed.

The point is, sometimes we forget to put the phone on charge. “we” means the lazy ones (mmm, technically “on demand” :p ).  If there exists a “smart” system in the phone that can help the user by requesting to recharge in a smart way, that would be too good. Well, it’s easy. Make an application using system service, which runs in background, checks the battery level, when it’s below 20% (or a threshold level) it’ll make an alarm. Or check the wifi location, when it’s connected to home wifi, it means you are home, so throw an alarm. But, wait a bit, are those truly smart ? When the battery level is low, people may not be at a place to connect the charger. Or the home wifi can be connected while people are at stairs, and when they enter home, they may forget again. Ok, so, start alarm five minutes after reaching home. Lol, s/he could be taking shower by that time and won’t hear the alarm.

Can we make the system a bit more smarter? Well, there are challenges. The first important thing is to find out the most convenient time to recharge the phone. It can be the time, when you come home and put the phone on your desk where there is a charger. It can be the time when you sit on sofa at night and there is a socket right beside you where you previously charged the phone. Or even when you are going to bed, you turned the light off, but forgot to charge your phone, it will adorably tell you to recharge it (like that little girl, asking to sing a lullaby for her with a voice “recharge me, pleeeeeease” ).

Collecting the gyro sensor data, data from accelerometer, using those data to train a system which will understand when the phone is being put on a desk, when the person is going to sit on the sofa, when the user is playing a game, or even predicting when the phone is going to lay still for several hours (bed time). Then connecting this activities with the times when people are at home or going to bed would result a more smarter system. The only evilest thing here is that these processes will add more load to the battery 😀 But we can start training the system, then fine tuning them, that will require less processing once it’s finished.

So, is it possible ? Expecting this type of system on your phone, would it be too much dramatic !!


Power of SCRUM

by Md Imran Hasan Hira

Few months ago I heard about SCRUM. It’s an iterative and incremental agile software development methodology for managing product development. In our office, we got four Certified SCRUM Master. I have been fortunate enough to have such kind of open environment in my current workplace. It’s not about how many of them we have, I am saying about the practices that we try to follow. Those CSM’s have already been started to implement SCRUM in their teams. They are doing great. They also gave a half day briefing to us about SCRUM processes, it’s roles, dos and donts etc.

Since then my team was continuously trying to implement SCRUM in our team. But we failed to incorporate upto the standards, rather what we got, is actually called ScrumBut by definition. We don’t mind. We are trying and we will get success. At least we know about the ScrumBut effect. Despite of all these, what amuses me most are –

1. Scrum  doesn’t support Micro Management! – It’s a myth. It’s not true. Scrum highly emphasize on Micro Management. Please continue to read the rest of this paragraph. One need to manage herself at micro level to get the best out of her. It’s kind of human nature. Scrum facilitates this. Scrum says all the micro management will solely be kept inside the team. This micro management data can not be visible to anyone outside of the team, even not to the Product Owner. Otherwise the idea behind self-micro-motivation will be failed.

2. Who will play the scrum cards ? And when ?

3. Our storypoint calibrations are not converging! What to do ?

4. Can we say “Difficulty Level” instead of story point ?

 

 

Wait, I’ll keep you guys updated later. I got the idea just now, I though to write something about it so I can remember it later. I promise, I’ll come back with the rest of my thoughts.


Theme by Ali Han | Copyright 2025 Md Imran Hasan Hira | Powered by WordPress