Posted by: trinitadewanti | August 30, 2009

The weakness of Scrum

In my journey to make a useful software, I have used agile software development process like SCRUM for sometimes.  Depends on the culture within the company, Scrum is not always work for everybody, but worth give it a try,  below are my excerpt.

Scrum as one of an agile method following this principle below :

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan (agileManifesto.org, 2001).

What does it mean is, it doesn’t mean that processes and tools is never used in agile, it simply means that on the right side is more important that on the left side, Individual and interactions over processes and tools
It doesn’t mean that you don’t do documentation, but working software leads than documentation.
Changes are embrace and daily meeting used to see if there’s any impediment.

Fundamental of Scrum consist of :
The product is developed in a sequence of self contained mini-projects iterations.
It is then grows the functionality in incrementally in each iterations.
Time boxing . Every activity should be in a certain time frame and there is no manager, no architects, no big upfront design.
There only three roles : Product owner, Team member and Scrum master, there is no architect, senior developer no hierarchy

Scrum in 78 words
Starting from product backlog : is basically a set of envision of functionality that need to be implemented, Sprint Planning meeting decide which functionality should go first, decide the goal of each iteration called Sprint , define each task for the spring and implementation of the sprint is no longer than 4 weeks, with daily meeting every day. After the sprint finished there is a review meeting and retrospective meeting to see what is going wrong or what is good.

Scrum is about culture. Changing pattern the way how you work, as the business and technical work together. There is no hierarchy, no architect, no project manager, all the team has to solved the problem.
Scrum is about communication and collaboration. Communication is the key point with Scrum, there is daily meeting everyday and big meeting every 2-4 weeks.
With pair programming, people work together and help each other.
Scrum is about delivering business value.The client have control and visibility where exactly the state of the project, progress or lack of it can be easily assessed.
For developers, is more involvement on the project, have parts to say something and learning, cross functional and sense of achievement.

What Scrum is not
Scrum is not a development methodology, it doesn’t have a development template to follow, it is just a basic process that have to be completed with development and business knowledge.

Despite it simplicity, however Scrum is not easy to implement, as you know
the perfect people doesn’t exist,
the perfect company doesn’t exist,
the perfect project doesn’t exist.
Scrum rely on people, but most of the time there are different skill level of the programmer.

Kevin Brady in their article argued that Scrum failed to understood the human factor such as :
People will always put their own interest ahead of the interest of the group
People are self-interested
You can never get more than 5 people to agree on anything
(Brady K 2006).

Scrum rely on people factor alot, it takes a lot o discipline and self motivation to work with Scrum, and it is not always work for everybody.

Reference :

AgileManifesto.org 2001 Manifesto for Agile development [Online]
Available from : http://agilemanifesto.org/ (Accessed on : 4 April 2008)

Asproni, G 2006 Scrum – Getting started without getting burned [Online] Available from
http://www.parleys.com/display/PARLEYS/Scrum+%28Part+1%29#
(Accessed on : 4 April 2008)

Brady , K, 2006 Agile/Scrum fail to grips with human psychology [Online] Available from :
http://www.claretyconsulting.com/it/comments/agile-scrum-fails-to-get-to-grips-with-human-psychology/2006-08-17/
(Accessed on : 4 April 2008)

Posted by: trinitadewanti | August 26, 2009

Why would I want to be a Java architect ?

At first it seems like a logical choice to move on from a Java developer to a Java architect, when a friend asked me, why would I want to be one, as a person who always see a ‘half full’ glass, my answer was : “Why not “.

But to go deep again to answer the question, I need to be honest and be true to myself, why I really want to be one.
First of all the exams are hard, and being hard means that they prove something and that makes them worth passing. Not everybody does pass, even after repeated attemps. That’s one thing. The other thing, is realizing that being a programmer and an architect requires changing personality, the later one need a certain quality of a leadership or management. I do feel for the time being rather be a manager or at least a communicator. Everything need to be learned including leadership, being humble enough, I have to say,  I still need to learn alot and to get used to this idea.

Programming is fun, but developing quality software is hard. There is so much more than programming, that I agree. This is what I will learn.
Understand that there are no ‘silver bullet’  in developing software, and ‘No tools will ever compensate for design ignorance’ . Software will looks a bit dry and mysterious when not presented in the context of a software engineering process. I’m delighted to learn that my background study in ‘Software engineering’  support me, technically to become one.

I’m giving myself a 3 months time be able to pass the exam. And as you can see ther e is enough challenge for me to be able to accomplish this.

Posted by: trinitadewanti | September 17, 2008

A different angle

You can learn many things from those who agree with you. You can often learn even more from those with whom you disagree.

Your own perspective is important, for it enables you to make sense of the world. Always keep in mind, though, that yours is not the only perspective.

You can listen to others, learn from them, and successfully work with them even though you may not agree with them on all issues. If everyone held the exact same opinion on every subject, then knowledge and wisdom would become stagnant and outdated.

Your own perspective will grow stronger and more useful when you regularly allow it to be challenged. When people respectfully agree to disagree, everyone benefits from the diversity of opinion.

Living a life of success and fulfillment does not depend on always proving that you’re right and that others are wrong. To make real progress you must let go of the assumption that you already have all the answers.

Stay true to the values you treasure, while thoughtfully considering the different perspectives of others. Look at life from a different angle, and you’ll always find new richness.

— Ralph Marston

Posted by: trinitadewanti | October 9, 2007

Saving troubled project

Before the project consider become a ‘failed project’ ,
it will first become a troubled project, but it is not done overnight.
Indication to see if the project become troubled among others are :

late schedule,
lots of defects,
over budget,
clients lost confidence and
the morale of the members  of the team are low.

There is only 2 possibility whether we can save the project or we declare it
as a failed project, depends on our findings.

If I have to save this troubled project, what I would do first is to concentrate on people :

interviewing people,
gaining support, and
try to read between the line the real status of the project.

Information we get from people is often more valuable than what we found on the documents.
We need to be sure that we have full support of the team, at the time of this situation usually people are in a ‘defending mode’. We have to make sure that they understand that we do not try to find the ‘scape goat’ but will only interest in the cause of the problem.
I would find out if the executive still support this project, gain contact with them and find more about it.

“Keeping an eye on the human element will also reveal important information about the real status of a project (ESI, 2006)”.

After that I would look at figures, find as much statistic of the project as possible based on solid proof, history of the project, deliverable dates, how many missing schedule or milestone, defects figure, progress figure,
numbers of people that considered the key team, and numbers of available support.

“It is very difficult to make a vigorous, plausible, and job risking defense of an estimate that is derived by no quantitative method, supported by little data, and certified chiefly by the hunches of the managers (Brooks, F 1995) “.

After the findings we can see the true status of the project, and identifying the possibility or not for current project to be saved.

Recovery plan will be conducted if the project will be continued, morale of the team member need to be rebuild.

 written by : Trinita dewanti

Reference :

Brooks, F. (1995) The Mythical Man-Month, Essays on Software Engineering, Addison Wesley. 

ESI (2006) Saving troubled project, Five steps to rapid recovery. [Online] Available from :
http://www.esi-intl.com/public/downloads/whitepaper/downloadwhitepaper.aspx?S=W&WPID=4

Posted by: trinitadewanti | September 22, 2007

The famous last lecture of Randy Pausch

I was get bored in the office and stumped into this video in youtube of the last lecture of a dying professor, the one that I post here is the short version, but I’ve seen the long version, and it is the most amazing lecture from a computer science professor I’ve ever seen.

It touchs my heart and soul, the one that I most remember on this lecture is : ‘the brickwall’, the brickwall that stop you from fullfilling your dream is not there to stop you, it is there for a reason.
The brickwalll are there to give a chance to show, how badly we want something, it is not there to stop you from making your dream come true, but It is there to stop ‘the other people’..;)

He also reminds that it  takes a while to see the good things on people, if you wait long enough, people will surprised you and impress you. if you angry at people, you just haven’t give them enough time. Wait long enough and people will impress you.

Posted by: trinitadewanti | September 21, 2007

Of Artificial intelligence

There is an assumption that has been running around for some times that we can combine the right technology together then we can recreate the way the human minds work.
First, there is a computer that can almost think, and then the idea was if I can put the right software there then we will have a thinking machine !
That’s where the paradigm of the Artificial Intelligence now for more than 50 years.
Assuming that they way brain works is like a computer ; we need input and then we process and we produce output.

With artificial neural network, researcher believe it is mimicking the way our brain work, it models network of neurons in living biological systems, the only thing is we have to train this neural network to develop its correct output.

Even if this assumption is right that the brain do work like a computer, from philosophical perspective, how would a machine develop creativity or prediction, as part of intelligence. If intelligent is nothing more than a collection of chips and silicon devices How would we develop emotion, intuition, and experience
You know that some of our intelligent decision we made are based on our emotion.
From applied perspective, how can this limitation of this machine that behave intelligently still benefiting the human kind.

In traditional AI, assume that the word is binary with rule set that we define, the problem about this neural network is , it is assume that the input is fixed, where the fact is the input is changed all the time, there is nothing we can make it uniform or generalize, for example when we saw a face of a person, the input can be in many different way, in a different day, different light, from far away from close, the input is always different, but we always perceive it as the same person.

That is because our brain work is not like a computer, if you safe a picture in the computer, you save exactly like that, but the way we ‘remember’ a face , we don’t remember all the details of the face, what we do remember is the relative attribute of the face, for example the nose is a bit longer than normal, etc.

What if we are all wrong, that the brain is actually a memory system that storage experiences (instead of processor) in a way that reflects the true structure of the world, remembering sequences of events and their nested relationships and making predications based on those memories. How about if it is this memory-prediction system that forms the basis of intelligence ? (Hawkins, Jeff  2007)

Or is that our fear of our next world become a ‘Terminator style’ or ‘The Matrix’ that take over the human race, when the machine is really can duplicate our way of thinking, can imitate our intelligence, that we refuse to believe that the way our brain work is like a computer. The question is definitely not will be answer only in this paper.

Written by Trinita dewanti

Reference list :

Hawkins, Jeff (2007) On Intelligence. How a New Understanding of the Brain Will Lead to the Creation of Truly Intelligent Machines [e-book]. Available from : http://ebooks.palm.com/product/detail/17826 (Accessed on : 15 September 2007)

Posted by: trinitadewanti | September 8, 2007

The history of Object Oriented Language

Dijkstra with his famous letter ‘Go to statement consider harmful’  has mark the beginning of ‘Structured programming’ era, it eliminates, or reducing reliance on the GOTO statement, Structured programming states that three ways of combining programs : sequencing, selection and iteration are sufficient to express any computable function.

Structured programming also known as a ‘Top Down’ language, that sequentially execute statement from top to down, while structuring program into a hierarchy sometimes might help to clarify some software, but it fell short on make the code easily maintainable, one changes could become a ripple effect if not wave to many places in the software.Also with the possibility of the use of Global variable, which can be modified from anywhere any time in any scope of the software, it is open for possibility of creating mutual dependency, which considered bad, because adding new dependency means adding complexity, adding complexity is bad for code maintainability.

When we talked about code maintainability, there one of famous software development adage : Change is the only constant, sounds like a trite, but it’s true, the software is rewritten not written. So it is very important to be able to easily maintain and change the code of program.Below I will point out the benefit of using OO, in the light of maintainable code.Dynamic binding/Polymorphism, Inheritance, and Implementation hidingLet’s say I work in a banking industry and I work with OO programming language. I have a class called : Account which represent an account in the real world, this class is an Interface class which means that there is no implementation in it. All the class that implement this interface (Inheritance) should implement the behavior of it’s own.I can use this class as a template of what ever account in the bank have , like private account, company account etc. If for example the business is evolve and change and the bank add another different type of account, then I only have to add new class that have specific state and behavior of this new account , then all the associate method who use this object will work accordingly there is no need to change on several different places.

This is happen because of what is called by ‘Dynamic binding‘ . It means that nothing about the type of an object need to be known before runtime (Montlick, Terry n.d ) in another word it means that when we design a function or procedure, the object that we use can be only known during runtime.

What does it means, it means a single function or procedure , can use by many different kind of unknown object at the time it hasn’t even exist. Bottom line it is open for the possibility to expand in the future.

In this case it is support the ‘Natural’ way of dealing with everyday life which is always change.

In OOP, an object can be seen as a black box (Montlick, Terry n.d) (Implementation Hiding), it can expose only what the client need to know and can do. What does it really means is, if there is a problem the problem could be isolated in only just one class, who is responsible to do certain job, it also means when it is reuse on an application, the interface to the client that is exposed is bound as a contract, the client doesn’t need to know if the implementation is changed.

Object orientation promotes such insulation via “the separation of the interface of the type from its implementation” (Kent, William 1993).

Critics on OOP wrote that the natural way that many OO advocates claims is never proved to be true.

Miah Shajan ( 1997, p.28) argues that the real world object do not pass messages to each other, for example : when some one ask for a drink, the glass doesn’t give message to the bartender to fill it.

Although Shajan argument is valid, I can explain that the object that she mention, the glass, is not an object that could have method to give themselves the drink, but the bartender does, so we can say that we can create a method to fill the drink in the bartender class, which have a glass on his property. The glass object could only expose its property which is empty or full. Or we can say that the design of the object oriented software should be well enough to represent the real world.

Having said this, It doesn’t mean that OO way of programming is a silver bullet, one can always do structured programming in OO programming language.

 Written by : Trinita dewanti

Reference list :

Montlick, Terry (n.d) What is Object-Oriented Software? Available from: http://www.softwaredesign.com/objects.html (Accessed: 26 August 2007).

Shajan Miah (1997 ) Critique of the Object Oriented Paradigm: Beyond Object-Orientation [Online]Available from: http://members.aol.com/shaz7862/critique.htm (Accessed: 26 August 2007).

Kent, William 1993 Implementation Hiding [Online]. Available from:http://www.bkent.net/DocBList/23368r1.htm (Accessed: 26 August 2007).

Posted by: trinitadewanti | September 7, 2007

I reject your reality and I substitute it with mine

I reject your reality and I substitute it with mine.

That is how powerful your mind is in mids of wave of negativity, uncertainty, war, terorism and criminals.
I reject the reality in CNN and substitute it with mine.
I reject the reality in TMZ.com and substitute it with mine.
I reject the way you treated me, what is your opinion about me is got nothing to do with me.
A human being is the most remarkable, the most splendid the most magnificent being, God ever created and I’m one of them, nothing gonna change that.
I reject the reality that make the world such a nasty place to live with, while there is so much thing in a little thing so magnificent you hardly notice and outnumbered in an order of magnitude of the bad things that happen in this world.
Put a snow in a magnify glass and see how beautiful it is.
Have you ever seen a cloud ?
See the flowers blooming in abundance,
if you have wounds it will be healed by itself,  in the atomic level of our body, is only well being.
I reject your reality, I have my own reality no one can ever take that for me ever

‘naf said

Categories